是否可以在使用 AspectJ 编织的类上使用 @Configurable 并让 Spring 加载使用 @Value 注释的字段/方法上的值?
我知道@Autowired 和@Resource 等是可能的……还有其他的吗?
例如
@Configurable
public Class MyObj{
@Value("$(my.prop)")
private String aField;
public String getAField(){
return aField;
}
}
然后有类似的东西
public aMethodSomewhereElse(){
MyObj obj = new MyObj()
assertNotNull(obj.getAField());
}
有没有其他方法可以MyObj
使用new
操作员创建并且仍然可以让 spring 来处理注释?
- 编辑: -
new
在使用 @Autowired 时可以做到这一点,看看一些带有 Spring 和 AOP 的 Hibernate 和 JPA 的东西......我过去用它来做一些 Java 代码的分析。但我真的想在模拟一个完整的例子之前使用 SPEL 和 @Value,我希望在这里找到答案。仅供参考-如果您不相信我,Spring手册甚至说可以这样做,我想知道的是是否可以在同一范围内使用@Value注释...
Spring 容器实例化和配置应用程序上下文中定义的 bean。给定包含要应用的配置的 bean 定义的名称,也可以要求 bean 工厂配置预先存在的对象。spring-aspects.jar 包含一个注释驱动的方面,它利用此功能允许对任何对象进行依赖注入。
和...
当然,单独使用注解什么也没做。作用于注解存在的是 spring-aspects.jar 中的 AnnotationBeanConfigurerAspect。本质上,该方面说“在从使用 @Configurable 注释的类型的新对象的初始化返回后,根据注释的属性使用 Spring 配置新创建的对象”。在此上下文中,初始化指的是新实例化的对象(例如,使用'new' 运算符实例化的对象)以及正在进行反序列化的可序列化对象(例如,通过 readResolve())。
http://static.springsource.org/spring/docs/3.0.0.RC2/reference/html/ch07s08.html
干杯。