我有这样的事情:
@Configuration
public class SpringConfigUtil {
private static final Logger logger = Logger.getLogger(SpringConfigUtil.class);
@Value("#{ systemProperties['activemq.username'] }")
private String userName;
@Value("#{ systemProperties['activemq.password'] }")
private String password;
@Value("#{ systemProperties['activemq.URL'] }")
private String brokerURL;
@Value("#{ systemProperties['activemq.queueName'] }")
private String queueName;
@Bean
public static PropertySourcesPlaceholderConfigurer placeHolderConfigurer() {
return new PropertySourcesPlaceholderConfigurer();
}
@Bean(name="producer")
public JmsTemplate jmsTemplate() {
JmsTemplate jmsTemplate = new JmsTemplate();
jmsTemplate.setDefaultDestination(new ActiveMQQueue(queueName));
jmsTemplate.setConnectionFactory(connectionFactory());
return jmsTemplate;
}
@Bean
public ActiveMQConnectionFactory connectionFactory() {
ActiveMQConnectionFactory activeMQConnectionFactory = new ActiveMQConnectionFactory();
activeMQConnectionFactory.setBrokerURL(brokerURL);
activeMQConnectionFactory.setUserName(userName);
activeMQConnectionFactory.setPassword(password);
return activeMQConnectionFactory;
}
}
工作正常。 假设我还有一个applicationContext.xml文件,它已经加载了一些bean。
如何在@Configuration中引用这些bean? 我不想再以编程方式再次创建bean,因为它们已经通过加载applicationContext.xml而创建。
让我有50多个属性。是否有更好的方式来引用它们,而不是为每个属性定义类似下面的内容?
@Value("#{ systemProperties['activemq.URL'] }")
private String brokerURL;
谢谢你的时间!
答案 0 :(得分:1)
如何在@Configuration中引用这些bean?
根据http://docs.spring.io/spring-javaconfig/docs/1.0.0.M4/reference/html/ch06.html,请尝试:
...
@Configuration
@AnnotationDrivenConfig // enable the @Autowired annotation (??)
@ImportXml("classpath:<*path*/to/your/*>applicationContext.xml")
public class SpringConfigUtil { ...
让我拥有50多个属性。是否有更好的方式来引用它们,而不是为每个属性定义类似下面的内容?
没有,我可以想象:-(...你怎么能更好地访问&#34; 50多个属性,而不是&#34;通过他们的名字&#34; - &#34;通过索引&# 34;,类似阵列!?虽然某些属性可以耦合,但在一天结束时,每个属性都具有(应该具有)其特殊含义和目的 - 并且对于触摸/有线/单独配置(最佳实践)提示只是尽可能少见)