我想在我的Spring网站项目中使用数据映射器,记录器,转换器等。是否可以自动装入导入的(jar)实用程序依赖项,而不将其包装在某些@Component或@Service类中?我们甚至想这样做,还是应该使用静态参考?
答案 0 :(得分:2)
你只能@Autowire由Spring管理的bean。所以你必须通过一些配置来声明你的实例:xml文件中的bean,或java配置中的@Bean方法。
@Component只是在spring上下文中自动发现和注册。
答案 1 :(得分:2)
如果你的工具是基于非静态方法,那么这很简单:
如果您使用基于java的配置,那么只需在@Bean
带注释的方法中声明该util。
@Configuration
public class YourConfig {
@Bean
public YourUtil util(){
return new YourUtil ();
}
}
在xml中它可以简单如下:
<bean id="util" class="org.example.YourUtil" />
以下情况属实,但并非要求:
至少还有两种方法可以在Spring未创建(管理)的实例中注入bean:
(1)向此类添加@Configurable
注释 - 这需要真正的AspectJ(编译时或加载时编织)
@Configurable
支持(2)调用SpringBeanAutowiringSupport.processInjectionBasedOnCurrentContext(this);