我想实现一些全局配置静态类,它将包含所有应用程序的配置。另外我想从xml配置文件中注入这些参数。
第一种方法是创建配置类并将其注入我需要的每个bean /类。但是我没有这样做,因为我的配置类包含所有应用程序的属性并且在任何地方都注入它...我不知道是什么)
第二种方法是尝试将xml配置值注入静态类,但它更像是解决方法..
哪种方式更好,为什么?
答案 0 :(得分:1)
我看到处理此类场景的最常见方式是将配置放入属性文件并通过PropertyPlaceHolderConfigurer
引用属性值。
例如,假设我有以下属性:
<强> SO.properties 强>
app.name=StackOverflow
app.mode=debug
在我的Spring配置文件中,我将包含context
命名空间并通过PropertyPlaceholderConfigurer
bean引用它。
弹簧配置
<context:property-placeholder location="classpath:so.properties"/>
创建PropertyPlaceholderConfigurer
bean之后,我现在可以通过表达式语言引用属性,例如bean中的${app.name}
和配置文件。
要将这些属性连接到Spring bean,请使用@Value
注释bean的字段。
@Component
public class MyBean{
//This must be a Spring Bean
//Wiring the value to the field
@Value("#{app.name}")
private String name;
}
答案 1 :(得分:0)
如果我没记错的话你就不能这样做了。您可以使用静态字段创建类,但不能将属性注入该字段。 看看这个答案,也许它可以帮到你:Spring: How to inject a value to static field?