Spring 3.1引入了非常有用的功能,称为配置文件 。 因此,它易于构建,可以在所有环境(开发,测试,生产等)中部署的软件包。

通过定义系统属性spring.profiles.active, Spring允许我们使用XML配置或@Profile注释根据活动的概要文件名称创建不同的bean。 众所周知,系统属性可以在Spring XML文件中使用,我们将利用这一点。

在这篇文章中,我将展示如何使用Spring配置文件为所有环境创建一个包,以及如何在Apache Tomcat上运行它。

示例架构

我认为最常见和想要的体系结构是,在开发,测试和生产上部署的应用程序仅在包含配置的已使用属性文件中有所不同时。 WAR包含所有环境的配置,并且在运行时选择了正确的环境。 因此,如果在应用程序资源中包含以下文件,则是最好的:

srcmainresources- config_dev.properties- config_production.properties...

配置Spring属性占位符

为了在Spring中加载属性文件,我们使用<context:property-placeholder />或@PropertySource批注。 在我的示例中,我将遵循XML配置方法来加载属性文件:

<?xml version='1.0' encoding='UTF-8'?>
<beans xmlns='http://www.springframework.org/schema/beans'xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'xmlns:context='http://www.springframework.org/schema/context'xsi:schemaLocation='http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-3.1.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-3.1.xsd'><context:property-placeholder location='classpath:config_${spring.profiles.active}.properties' /></beans>

配置Tomcat

现在是时候告诉Tomcat哪个配置文件处于活动状态了。 至少有办法做到这一点:

  • 在web.xml中定义上下文参数 –破坏了“针对所有环境的一个包”的声明。 我不建议那样
  • 定义系统属性-Dspring.profiles.active =您的活动配置文件

我认为定义系统属性是更好的方法。 那么如何为Tomcat定义系统属性呢? 在Internet上,我可以找到很多建议,例如“ modify catalina.sh”,因为您找不到用于执行此类操作的任何配置文件。 修改catalina.sh是一个肮脏的无法维护的解决方案。 有更好的方法可以做到这一点。

只需在Tomcat的bin目录中创建包含以下内容的文件setenv.sh

JAVA_OPTS='$JAVA_OPTS -Dspring.profiles.active=dev'

并且它将在运行catalina.sh启动或运行期间自动加载。


结论

使用Spring概要文件,我们可以创建可以在多个环境中部署的灵活应用程序。 与Maven配置文件方法有何不同? 使用Maven,构建应用程序的人必须定义应该在哪个环境中运行。 通过上述方法,环境决定了其开发,测试还是生产。 因此,我们可以使用完全相同的WAR文件并将其部署到任何地方。

参考: Software Development Journey博客上的JCG合作伙伴 Maciej Walkowiak提供的Spring 3.1配置文件和Tomcat配置 。

翻译自: https://www.javacodegeeks.com/2012/06/spring-31-profiles-and-tomcat.html

Spring 3.1配置文件和Tomcat配置相关推荐

  1. Spring Boot、Spring Cloud 自定义配置文件(如何整合配置中心)

    文章目录 Spring Boot配置 简单测试使用 Spring Cloud自定义配置文件获取 1. 引入依赖 2. 自定义配置 2.1 自定义PropertySource,这里我们直接使用Sprin ...

  2. Spring Boot笔记-新增嵌入式tomcat配置(修改tomcat中conf/server.xml)

    这里以spring boot 2.x为例 这里我直接贴代码,设置2个头,一个是X-Forwarded-For一个是X-Forwarded-Proto及将头设置为https. @Configuratio ...

  3. Spring配置文件和Java配置

    我的上一个博客介绍了Spring 3.1的配置文件,并解释了使用它们的业务案例,并演示了它们在Spring XML配置文件中的用法. 但是,似乎很多开发人员更喜欢使用Spring的基于Java的应用程 ...

  4. Spring Boot概述与入门特点配置方式注入方式yim配置文件与多文件配置Spring Boot自动配置原理lombok应用

    1. Spring Boot概述 Spring Boot是Spring项目中的一个子工程,与我们所熟知的Spring-framework 同属于spring的产品: 首页Spring Boot简介可以 ...

  5. spring boot实战(第七篇)内嵌容器tomcat配置

    spring boot默认web程序启用tomcat内嵌容器tomcat,监听8080端口,servletPath默认为 / 通过需要用到的就是端口.上下文路径的修改,在spring boot中其修改 ...

  6. Spring Boot Tomcat 配置【数安时代 GDCA】SSL证书安装

    环境:Windows Server 2012 .Spring Boot 1.5.x (Tomcat 8).Java 8 前提:域名经过备案 目录 数安时代申请免费的SSL证书 生成Keystore 配 ...

  7. idea 服务器tomcat配置文件,IntelliJ IDEA Tomcat配置详解(图文)

    IntelliJ IDEA Tomcat配置详解(图文) 发布时间:2020-10-07 17:31:10 来源:脚本之家 阅读:94 作者:chenshun123的博客 栏目:服务器 查找该问题的童 ...

  8. 【Spring Boot】从配置文件中读取配置参数

    前言 在生产环境中,经常会用到各种各样的参数,为了避免代码太过死板,一般将参数写入配置文件,然后需要用到参数的时候从配置文件中读取,下面总结出几种从配置文件中读取配置参数的方法. 环境搭建 现有配置文 ...

  9. Spring Boot 面试杀手锏:自动配置原理

    欢迎关注方志朋的博客,回复"666"获面试宝典 不论在工作中,亦或是求职面试,Spring Boot已经成为我们必知必会的技能项.除了某些老旧的政府项目或金融项目持有观望态度外,如 ...

最新文章

  1. 从CIO视角出发审视云环境下的安全议题
  2. php帝国下载文件,帝国CMS如何支持弹出下载txt jpg等格式
  3. ReSharper 配置及用法(ZHUANG)
  4. 为数据赋能:腾讯TDSQL分布式金融级数据库前沿技术
  5. INTERNET的完整形式是什么?
  6. 《南溪的目标检测学习笔记》——backbone的学习笔记
  7. 全自动备份vss和sql数据库(含源码下载)
  8. matlab p q的确定,基于MATLAB软件的P-Q分解法潮流计算 (1)
  9. 使用appium时出现的问题
  10. 区块链 以太坊 合约 创建、执行 详解
  11. Java中jdk安装与环境变量配置
  12. TCP 和 UDP 的区别
  13. 如何通过5S管理改变工作环境?
  14. 求职必备素材:个人简历Word模板
  15. 渗透测试工具之——初识burp
  16. 企查查爬虫python实现(一)整体方法
  17. python mac地址转int,Python MAC地址 获取,过滤,转
  18. MATLAB画个直方图
  19. springboot 签名验证
  20. 人民币为什么会贬值?

热门文章

  1. HDU2049(错列排序)
  2. flutter调用api_如何在Flutter(REST API)中进行API调用
  3. java8日期转时间戳_Java 8日期和时间
  4. javaslang_使用Javaslang的Java 8中的功能数据结构
  5. tdd java_Java TDD简介–第2部分
  6. javafx 8u40_JavaFX 8u20天的未来过去(始终在最前面)
  7. java 编译 器 ide_在没有IDE的情况下编译和运行Java
  8. xalan_如何以10倍速加速Apache Xalan的XPath处理器
  9. 使用带有OAuth的Spring Security保护资源
  10. 正义联盟的Spring靴