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小时内删除。