我想把一个原型作用域bean注入到单例中。这个原型bean应该只为注入它的每个Singleton创建一次(据我所知,这是默认情况)。但是,每次我确实想要一个略有不同的bean,所以我希望能够使用在构造原型bean时使用的自定义注释来注释注入点。
问题是,如何找出注入点上的注释是什么?
下面是一些代码,看看我想要实现什么:
@Component
public class X {
@Inject
@CustomAnnotation("Hi")
private PrototypeBean bean;
}
其中PrototypeBean由bean方法提供:
@Bean
public PrototypeBean prototypeBean(CustomAnnotation customAnnotation) {
return new PrototypeBean(customAnnotation);
}
这里的想法是,无论这个PrototypeBean被注入到哪里,都会创建一个新的实例,该实例的行为根据CustomAnnotation的值略有不同。
我知道您可以使用ApplicationContext (好的,传递额外的参数,即不是注释)来做到这一点,但我希望使用简单的注释来保持它的轻量级。
发布于 2016-04-18 09:23:03
也许你需要的是一个定制的BeanPostProcessor
。"3.2数据访问“在这篇博客文章中,"A Spring Custom Annotation for a Better DAO”看起来和你想要做的非常相似。
https://stackoverflow.com/questions/27935169
复制相似问题