【发布时间】:2013-08-13 12:34:33
【问题描述】:
我正在尝试使用属性占位符作为@Qualifier 的属性,如下所示:
@Autowired
@Qualifier("${beanName}")
private MyBean myBean;
但是,这不起作用,即使属性占位符可以作为字符串值使用:
@Value("${beanName}")
private String beanName;
这里有什么好的解决方法,非常感谢。
【问题讨论】:
-
一个好的解决方法取决于您的总体目标。那么你想解决什么普遍的问题呢?
-
我正在使用 Spring 3 ProprtySource 在加载时将 bean 的名称传递给上下文。这是关键:bean 名称必须作为参数传递到应用程序上下文中。该参数被 @Value 注释识别,但不被 Qualifier 识别。
-
但是为什么呢?可能有更适合您的目标的替代方案。如果我不得不盲目猜测,听起来 Spring 3.1 的 bean 配置文件可能适合您的目标。
-
我需要传递给应用程序上下文的 bean 名称直到加载 spring 上下文时才能知道,因为它是从另一个应用程序中检索的。所以我需要以某种方式传递该字符串,并在 @Qualifier 中使用它 - 或以另一种方式实现相同的目标。
标签: spring