项目中加载服务器配置文件,SpringMVC加载配置Properties文件的几种方式

dc25a6aed567a1f78fbd189afc43525a.png

76697f43b6dadf5352964015d0aea05b.png

最近开发的项目使用了SpringMVC的框架,用下来感觉SpringMVC的代码实现的非常优雅,功能也非常强大,

网上介绍Controller参数绑定、URL映射的文章都很多了,写这篇博客主要总结一下SpringMVC加载配置Properties文件的几种方式

1.通过context:property-placeholde实现配置文件加载

1.1、在spring.xml中加入context相关引用

[html] view plaincopy

xmlns:context=“http://www.springframework.org/schema/context”

xsi:schemaLocation=”http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans-4.0.xsd

http://www.springframework.org/schema/context

http://www.springframework.org/schema/context/spring-context.xsd”>

1.2、引入jdbc配置文件

[html] view plaincopy

1.3、jdbc.properties的配置如下

[html] view plaincopy

jdbc_driverClassName=com.mysql.jdbc.Driver

jdbc_url=jdbc:mysql://localhost/testdb?useUnicode=true&characterEncoding=utf8

jdbc_username=root

jdbc_password=123456

1.4、在spring-mybatis.xml中引用jdbc中的配置

[html] view plaincopy

destroy-method=“close” >

${jdbc_driverClassName}

${jdbc_url}

${jdbc_username}

${jdbc_password}

20

1

60000

20

3

true

180

clientEncoding=UTF-8

1.5、在java类中引用jdbc.properties中的配置

[html] view plaincopy

import org.springframework.beans.factory.annotation.Value;

import org.springframework.context.annotation.Configuration;

@Configuration

public class JdbcConfig{

@Value(“${jdbc_url}”)

public  String jdbcUrl; //这里变量不能定义成static

@Value(“${jdbc_username}”)

public  String username;

@Value(“${jdbc_password}”)

public  String password;

}

1.6、在controller中调用

[html] view plaincopy

@RequestMapping(“/service/**”)

@Controller

public class JdbcController{

@Autowired

private JdbcConfig Config; //引用统一的参数配置类

@Value(“${jdbc_url}”)

private String jdbcUrl; //直接在Controller引用

@RequestMapping(value={“/test”})

public ModelMap test(ModelMap modelMap) {

modelMap.put(“jdbcUrl”, Config.jdbcUrl);

return modelMap;

}

@RequestMapping(value={“/test2”})

public ModelMap test2(ModelMap modelMap) {

modelMap.put(“jdbcUrl”, this.jdbcUrl);

return modelMap;

}

}

1.7、测试

在ie中输入http://localhost:8080/testWeb/service/test 或http://localhost:8080/testWeb/service/test2

返回如下结果:

[java] view plaincopy

{

jdbcUrl:“jdbc:mysql://localhost/testdb?useUnicode=true&characterEncoding=utf8”

}

注:通过context:property-placeholde加载多个配置文件

只需在第1.2步中将多个配置文件以逗号分隔即可

[html] view plaincopy

2、通过util:properties实现配置文件加载

2.1、在spring.xml中加入util相关引用

[html] view plaincopy

xmlns:context=“http://www.springframework.org/schema/context”

xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”

xmlns:util=“http://www.springframework.org/schema/util”

xsi:schemaLocation=”http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans-4.0.xsd

http://www.springframework.org/schema/context

http://www.springframework.org/schema/context/spring-context.xsd

http://www.springframework.org/schema/util

http://www.springframework.org/schema/util/spring-util-4.0.xsd”>

2.2、 引入config配置文件

[html] view plaincopy

2.3、config.properties的配置如下

[html] view plaincopy

gnss.server.url=http://127.0.0.1:8080/gnss/services/data-world/rest

2.4、在java类中引用config中的配置

[html] view plaincopy

import org.springframework.beans.factory.annotation.Value;

import org.springframework.stereotype.Component;

@Component

public class Config {

@Value(“#{settings[‘gnss.server.url’]}”)

public  String GNSS_SERVER_URL;

}

2.5、在controller中调用

[html] view plaincopy

@RequestMapping(“/service2/**”)

@Controller

public class ConfigController{

@Autowired

private Config Config; //引用统一的参数配置类

@RequestMapping(value={“/test”})

public ModelMap test(ModelMap modelMap) {

modelMap.put(“gnss.service.url”,Config.GNSS_SERVER_URL);

return modelMap;

}

}

2.6、测试

在ie中输入http://localhost:8080/testWeb/service2/test

返回如下结果:

[html] view plaincopy

{

“gnss.service.url”:”http://127.0.0.1:8080/gnss/services/data-world/rest”

}

3.直接在Java类中通过注解实现配置文件加载

3.1、在java类中引入配置文件

[java] view plaincopy

import org.springframework.beans.factory.annotation.Value;

import org.springframework.context.annotation.Configuration;

import org.springframework.context.annotation.PropertySource;

@Configuration

@PropertySource(value=“classpath:config.properties”)

public class Config {

@Value(“${gnss.server.url}”)

public  String GNSS_SERVER_URL;

@Value(“${gnss.server.url}”)

public  String jdbcUrl;

}

3.2、在controller中调用

[java] view plaincopy

@RequestMapping(“/service2/**”)

@Controller

public class ConfigController{

@Autowired

private Config Config; //引用统一的参数配置类

@RequestMapping(value={“/test”})

public ModelMap test(ModelMap modelMap) {

modelMap.put(“gnss.service.url”, Config.GNSS_SERVER_URL);

return modelMap;

}

}

3.3、测试

在ie中输入http://localhost:8080/testWeb/service2/test

返回如下结果:

[java] view plaincopy

{

“gnss.service.url”:“http://127.0.0.1:8080/gnss/services/data-world/rest”

}

最后附上spring.xml的完整配置:

[html] view plaincopy

xmlns:context=“http://www.springframework.org/schema/context”

xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”

xmlns:util=“http://www.springframework.org/schema/util”

xsi:schemaLocation=”http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans-4.0.xsd

http://www.springframework.org/schema/context

http://www.springframework.org/schema/context/spring-context.xsd

http://www.springframework.org/schema/util

http://www.springframework.org/schema/util/spring-util-4.0.xsd”>

 –>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值