一个系统中通常会存在如下一些以Properties形式存在的配置文件
1.数据库配置文件demo-db.properties:
database.url=jdbc:mysql://localhost/smaple database.driver=com.mysql.jdbc.Driver database.user=root database.password=1232.消息服务配置文件demo-mq.properties:
#congfig of ActiveMQ mq.java.naming.factory.initial=org.apache.activemq.jndi.ActiveMQInitialContextFactory mq.java.naming.provider.url=failover:(tcp://localhost:61616?soTimeout=30000&connectionTimeout=30000)?jms.useAsyncSend=true&timeout=30000 mq.java.naming.security.principal= mq.java.naming.security.credentials= jms.MailNotifyQueue.consumer=53.远程调用的配置文件demo-remote.properties:
remote.ip=localhost remote.port=16800 remote.serviceName=test一、系统中需要加载多个Properties配置文件
应用场景:Properties配置文件不止一个,需要在系统启动时同时加载多个Properties文件。
配置方式:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://ponentpublic class MySQLConnectionInfo { @Value("#{configProperties['mysql.url']}") private String url; @Value("#{configProperties['mysql.userName']}") private String userName; @Value("#{configProperties['mysql.password']}") private String password; /** * @return the url */ public String getUrl() { return url; } /** * @return the userName */ public String getUserName() { return userName; } /** * @return the password */ public String getPassword() { return password; }}自动注入需要使用@Value注解,这个注解的格式#{configProperties['mysql.url']}其中configProperties是我们在appContext.xml中配置的beanId,mysql.url是在properties文件中的配置项。
properties文件的内容如下:
mysql.url=mysql's urlmysql.userName=mysqlUsermysql.password=mysqlPassword最后我们需要测试一下以上写法是否有问题,如下App.java文件内容:
package cn.outofmemory.hellospring.properties.annotation;import org.springframework.context.ApplicationContext;import org.springframework.context.annotation.AnnotationConfigApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;/** * Hello world! * */public class App { public static void main( String[] args ) { ApplicationContext appContext = new ClassPathXmlApplicationContext("appContext.xml"); MySQLConnectionInfo connInfo = appContext.getBean(MySQLConnectionInfo.class); System.out.println(connInfo.getUrl()); System.out.println(connInfo.getUserName()); System.out.println(connInfo.getPassword()); }}在main方法中首先声明了appContext,然后获得了自动注入的MySQLConnectionInfo的实例,然后打印出来,运行程序会输出配置文件中配置的值
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。如果你想了解更多相关内容请查看下面相关链接