1、用法示例: 在springMVC.xml配置文件中添加标签
(推荐用这个,这个用的比较多,也比较简洁)
<context:property-placeholder location="classpath:salesman.properties"/>
加载多个
<context:property-placeholder location="classpath:*.properties"/>
在Java中使用这个@Value("${ }")注解 读取 properties中的参数
@Value("${filePath}")
private String filePath;
public void setFilePath(String filePath) {
System.out.println(filePath);
this.filePath = filePath;
}
在其他配置文件中使用 ${ } 读取 properties中的参数
<bean id="cronTrigger_1" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail">
<ref bean="SMSSDetail_1" />
</property>
<!-- 每一秒钟执行一次 -->
<property name="cronExpression">
<value>${SMSSCHEDUlERTIME}</value>
</property>
</bean>
2.方式是使用注解的方式注入,主要用在java代码中使用注解注入properties文件中相应的value值 ,
注意:变量不能用static修饰;
<!-- 第二种方式是使用注解的方式注入,主要用在java代码中使用注解注入properties文件中相应的value值 -->
<bean id="PropertiesFactory" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
<property name="locations"><!-- 这里是PropertiesFactoryBean类,它也有个locations属性,也是接收一个数组,跟上面一样
<array>
<value>classpath:salesman.properties</value>
</array>
</property>
<property name="fileEncoding" value="UTF-8"/>
</bean>
@Component("fileUpload")
public class FileUploadUtil implements FileUpload {
@Value("#{PropertiesFactory.filePath}")
private String filePath;
//@Value表示去beans.xml文件中找id="PropertiesFactory"的bean,它是通过注解的方式读取properties配置文件的,然后去相应的配置文件中读取key=filePath的对应的value值
public void setFilePath(String filePath) {
System.out.println(filePath);
this.filePath = filePath;
3.扫描多个配置文件,把需要扫描的文件放在新建的conf文件下:
在D:\Project\tc_vsmp\src-main-resources\applicationContext.xml 文件中配置bean 扫描
<bean id="prop" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
<property name="locations">
<array>
<value>classpath:conf/*</value>
</array>
</property>
<property name="fileEncoding" value="UTF-8"/>
</bean>
java类读取:
public class SMSScheduler {
/**
*
@Autowired
private LoanQueryService service;
/**
*
*/
@Value("#{prop.TIMEDPUSHDAY}")
public String TIMEDPUSHDAY;
/**
*
*/
@Value("#{prop.SMSSCHEDUlER_JINXING_IPHONENUM}")
public String SMSSCHEDUlER_JINXING_IPHONENUM;
在配置文件中读取:
<bean id="cronTrigger_1" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail">
<ref bean="SMSSDetail_1" />
</property>
<!-- 每一秒钟执行一次 -->
<property name="cronExpression">
<value>#{prop.SMSSCHEDUlERTIME}</value>
</property>
</bean>