SpringMVC加载配置Properties⽂件的⼏种⽅式
转载请说明出处:
最近开发的项⽬使⽤了SpringMVC的框架,⽤下来感觉SpringMVC的代码实现的⾮常优雅,功能也⾮常强⼤,
⽹上介绍Controller参数绑定、URL映射的⽂章都很多了,写这篇博客主要总结⼀下SpringMVC加载配置Properties⽂件的⼏种⽅式
1.通过context:property-placeholde实现配置⽂件加载
1.1、在.xml中加⼊context相关引⽤
[html]
1. <?xml version="1.0" encoding="UTF-8"?>
2. <beans xmlns="/schema/beans"
3. xmlns:context="/schema/context"
4. xsi:schemaLocation="/schema/beans
5. /schema/beans/spring-beans-4.0.xsd
6. /schema/context
7. /schema/context/spring-context.xsd">
1.2、引⼊jdbc配置⽂件
[html]
1. <context:property-placeholder location="classpath:jdbc.properties"/>
1.3、jdbc.properties的配置如下
[html]
1. jdbc_sql.jdbc.Driver
2. jdbc_url=jdbc:mysql://localhost/testdb?useUnicode=true&characterEncoding=utf8
3. jdbc_username=root
4. jdbc_password=123456
1.4、在l中引⽤jdbc中的配置
[html]
1. <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init"
2. destroy-method="close" >
3. <property name="driverClassName">
4. <value>${jdbc_driverClassName}</value>
5. </property>
6. <property name="url">
7. <value>${jdbc_url}</value>
8. </property>
9. <property name="username">
10. <value>${jdbc_username}</value>
11. </property>
12. <property name="password">
13. <value>${jdbc_password}</value>
14. </property>
15. <!-- 连接池最⼤使⽤连接数 -->
16. <property name="maxActive">
17. <value>20</value>
18. </property>
19. <!-- 初始化连接⼤⼩ -->
20. <property name="initialSize">
21. <value>1</value>
22. </property>
23. <!-- 获取连接最⼤等待时间 -->
24. <property name="maxWait">
25. <value>60000</value>
26. </property>
27. <!-- 连接池最⼤空闲 -->
28. <property name="maxIdle">
29. <value>20</value>
30. </property>
31. <!-- 连接池最⼩空闲 -->
32. <property name="minIdle">
33. <value>3</value>
34. </property>
35. <!-- ⾃动清除⽆⽤连接 -->
36. <property name="removeAbandoned">
37. <value>true</value>
38. </property>
39. <!-- 清除⽆⽤连接的等待时间 -->
40. <property name="removeAbandonedTimeout">
41. <value>180</value>
42. </property>
43. <!-- 连接属性 -->
44. <property name="connectionProperties">
45. <value>clientEncoding=UTF-8</value>
46. </property>
47. </bean>
1.5、在类中引⽤jdbc.properties中的配置
[html]
1. import org.springframework.beans.factory.annotation.Value;
2. import t.annotation.Configuration;
3.
4.
5.
6. @Configuration
7. public class JdbcConfig{
8.
9. @Value("${jdbc_url}")
10. public String jdbcUrl; //这⾥变量不能定义成static
11.
12. @Value("${jdbc_username}")
13. public String username;
14.
15. @Value("${jdbc_password}")
16. public String password;
17.
18. }
1.6、在controller中调⽤
[html]
1. @RequestMapping("/service/**")
2. @Controller
3. public class JdbcController{
4.
5. @Autowired
6. private JdbcConfig Config; //引⽤统⼀的参数配置类
7.
8. @Value("${jdbc_url}")
9. private String jdbcUrl; //直接在Controller引⽤
10. @RequestMapping(value={"/test"})
11. public ModelMap test(ModelMap modelMap) {
12. modelMap.put("jdbcUrl", Config.jdbcUrl);
13. return modelMap;
14. }
15. @RequestMapping(value={"/test2"})
16. public ModelMap test2(ModelMap modelMap) {
17. modelMap.put("jdbcUrl", this.jdbcUrl);
18. return modelMap;
19. }
20. }
1.7、
在ie中输⼊或2
返回如下结果:
[java]
1. {
2. jdbcUrl:"jdbc:mysql://localhost/testdb?useUnicode=true&characterEncoding=utf8"
3. }
注:通过context:property-placeholde加载多个配置⽂件
只需在第1.2步中将多个配置⽂件以逗号分隔即可
[html]
1. <context:property-placeholder location="classpath:jdbc.properties,classpath:XXX.properties"/>
2、通过util:properties实现配置⽂件加载
2.1、在l中加⼊util相关引⽤
[html]
1. <?xml version="1.0" encoding="UTF-8"?>
2. <beans xmlns="/schema/beans"
3. xmlns:context="/schema/context"
4. xmlns:xsi="/2001/XMLSchema-instance"
5. xmlns:util="/schema/util"
6. xsi:schemaLocation="/schema/beans
7. /schema/beans/spring-beans-4.0.xsd
8. /schema/context
9. /schema/context/spring-context.xsd
10. /schema/util
11. /schema/util/spring-util-4.0.xsd"> 2.2、引⼊config配置⽂件
[html]
1. <util:properties id="settings" location="classpath:config.properties"/>
2.3、config.properties的配置如下
[html]
1. gnss.server.url=127.0.0.1:8080/gnss/services/data-world/rest
2.4、在java类中引⽤config中的配置
[html]
1. import org.springframework.beans.factory.annotation.Value;
2. import org.springframework.stereotype.Component;
3.
4. @Component
5. public class Config {
6. @Value("#{settings['gnss.server.url']}")
7. public String GNSS_SERVER_URL;
8.
9. }
2.5、在controller中调⽤
[html]
1. @RequestMapping("/service2/**")
2. @Controller
3. public class ConfigController{
4.
5. @Autowired
6. private Config Config; //引⽤统⼀的参数配置类
7.
8. @RequestMapping(value={"/test"})
9. public ModelMap test(ModelMap modelMap) {
10. modelMap.put("gnss.service.url",Config.GNSS_SERVER_URL);
11. return modelMap;
12. }
13. }
2.6、测试
在ie中输⼊
返回如下结果:
[html]
1. {
2. "gnss.service.url":"127.0.0.1:8080/gnss/services/data-world/rest"
3. }
3.直接在Java类中通过注解实现配置⽂件加载
3.1、在java类中引⼊配置⽂件
[java]
1. import org.springframework.beans.factory.annotation.Value;
2. import t.annotation.Configuration;spring怎么读取properties
3. import t.annotation.PropertySource;
4.
5. @Configuration
6. @PropertySource(value="classpath:config.properties")
7. public class Config {
8.
9. @Value("${gnss.server.url}")
10. public String GNSS_SERVER_URL;
11.
12. @Value("${gnss.server.url}")
13. public String jdbcUrl;
14.
15. }
3.2、在controller中调⽤
[java]
1. @RequestMapping("/service2/**")
2. @Controller
3. public class ConfigController{
4.
5. @Autowired
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论