Sri*_*iks 14 java spring properties spring-annotations
在发布此问题之前,我谷歌从Spring项目获取属性(它不是基于Web的项目).我很困惑,因为每个人都在谈论application-context.xml并且配置类似
但是,我正在使用Spring正常的Java项目(没有Web应用程序和类似的东西).但我想从属性文件中获取一些常见属性,并且需要在JAVA文件中使用.如何通过使用Spring/Spring Annotations实现这一目标?
我应该在我的项目下配置myprops.properties文件以及如何通过spring调用?
我的理解是application-context.xml仅用于基于Web的项目.如果没有,我应该如何配置这个application-context.xml,因为我没有web.xml来定义application-context.xml
mat*_*sev 24
您可以创建基于XML的应用程序上下文,如:
ApplicationContext ctx = new ClassPathXmlApplicationContext("conf/appContext.xml");
Run Code Online (Sandbox Code Playgroud)
如果xml文件位于类路径上.或者,您可以在文件系统上使用文件:
ApplicationContext ctx = new FileSystemXmlApplicationContext("conf/appContext.xml");
Run Code Online (Sandbox Code Playgroud)
Spring参考文档中提供了更多信息.您还应该注册一个关闭钩子以确保正常关闭:
ctx.registerShutdownHook();
Run Code Online (Sandbox Code Playgroud)
接下来,您可以使用PropertyPlaceHolderConfigurer从'.properties'文件中提取属性并将它们注入到bean中:
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations" value="classpath:com/foo/jdbc.properties"/>
</bean>
<bean id="dataSource" destroy-method="close" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="${jdbc.driverClassName}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</bean>
Run Code Online (Sandbox Code Playgroud)
最后,如果您更喜欢基于注释的配置,则可以使用@Value注释将属性注入到bean中:
@Component
public class SomeBean {
@Value("${jdbc.url}")
private String jdbcUrl;
}
Run Code Online (Sandbox Code Playgroud)
从Spring 4开始,您可以在Spring 类中使用@PropertySource批注@Configuration:
@Configuration
@PropertySource("application.properties")
public class ApplicationConfig {
// more config ...
}
Run Code Online (Sandbox Code Playgroud)
如果您希望将配置置于类路径之外,则可以使用file:前缀:
@PropertySource("file:/path/to/application.properties")
Run Code Online (Sandbox Code Playgroud)
或者,您可以使用环境变量来定义文件
@PropertySource("file:${APP_PROPERTIES}")
Run Code Online (Sandbox Code Playgroud)
APP_PROPERTIES环境变量在哪里具有属性文件的位置值,例如/path/to/application.properties.
请阅读我的博客文章Spring @PropertySource,了解有关@PropertySource它的用法,如何覆盖属性值以及如何指定可选属性源的更多信息.
| 归档时间: |
|
| 查看次数: |
75674 次 |
| 最近记录: |