我通过谷歌搜索了多个页面。它告诉您如何通过注释加载配置。但是教程总是忘记如何在控制器中使用创建的对象。
这是我的代码。
属性文件(demo.properties)
demo.out_path=c:\demo_dir
演示配置文件(DemoAppConfig.java)
@Configuration
@PropertySource("classpath:demo.properties")
public class DemoAppConfig {
@Value("${demo.out_path}")
private String OutPath;
@Bean
public static PropertySourcesPlaceholderConfigurer propertyConfigInDev() {
return new PropertySourcesPlaceholderConfigurer();
}
}
Servlet配置(demo-servlet.xml)
<!-- Properties -->
<context:property-placeholder location="classpath:demo.properties" ignore-unresolvable="true" />
如何调用控制器内的属性?我尝试将DemoAppConfig的自动连线注释作为属性但它失败了。我尝试将DemoAppConfig实例化为一个新类,但未加载所有属性。
注意:使用的是Spring版本4.1.7.RELEASE
答案 0 :(得分:1)
我知道一种方法是在xml配置中配置系统属性,如下所示:
rhc cartridge remove -a {appName} -c {embeddedCartridgeName}
当然,您需要添加spring-util架构声明:
<util:properties id="systemPropertyLookup" location="classpath:demo.properties"/>
然后将属性值注入控制器,如下所示:
<beans ....
xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="....
http://www.springframework.org/schema/util/spring-util.xsd">
答案 1 :(得分:1)
检查我的项目,这就是我加载persistence.properties
的方式,我已经能够像您配置的一样使用@Value
:
@Configuration
@ComponentScan(basePackageClasses = Application.class)
class ApplicationConfig {
@Bean
public static PropertySourcesPlaceholderConfigurer propertyPlaceholderConfigurer() {
PropertySourcesPlaceholderConfigurer ppc = new PropertySourcesPlaceholderConfigurer();
ppc.setLocation(new ClassPathResource("/persistence.properties"));
return ppc;
}
}
确保它在类路径上,并且编译器将资源文件复制到distributable。