这真的是如何从属性文件在控制器中注入属性的最简单方法吗?然后它需要在每个需要一些属性的控制器上导入属性文件。在像我这样的项目中,大约有 30 个控制器,其中 10 个需要这个国家/地区的财产,我猜它看起来像一团糟。我是否理解@Value
正确的用法?
@Controller
@RequestMapping(value = "/simple")
@ImportResource("classpath:/META-INF/properties-config.xml")
public class SimpleController {
private @Value("#{exampleProperties['simple.country']}") String country;
}
properties-config.xml (跳过 xml 和架构的东西)
<beans>
<util:properties id="exampleProperties" location="classpath:/simple.properties" />
</beans>
此外,当尝试在多个控制器中导入 properties-config.xml 资源时,我会收到此类消息。这似乎不是正确的方法,但我想不出更好的方法..
01 Apr 2011 04:52:29,859 INFO org.springframework.beans.factory.support.DefaultListableBeanFactory []: Overriding bean definition for bean 'exampleProperties': replacing [Generic bean: class [org.springframework.beans.factory.config.PropertiesFactoryBean]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null] with [Generic bean: class [org.springframework.beans.factory.config.PropertiesFactoryBean]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null]