Sometimes we need to use spring injected database instances in static methods
However, instance variables injected through @ Autowired cannot be directly used in static methods
You will be prompted not to make a static reference to the non static field logmongotemplate
The solution is as follows. The general idea is to create a static instance and assign the database instance injected by @ Autowired to the static instance in init method
Add scan in XML
<context:component-scan base-package="com.data.util"/>
Add Component annotation in Java file
@Component
public final class GeneUtil {
Defining logmongotemplate in XML
<mongo:db-factory id="logMongoDbFactory"
host="${mongo.log.server}"
port="${mongo.log.port}"
dbname="${mongo.log.db}"
username="${mongo.log.user}"
password="${mongo.log.password}"/>
<bean id="logMongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
<constructor-arg name="mongoDbFactory" ref="logMongoDbFactory"/>
</bean>