下面是Spring加载Properties配置文件的四种方式的详细攻略。
一、通过@PropertySource注解加载
通过在Spring配置类上添加@PropertySource注解来加载Properties配置文件,可以通过value属性指定配置文件位置,也可以通过classpath属性来指定配置文件在类路径下的位置。
@Configuration
@PropertySource("classpath:config.properties")
public class Config {
@Value("${url}")
private String url;
@Bean
public DataSource getDataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setUrl(url);
return dataSource;
}
}
二、通过标签加载
可以通过在XML配置文件中使用
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:config.properties</value>
</list>
</property>
</bean>
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="url" value="${url}"/>
</bean>
三、通过Environment对象加载
可以通过在Spring配置类中通过@Autowired注入Environment对象来获取Properties配置文件中的属性。
@Configuration
@PropertySource("classpath:config.properties")
public class Config {
@Autowired
private Environment env;
@Bean
public DataSource dataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setUrl(env.getProperty("url"));
return dataSource;
}
}
四、通过PropertiesFactoryBean加载
可以通过在XML配置文件中使用
<bean id="propertiesFactoryBean" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
<property name="location" value="classpath:config.properties"/>
</bean>
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="url" value="#{propertiesFactoryBean['url']}"/>
</bean>
以上四种方式在Spring中都可以很方便地使用,我们根据需要来选择合适的方式即可。
示例1:编写一个Web项目,通过@PropertySource注解将Properties文件中的端口号注入到Tomcat服务器上
@Configuration
@PropertySource("classpath:port.properties")
public class TomcatConfig {
@Value("${tomcat.port}")
private int port;
@Bean
public TomcatEmbeddedServletContainerFactory tomcatFactory() {
TomcatEmbeddedServletContainerFactory factory = new TomcatEmbeddedServletContainerFactory();
factory.setPort(port);
return factory;
}
}
示例2:编写一个Spring Boot项目,通过Environment对象获取Properties文件中的数据库连接信息
@Configuration
@PropertySource("classpath:db.properties")
public class DatabaseConfig {
@Autowired
private Environment env;
@Bean
public DataSource dataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setUrl(env.getProperty("url"));
dataSource.setUsername(env.getProperty("username"));
dataSource.setPassword(env.getProperty("password"));
dataSource.setDriverClassName(env.getProperty("driver"));
return dataSource;
}
}
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解Spring加载Properties配置文件的四种方式 - Python技术站