千家信息网

spring通过profile实现开发和测试环境切换

发表于:2024-12-13 作者:千家信息网编辑
千家信息网最后更新 2024年12月13日,以开发测试为例,介绍tomcat部署应用和maven部署应用下利用profile实现测试环境和开发环境切换一、tomcat部署应用1、数据源配置dev.properties 路径:/src/main/
千家信息网最后更新 2024年12月13日spring通过profile实现开发和测试环境切换

以开发测试为例,介绍tomcat部署应用和maven部署应用下利用profile实现测试环境和开发环境切换

一、tomcat部署应用

1、数据源配置

dev.properties 路径:/src/main/resrouces

jdbc.database=MYSQLjdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://mysql:3306/develop?useUnicode=true&characterEncoding=utf-8jdbc.schema=developjdbc.username=rootjdbc.password=12qw4ds

test.properties 路径:/src/main/resrouces

jdbc.database=MYSQLjdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8jdbc.schema=testjdbc.username=rootjdbc.password=123456

applicationContext-detabase.xml 路径:src/main/resources/spring

                                                                      

2、springmvc.xml webapp/WEB-INF

可以通过定义 profile 来将开发和生产环境的数据源配置分开

              

2、web.xml中定义默认的profile:

默认 profile 是指在没有任何 profile 被激活的情况下,默认 profile 内定义的内容将被使用,通常可以在 web.xml 中定义全局 servlet 上下文参数 spring.profiles.default 实现

        spring.profiles.default      development  


4、激活profile

spring 为我们提供了大量的激活 profile 的方法,可以通过代码来激活,也可以通过系统环境变量、JVM参数、servlet上下文参数来定spring.profiles.active 参数激活 profile,这里我们通过定义 JVM 参数实现。以 tomcat 为例,我们在 tomcat 的启动脚本中加入以下 JVM 参数

JAVA_OPTS="-Dspring.profiles.active=development -server -XX:PermSize=256M -XX:MaxPermSize=512M -Xms1024M -Xmx1024M -Xss512k -XX:LargePageSizeInBytes=128m -XX:MaxTenuringThreshold=15 -XX:+AggressiveOpts -XX:+UseBiasedLocking -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSParallelRemarkEnabled -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=$CATALINA_BASE/heap.dump.bin -Djava.awt.headless=true"

如果不定义,则会使用我们指定的默认 profile

二、maven部署应用

1、配置文件

dev.properties 路径为 /src/main/resources/filter

master.jdbc.driverClass = com.mysql.jdbc.Drivermaster.jdbc.url = jdbc:mysql://mysql-dev:3306/devmaster.jdbc.user = rootmaster.jdbc.password = Aa12345678

test.properties 路径为 /src/main/resources/filter

master.jdbc.driverClass = com.mysql.jdbc.Drivermaster.jdbc.url = jdbc:mysql://mysql-test:3306/testmaster.jdbc.user = rootmaster.jdbc.password = root

config.properties 路径:/src/main/resource/META-INF

master.jdbc.driverClass = ${master.jdbc.driverClass}master.jdbc.url = ${master.jdbc.url}master.jdbc.user = ${master.jdbc.user}master.jdbc.password = ${master.jdbc.password}

spring-datasource.xml 路径为:/src/main/resources/spring

                                                                                                                            

2、pom.xml

                                        dev                                                        true                                                                                /profile/dev.properties                                dev                                                                                test                                                        /profile/test.properties                                test                                                                                pro                                                        /profile/pro.properties                                pro                                                        .......                                  src/main/resources/filter/${env}.properties                                                src/main/resources                                                        template**/**                                                false                    

其中默认激活可以做如下配置

        true

filters:用于定义指定filter属性文件位置,例如filter元素赋值filters/filter1.properties,那么这个文件里面就可以定义name=value对,这个name=value对的值就可以在工程pom中通过${name}引用,默认的filter目录是${basedir}/src/main/filters/
resources描述工程中资源的位置

3、spring-bean.xml

                                                                        classpath:/META-INF/config.properties                                        

4、web.xml

                        contextConfigLocation                            classpath:spring/spring-bean.xml                

5、打包

maven clean install -Pdev

0