Properties注入
时间: 2024-06-21 10:00:47 浏览: 161
在Spring框架中,Properties注入是一种配置方式,允许你在Java类中通过`@Value`注解从外部属性文件(如`db.properties`)中动态获取配置值。以下是如何实现的:
1. **配置属性文件**[^1]:在`db.properties`文件中,存储相关的数据库连接信息,如`mysql.url`, `mysql.userName`, `mysql.password`等。
```properties
mysql.url=jdbc:mysql://localhost:3306/testdb
mysql.userName=root
mysql.password=secret
```
2. **配置Spring容器**:在Spring配置文件(如`appContext.xml`或`applicationContext.xml`)中,使用`<context:property-placeholder>`标签来声明要加载的属性文件,并使用`<bean id="configProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean">`来创建一个`Properties` bean。
```xml
<context:property-placeholder location="classpath:db.properties"/>
<bean id="propertyConfigurer" class="org.springframework.context.support.PropertySourcesPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:db.properties</value>
</list>
</property>
</bean>
```
3. **注入Java类**:在Java类中,使用`@Value`注解并指定配置文件中的键来获取值。
```java
@Component
public class MySQLConnectionInfo {
@Value("${mysql.url}") // 使用${}语法是因为PropertySourcesPlaceholderConfigurer的存在
private String url;
@Value("${mysql.userName}")
private String userName;
@Value("${mysql.password}")
private String password;
}
```
这样,当你启动Spring应用时,这些属性就会自动注入到`MySQLConnectionInfo`类中。
阅读全文