2019独角兽企业重金招聘Python工程师标准>>>

工程中,我们必须要面对的一件事就是, 开发环境中使用的数据库连接地址等与生产上的不同, 如果上线, 那么我们是否还要手动修改这些地址么, 这样做有很多弊端, 不方便, 这时我们就可以使用spring的profile来解决.

1 修改web.xml

在web.xml中加入如下List-1.1的内容.

List-1.1

<context-param><param-name>spring.profiles.default</param-name><!--生产环境时,改为production,开发时改为development--><param-value>development</param-value>
</context-param>

2 resources下的properties文件

如下图2.1所示, development下放置的是开发时使用的配置; production下是生产上使用的配置.

图2.1

之后在spring的xml配置中,如下List-2.1所示, 重点是profile的值分别是development和production, 像List-1.1中那样使用的就是开发环境的.

List-2.1

<beans profile="development"><bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"><property name="ignoreUnresolvablePlaceholders" value="true"/><property name="locations"><list><value>classpath:properties/development/db.properties</value><value>classpath:properties/development/application.properties</value></list></property><property name="fileEncoding" value="UTF-8"/></bean>
</beans>
<beans profile="production"><bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"><property name="ignoreUnresolvablePlaceholders" value="true"/><property name="locations"><list><value>classpath:properties/production/db.properties</value><value>classpath:properties/production/application.properties</value></list></property><property name="fileEncoding" value="UTF-8"/></bean>
</beans>

3 单元测试时如何配置

单元测试时, 建一个TestBase类, 加上注解@ActiveProfiles, 值是development, 之后所有的单元测试类都继承它, 就可以了.

List-3.1

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath*:spring-context.xml"})
@ActiveProfiles("development")
public class TestBase {}

这样做了之后, 我们上线需要将List-1.1中的值改为production就可以了.

转载于:https://my.oschina.net/u/2518341/blog/2990608

Spring之项目中pofile的应用相关推荐

  1. spring boot 项目源码_Spring Boot2 系列教程(三)理解 Spring Boot 项目中的 parent

    前面和大伙聊了 Spring Boot 项目的三种创建方式,这三种创建方式,无论是哪一种,创建成功后,pom.xml 坐标文件中都有如下一段引用: <parent><groupId& ...

  2. spring mvc项目中利用freemarker生成自定义标签

    2019独角兽企业重金招聘Python工程师标准>>> spring mvc项目中利用freemarker生成自定义标签 博客分类: java spring mvc +freemar ...

  3. 在Spring Boot项目中使用Spock框架

    转载:https://www.jianshu.com/p/f1e354d382cd Spock框架是基于Groovy语言的测试框架,Groovy与Java具备良好的互操作性,因此可以在Spring B ...

  4. scheduled每天下午1点执行一次_在Spring Boot项目中使用@Scheduled注解实现定时任务...

    在java开发中定时任务的实现有多种方式,jdk有自己的定时任务实现方式,很多框架也有定时任务的实现方式.这里,我介绍一种很简单的实现方式,在Spring Boot项目中使用两个注解即可实现. 在sp ...

  5. Spring Boot 项目中Java对象的字符串类型属性值转换为JSON对象的布尔类型键值的解决方法及过程

    文章目录 场景描述 示例说明 解决历程 @JsonFormat是否能解决问题? 万能方案-调试 替代方案 补充知识 Java对象与JSON对象的序列化与反序列化 相关注解说明 后记 场景描述 在Spr ...

  6. Spring Boot项目中使用RestTemplate调用https接口出现 unable to find valid certification path to requested target

    问题描述:Spring Boot项目中使用RestTemplate调用https接口出现以下错误: PKIX path building failed: sun.security.provider.c ...

  7. Spring Boot项目中集成Elasticsearch,并实现高效的搜索功能

    Spring Boot项目中集成Elasticsearch 前言 环境准备 引入依赖 配置Elasticsearch连接信息 定义实体类 定义Elasticsearch操作接口 实现搜索功能 总结 前 ...

  8. 如何在Spring和Spring MVC项目中进行测试

    Spring框架概述 Spring大约包含了20个模块,这些模块组成了核心容器(Core Container).数据访问/集成(Data Access/Integration).Web.AOP(面向切 ...

  9. 在Spring Boot 项目中使用Spring AOP实现切面日志

    导语   大数据时代,数据来源是比较重要的.而日志作为用户操作.系统监控.业务分析等都比较重要的一个环节.能更好的使用日志显得尤为重要.那么在Spring Boot的项目中如何能更加高效的记录Cont ...

最新文章

  1. Personal preference
  2. 浅谈MyBatis一级缓存
  3. 转:Kafka、RabbitMQ、RocketMQ等消息中间件的介绍和对比
  4. oracle导入substring,java中substring()和oracle中substr()区别
  5. 互斥锁、条件变量、信号量浅析
  6. html图片多边形怎么写,使用CSS3构建的图像多边形裁剪动画特效
  7. 【LeetCode】12. Integer to Roman 整型数转罗马数
  8. C#后台调用前台js(RegisterStartupScript)
  9. c语言lr分析器的设计与实现_Python3设计模式四 :状态模式
  10. 14的虚拟机可以用在15上面吗_环氧底漆是什么漆,分很多种吗?环氧底漆都可以用在什么上面...
  11. POJ--3278 Catch That Cow
  12. NATS 分布式消息队列系统
  13. Modern Robotics:机器人的构型空间
  14. oracle lob函数,Oracle可以处理LOB字段的常用字符函数
  15. 自动驾驶 Apollo 源码分析系列,感知篇(一)
  16. github提交时报错:remote: Support for password authentication was removed on August 13, 2021问题解决方案
  17. Java正则表达式实现港、澳、台身份证验证
  18. PAT 乙级 1065 单身狗 (25 分)
  19. 关于UE5角色动画蓝图的基本操作(基础向)
  20. “不喝就是不给我面子”,酒局领导逼你喝酒咋办?坚守这条底线

热门文章

  1. Java基础02 位运算符<<、>>
  2. arduino机器人设计与制作_百元搭建人工智能自主导航机器人
  3. java8 hadoop_java8-模拟hadoop
  4. 7_python基础—while循环应用1-100累加和
  5. Postman常用方法
  6. python 装机配置_Python实现自动装机功能案例分析
  7. linux中paste的用法,在Linux中使用Paste命令来合并行,包括使用Paste命令技巧及注意事项...
  8. android handler内存,Android handler之内存泄露原因揭示
  9. 编译环境与生成环境的JDK版本不一样,报:java.util.zip.ZipException: error in opening zip file
  10. B1.Java基础部分二