当工具类没有注解时,里面的@Autowired失效,大概是因为spring容器装配Bean之前工具类就加载的原因。
当加了注解后,应该是跟着spring的装配走了,@Autowired顺利找到对应的Bean进行注入,结果是成功的。
疑问:当工具类里面需要使用spring容器的Bean时,一般在生产环境上怎么解决比较优雅可行?
当工具类没有注解时,里面的@Autowired失效,大概是因为spring容器装配Bean之前工具类就加载的原因。
当加了注解后,应该是跟着spring的装配走了,@Autowired顺利找到对应的Bean进行注入,结果是成功的。
疑问:当工具类里面需要使用spring容器的Bean时,一般在生产环境上怎么解决比较优雅可行?
1. 只有被spring管理的类才可以注入
2.只有类修饰了@service 、@Controller、@Configuration...注解的类或者在xml配置文件中配置为bean的才会被spring管理
3. 工具类中的功能耦合性一般都比较低,可以在其他方法中直接new对象调用,或者类方法直接调用
4. 真的需要注入对象就使用spring注解就好,也可以在方法中传递对象到工具类中使用。
5. 没有什么优雅不优雅的,先保障功能,再确保效率,最后再考虑代码写的好不好看。