工作中经常遇到开发、测试、生产等多个环境切换,profile可以解决,目前主流的是spring profile和maven profile两种。以我项目配置文件为例,结构如下,主要的改变是在properties里:
- 一、spring profile
1、在spring的配置文件中配置profile,下面是我的app-context-profile.xml,把profile的配置独立出来,然后引用该配置文件
<?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:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:task="http://www.springframework.org/schema/task" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation=" http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.1.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd "> <description>spring profile配置</description> <!-- 开发环境配置文件 --> <beans profile="development"> <context:property-placeholder location="classpath*:properties/development/*.properties" /> </beans> <!-- 测试环境配置文件 --> <beans profile="test"> <context:property-placeholder location="classpath*:properties/test/*.properties" /> </beans> <!-- 生产环境配置文件 --> <beans profile="production"> <context:property-placeholder location="classpath*:properties/production/*.properties" /> </beans> </beans>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:spring/app-context.xml,
classpath:spring/app-context-mybatis.xml,
classpath:spring/app-context-service.xml,
classpath:spring/app-context-profile.xml,
classpath:spring/app-context-other.xml
</param-value>
</context-param>
2、在web.xml中配置调用
<!-- 在上下文context-param中设置profile.default的默认值 -->
<context-param>
<param-name>spring.profiles.default</param-name>
<param-value>development</param-value>
</context-param>
<!-- 在上下文context-param中设置profile.active的默认值 -->
<!-- 设置active后default失效,web启动时会加载对应的环境信息 -->
<!-- <param-value>的值和前面配置的beans profile一致,
需要调用哪种环境修改param-value即可 -->
<context-param>
<param-name>spring.profiles.active</param-name>
<param-value>test</param-value>
</context-param>
spring profile适合所有工程,但是切换环境仍然需要修改web.xml。下面的maven profile可以实现零文件修改
- 二、maven profile
1、pom.xml文件配置
<profiles> <profile> <!-- 本地开发环境 --> <id>development</id> <properties> <profiles.active>development</profiles.active> </properties> <activation> <activeByDefault>true</activeByDefault> </activation> </profile> <profile> <!-- 测试环境 --> <id>test</id> <properties> <profiles.active>test</profiles.active> </properties> </profile> <profile> <!-- 生产环境 --> <id>production</id> <properties> <profiles.active>production</profiles.active> </properties> </profile> </profiles> <build> <resources> <resource> <directory>src/main/resources</directory> <!-- 资源根目录排除各环境的配置,使用单独的资源目录来指定 --> <excludes> <exclude>properties/test/**</exclude> <exclude>properties/production/**</exclude> <exclude>properties/development/**</exclude> </excludes> </resource> <resource> <directory>src/main/resources/properties/${profiles.active}</directory> <!-- 由于上方没有把profile的文件打包,在此处单独指定profile需要的 properties打包到指定位置,如果没有该配置profile需要的文件会采用maven 的默认配置打到resources目录下而不是resources/properties下 --> <targetPath>properties</targetPath> </resource> </resources> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>tomcat-maven-plugin</artifactId> <version>1.1</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <configuration> <!-- 激活spring profile --> <webResources> <resource> <filtering>true</filtering> <directory>src/main/webapp</directory> <includes> <include>**/web.xml</include> </includes> </resource> </webResources> <warSourceDirectory>src/main/webapp</warSourceDirectory> <webXml>src/main/webapp/WEB-INF/web.xml</webXml> </configuration> </plugin> </plugins> <finalName>dataservice-gateway</finalName> </build>
此配置已经可以采用profile打包了,运行mvn clean install -Ptest就可以打出test需要的war包,但这样还不能和eclipse tomcat中发布的一致。
2、与eclipse tomcat集成(非maven tomcat插件)
右键选中程序-properties-maven-录入需要运行的profile
CRTL+ALT+P重新把tomcat publish一下即可
如果maven打包后遇到“Execution default-resources of goal org.apache.maven.plugins:maven-resources-plugin:2.6:resources failed”,maven-update projects一下
相关推荐
你可以为不同的环境(如开发、测试、生产)定义不同的配置,如数据库连接信息,然后在构建时选择合适的profile。这样,同一个项目可以轻松地适应多种环境,提高了部署的灵活性。 最后,我们来谈谈源码管理和版本...
10. **Spring Profile**:如果涉及多环境配置,可以学习Spring的Profile特性,如何根据不同的运行环境加载不同的配置。 通过这个实例,初学者不仅能掌握Spring IoC的基本概念,还能了解到Maven的实用功能,为后续更...
**Spring IoC 框架详解** ...在实际项目中,结合Maven进行项目构建和管理,可以更高效地组织和运行Spring应用。通过不断的实践和学习,你将能够充分利用Spring框架的强大功能,构建出更加灵活、可扩展的应用系统。
Maven 管理 Spring Boot Profile 是一个重要的知识点,它可以帮助开发者更好地管理 Spring Boot 项目中的配置文件和依赖关系。在本文中,我们将详细探讨 Maven 管理 Spring Boot Profile 的原理和应用。 Spring ...
1.非web环境下spring如何与mybatis集成 2.maven如何打可以直接运行的jar包 3.maven如何用profile动态打包jdbc.properties 4.maven如何把mybatis的mapper.xml一起打包到jar中
Spring Boot 是一个基于 Spring 框架的快速开发工具,它简化了初始化、配置和部署Spring应用程序的过程。在Spring Boot项目中,Maven是常用的构建工具,它管理项目的依赖并帮助构建可执行的JAR或WAR文件。Maven本地...
在Spring Boot项目中,我们可以利用`application-{profile}.properties`或`application.yml`文件实现环境配置的切换。通过`spring.profiles.active`属性指定当前激活的环境,实现不同环境间的无缝切换。 在实际开发...
- 使用Profile:Maven支持多环境配置,通过Profile可以在开发、测试和生产环境中切换不同的配置。 - 注释和文档:为每个配置项添加注释,解释其用途,方便团队成员理解和维护。 在实际开发中,SSM项目的配置文件...
6. **Spring profiles与Maven多模块项目**:Maven支持多模块项目结构,每个模块可以对应不同的Spring profile,这使得我们可以在不同环境(如开发、测试、生产)下切换不同的配置。 7. **SpringMaven的持续集成**:...
Spring Boot 的 Maven 配置依赖详解是指如何使用 Maven 来管理 Spring Boot 项目的依赖关系和构建过程。 1. Spring Boot 的 Maven 配置 Spring Boot 的 Maven 配置主要通过继承和依赖管理来实现。继承是指在父项目...
以上就是 "Spring Boot Maven Web 完整项目框架" 的核心内容,涵盖 Spring Boot 的自动化配置、Maven 的依赖管理和构建功能,以及 Web 开发的相关知识点。通过这个项目,你可以快速搭建一个功能完善的 Web 应用,并...
本文介绍了如何使用 SpringBoot 和 Maven 实现多环境配置文件夹解决方案,使用 Profile 功能来加载不同的配置文件,使用 Resources 和 Filter 来指定打包内容和替换变量,选择当前环境,加载对应的配置文件。
在默认情况下,Maven会从中央仓库下载所需的库,但考虑到网络速度和稳定性,许多开发者选择使用国内的镜像源,比如阿里云的Maven镜像,以提高下载速度。 以下是对`settings.xml`配置文件中与阿里云镜像相关的知识点...
Maven使用Project Object Model (POM)文件来管理项目信息和构建配置。POM定义了项目依赖、插件和构建目标等。通过修改`pom.xml`,你可以自定义项目的构建过程。 8. **Maven生命周期与构建阶段** Maven拥有三个...
- 使用Maven的profile特性,可以根据环境(如开发、测试、生产)切换不同的配置。 - 注意服务的注册与发现,通常会结合Zookeeper或Nacos等注册中心使用。 以上就是关于"Spring Dubbo Maven 整合Demo"的详细介绍,...
3. 对于复杂的业务逻辑,可以利用Spring的Profile特性,根据环境(如开发、测试、生产)加载不同的配置。 4. 使用Spring的AOP和AspectJ进行切面编程,可以实现更灵活的代码组织和更少的重复代码。 5. 配合使用Maven...
在构建现代化的Java Web应用程序时,使用Spring Boot、Maven、MyBatis和Log4j2等技术可以极大地提升开发效率和应用性能。本篇文章将详细介绍如何利用这些工具搭建一个框架,并实现对多个数据库的集成。 首先,让...
此外,一些企业级的Maven插件,如Spring Boot的`spring-boot-maven-plugin`,也提供了类似的环境配置功能,简化了多环境构建的流程。 总之,Maven Filtering与Profile的结合使用,为Java开发者提供了一种强大且灵活...
当前案例中包含一整套的代码和word文档,非常适合新手代码简单易懂; 主要是通过maven打包加载不同环境的properties文件 然后将对于的属性绑定到指定的实体对象中;然后通过调用接口可以看到加载不同环境控制台打印的...