omcat部署应用和maven部署应用下利用profile实现测试环境和开发环境切换

转载 http://blog.51cto.com/1385903/2060233

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

梦Scarlett0人评论7009人阅读2018-01-12 14:54:46

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

一、tomcat部署应用

1、数据源配置

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

<span style="color:#333333"><span style="color:black"><code class="language-java">jdbc<span style="color:#999999">.</span>database<span style="color:#9a6e3a">=</span>MYSQL
jdbc<span style="color:#999999">.</span>driver<span style="color:#9a6e3a">=</span>com<span style="color:#999999">.</span>mysql<span style="color:#999999">.</span>jdbc<span style="color:#999999">.</span>Driver
jdbc<span style="color:#999999">.</span>url<span style="color:#9a6e3a">=</span>jdbc<span style="color:#9a6e3a">:</span>mysql<span style="color:#9a6e3a">:</span><span style="color:#9a6e3a">/</span><span style="color:#9a6e3a">/</span>mysql<span style="color:#9a6e3a">:</span><span style="color:#990055">3306</span><span style="color:#9a6e3a">/</span>develop<span style="color:#9a6e3a">?</span>useUnicode<span style="color:#9a6e3a">=</span><span style="color:#990055">true</span><span style="color:#9a6e3a">&</span>characterEncoding<span style="color:#9a6e3a">=</span>utf<span style="color:#9a6e3a">-</span><span style="color:#990055">8</span>
jdbc<span style="color:#999999">.</span>schema<span style="color:#9a6e3a">=</span>develop
jdbc<span style="color:#999999">.</span>username<span style="color:#9a6e3a">=</span>root
jdbc<span style="color:#999999">.</span>password<span style="color:#9a6e3a">=</span><span style="color:#990055">12</span>qw4ds</code></span></span>

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

<span style="color:#333333"><span style="color:black"><code class="language-java">jdbc<span style="color:#999999">.</span>database<span style="color:#9a6e3a">=</span>MYSQL
jdbc<span style="color:#999999">.</span>driver<span style="color:#9a6e3a">=</span>com<span style="color:#999999">.</span>mysql<span style="color:#999999">.</span>jdbc<span style="color:#999999">.</span>Driver
jdbc<span style="color:#999999">.</span>url<span style="color:#9a6e3a">=</span>jdbc<span style="color:#9a6e3a">:</span>mysql<span style="color:#9a6e3a">:</span><span style="color:#9a6e3a">/</span><span style="color:#9a6e3a">/</span>localhost<span style="color:#9a6e3a">:</span><span style="color:#990055">3306</span><span style="color:#9a6e3a">/</span>test<span style="color:#9a6e3a">?</span>useUnicode<span style="color:#9a6e3a">=</span><span style="color:#990055">true</span><span style="color:#9a6e3a">&</span>characterEncoding<span style="color:#9a6e3a">=</span>utf<span style="color:#9a6e3a">-</span><span style="color:#990055">8</span>
jdbc<span style="color:#999999">.</span>schema<span style="color:#9a6e3a">=</span>test
jdbc<span style="color:#999999">.</span>username<span style="color:#9a6e3a">=</span>root
jdbc<span style="color:#999999">.</span>password<span style="color:#9a6e3a">=</span><span style="color:#990055">123456</span></code></span></span>

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

<span style="color:#333333"><span style="color:black"><code class="language-java"><span style="color:#9a6e3a"><</span>beans profile<span style="color:#9a6e3a">=</span><span style="color:#669900">"development"</span><span style="color:#9a6e3a">></span>
    <span style="color:#9a6e3a"><</span>bean id<span style="color:#9a6e3a">=</span><span style="color:#669900">"dataSource"</span> <span style="color:#0077aa">class</span><span style="color:#9a6e3a">=</span><span style="color:#669900">"org.springframework.jdbc.datasource.SimpleDriverDataSource"</span><span style="color:#9a6e3a">></span>
      <span style="color:#9a6e3a"><</span>property name<span style="color:#9a6e3a">=</span><span style="color:#669900">"driverClass"</span> value<span style="color:#9a6e3a">=</span><span style="color:#669900">"${jdbc.driver}"</span> <span style="color:#9a6e3a">/</span><span style="color:#9a6e3a">></span>
      <span style="color:#9a6e3a"><</span>property name<span style="color:#9a6e3a">=</span><span style="color:#669900">"url"</span> value<span style="color:#9a6e3a">=</span><span style="color:#669900">"${jdbc.url}"</span> <span style="color:#9a6e3a">/</span><span style="color:#9a6e3a">></span>
      <span style="color:#9a6e3a"><</span>property name<span style="color:#9a6e3a">=</span><span style="color:#669900">"username"</span> value<span style="color:#9a6e3a">=</span><span style="color:#669900">"${jdbc.username}"</span> <span style="color:#9a6e3a">/</span><span style="color:#9a6e3a">></span>
      <span style="color:#9a6e3a"><</span>property name<span style="color:#9a6e3a">=</span><span style="color:#669900">"password"</span> value<span style="color:#9a6e3a">=</span><span style="color:#669900">"${jdbc.password}"</span> <span style="color:#9a6e3a">/</span><span style="color:#9a6e3a">></span>
    <span style="color:#9a6e3a"><</span><span style="color:#9a6e3a">/</span>bean<span style="color:#9a6e3a">></span>
  <span style="color:#9a6e3a"><</span><span style="color:#9a6e3a">/</span>beans<span style="color:#9a6e3a">></span>

  <span style="color:#9a6e3a"><</span>beans profile<span style="color:#9a6e3a">=</span><span style="color:#669900">"test"</span><span style="color:#9a6e3a">></span>
    <span style="color:#9a6e3a"><</span>bean id<span style="color:#9a6e3a">=</span><span style="color:#669900">"dataSource"</span> <span style="color:#0077aa">class</span><span style="color:#9a6e3a">=</span><span style="color:#669900">"org.springframework.jdbc.datasource.SimpleDriverDataSource"</span><span style="color:#9a6e3a">></span>
      <span style="color:#9a6e3a"><</span>property name<span style="color:#9a6e3a">=</span><span style="color:#669900">"driverClass"</span> value<span style="color:#9a6e3a">=</span><span style="color:#669900">"${jdbc.driver}"</span> <span style="color:#9a6e3a">/</span><span style="color:#9a6e3a">></span>
      <span style="color:#9a6e3a"><</span>property name<span style="color:#9a6e3a">=</span><span style="color:#669900">"url"</span> value<span style="color:#9a6e3a">=</span><span style="color:#669900">"${jdbc.url}"</span> <span style="color:#9a6e3a">/</span><span style="color:#9a6e3a">></span>
      <span style="color:#9a6e3a"><</span>property name<span style="color:#9a6e3a">=</span><span style="color:#669900">"username"</span> value<span style="color:#9a6e3a">=</span><span style="color:#669900">"${jdbc.username}"</span> <span style="color:#9a6e3a">/</span><span style="color:#9a6e3a">></span>
      <span style="color:#9a6e3a"><</span>property name<span style="color:#9a6e3a">=</span><span style="color:#669900">"password"</span> value<span style="color:#9a6e3a">=</span><span style="color:#669900">"${jdbc.password}"</span> <span style="color:#9a6e3a">/</span><span style="color:#9a6e3a">></span>
    <span style="color:#9a6e3a"><</span><span style="color:#9a6e3a">/</span>bean<span style="color:#9a6e3a">></span>
  <span style="color:#9a6e3a"><</span><span style="color:#9a6e3a">/</span>beans<span style="color:#9a6e3a">></span></code></span></span>

2、springmvc.xml   webapp/WEB-INF

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

<span style="color:#333333"><span style="color:black"><code class="language-java"><span style="color:#9a6e3a"><</span>beans profile<span style="color:#9a6e3a">=</span><span style="color:#669900">"development"</span><span style="color:#9a6e3a">></span>
    <span style="color:#9a6e3a"><</span>context<span style="color:#9a6e3a">:</span>property<span style="color:#9a6e3a">-</span>placeholder ignore<span style="color:#9a6e3a">-</span>unresolvable<span style="color:#9a6e3a">=</span><span style="color:#669900">"true"</span> ignore<span style="color:#9a6e3a">-</span>resource<span style="color:#9a6e3a">-</span>not<span style="color:#9a6e3a">-</span>found<span style="color:#9a6e3a">=</span><span style="color:#669900">"true"</span> file<span style="color:#9a6e3a">-</span>encoding<span style="color:#9a6e3a">=</span><span style="color:#669900">"UTF-8"</span>
      location<span style="color:#9a6e3a">=</span><span style="color:#669900">"classpath:dev.properties"</span> <span style="color:#9a6e3a">/</span><span style="color:#9a6e3a">></span>
  <span style="color:#9a6e3a"><</span><span style="color:#9a6e3a">/</span>beans<span style="color:#9a6e3a">></span>

  <span style="color:#9a6e3a"><</span>beans profile<span style="color:#9a6e3a">=</span><span style="color:#669900">"test"</span><span style="color:#9a6e3a">></span>
    <span style="color:#9a6e3a"><</span>context<span style="color:#9a6e3a">:</span>property<span style="color:#9a6e3a">-</span>placeholder ignore<span style="color:#9a6e3a">-</span>unresolvable<span style="color:#9a6e3a">=</span><span style="color:#669900">"true"</span> ignore<span style="color:#9a6e3a">-</span>resource<span style="color:#9a6e3a">-</span>not<span style="color:#9a6e3a">-</span>found<span style="color:#9a6e3a">=</span><span style="color:#669900">"true"</span> file<span style="color:#9a6e3a">-</span>encoding<span style="color:#9a6e3a">=</span><span style="color:#669900">"UTF-8"</span>
      location<span style="color:#9a6e3a">=</span><span style="color:#669900">"test.properties"</span> <span style="color:#9a6e3a">/</span><span style="color:#9a6e3a">></span>
  <span style="color:#9a6e3a"><</span><span style="color:#9a6e3a">/</span>beans<span style="color:#9a6e3a">></span></code></span></span>

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

扫描二维码关注公众号,回复: 5933174 查看本文章

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

<span style="color:#333333"><span style="color:black"><code class="language-java"><span style="color:#9a6e3a"><</span><span style="color:#9a6e3a">!</span><span style="color:#9a6e3a">--</span> 配置spring的默认profile <span style="color:#9a6e3a">--</span><span style="color:#9a6e3a">></span>  
<span style="color:#9a6e3a"><</span>context<span style="color:#9a6e3a">-</span>param<span style="color:#9a6e3a">></span>  
    <span style="color:#9a6e3a"><</span>param<span style="color:#9a6e3a">-</span>name<span style="color:#9a6e3a">></span>spring<span style="color:#999999">.</span>profiles<span style="color:#999999">.</span><span style="color:#0077aa">default</span><span style="color:#9a6e3a"><</span><span style="color:#9a6e3a">/</span>param<span style="color:#9a6e3a">-</span>name<span style="color:#9a6e3a">></span>  
    <span style="color:#9a6e3a"><</span>param<span style="color:#9a6e3a">-</span>value<span style="color:#9a6e3a">></span>development<span style="color:#9a6e3a"><</span><span style="color:#9a6e3a">/</span>param<span style="color:#9a6e3a">-</span>value<span style="color:#9a6e3a">></span>  
<span style="color:#9a6e3a"><</span><span style="color:#9a6e3a">/</span>context<span style="color:#9a6e3a">-</span>param<span style="color:#9a6e3a">></span></code></span></span>

 

4、激活profile

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

image.png

<span style="color:#333333"><span style="color:black"><code class="language-java">JAVA_OPTS<span style="color:#9a6e3a">=</span>"<span style="color:#9a6e3a">-</span>Dspring<span style="color:#999999">.</span>profiles<span style="color:#999999">.</span>active<span style="color:#9a6e3a">=</span>development <span style="color:#9a6e3a">-</span>server <span style="color:#9a6e3a">-</span>XX<span style="color:#9a6e3a">:</span>PermSize<span style="color:#9a6e3a">=</span><span style="color:#990055">256</span>M <span style="color:#9a6e3a">-</span>XX<span style="color:#9a6e3a">:</span>MaxPermSize<span style="color:#9a6e3a">=</span><span style="color:#990055">512</span>M <span style="color:#9a6e3a">-</span>Xms1024M <span style="color:#9a6e3a">-</span>Xmx1024M <span style="color:#9a6e3a">-</span>Xss512k <span style="color:#9a6e3a">-</span>XX<span style="color:#9a6e3a">:</span>LargePageSizeInBytes<span style="color:#9a6e3a">=</span><span style="color:#990055">128</span>m <span style="color:#9a6e3a">-</span>XX<span style="color:#9a6e3a">:</span>MaxTenuringThreshold<span style="color:#9a6e3a">=</span><span style="color:#990055">15</span> <span style="color:#9a6e3a">-</span>XX<span style="color:#9a6e3a">:</span><span style="color:#9a6e3a">+</span>Aggr
essiveOpts <span style="color:#9a6e3a">-</span>XX<span style="color:#9a6e3a">:</span><span style="color:#9a6e3a">+</span>UseBiasedLocking <span style="color:#9a6e3a">-</span>XX<span style="color:#9a6e3a">:</span><span style="color:#9a6e3a">+</span>DisableExplicitGC <span style="color:#9a6e3a">-</span>XX<span style="color:#9a6e3a">:</span><span style="color:#9a6e3a">+</span>UseConcMarkSweepGC <span style="color:#9a6e3a">-</span>XX<span style="color:#9a6e3a">:</span><span style="color:#9a6e3a">+</span>UseParNewGC <span style="color:#9a6e3a">-</span>XX<span style="color:#9a6e3a">:</span><span style="color:#9a6e3a">+</span>CMSParallelRemarkEnabled <span style="color:#9a6e3a">-</span>XX<span style="color:#9a6e3a">:</span><span style="color:#9a6e3a">+</span>UseFastAccessorMethods <span style="color:#9a6e3a">-</span>XX<span style="color:#9a6e3a">:</span><span style="color:#9a6e3a">+</span>UseCMSInitiatingOccupancyOnly <span style="color:#9a6e3a">-</span>
XX<span style="color:#9a6e3a">:</span><span style="color:#9a6e3a">+</span>HeapDumpOnOutOfMemoryError <span style="color:#9a6e3a">-</span>XX<span style="color:#9a6e3a">:</span>HeapDumpPath<span style="color:#9a6e3a">=</span>$CATALINA_BASE<span style="color:#9a6e3a">/</span>heap<span style="color:#999999">.</span>dump<span style="color:#999999">.</span>bin <span style="color:#9a6e3a">-</span>Djava<span style="color:#999999">.</span>awt<span style="color:#999999">.</span>headless<span style="color:#9a6e3a">=</span><span style="color:#990055">true</span>"</code></span></span>

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

二、maven部署应用

1、配置文件

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

<span style="color:#333333"><span style="color:black"><code class="language-xml">master.jdbc.driverClass = com.mysql.jdbc.Driver
master.jdbc.url = jdbc:mysql://mysql-dev:3306/dev
master.jdbc.user = root
master.jdbc.password = Aa12345678</code></span></span>

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

<span style="color:#333333"><span style="color:black"><code class="language-xml">master.jdbc.driverClass = com.mysql.jdbc.Driver
master.jdbc.url = jdbc:mysql://mysql-test:3306/test
master.jdbc.user = root
master.jdbc.password = root</code></span></span>

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

<span style="color:#333333"><span style="color:black"><code class="language-java">master<span style="color:#999999">.</span>jdbc<span style="color:#999999">.</span>driverClass <span style="color:#9a6e3a">=</span> $<span style="color:#999999">{</span>master<span style="color:#999999">.</span>jdbc<span style="color:#999999">.</span>driverClass<span style="color:#999999">}</span>
master<span style="color:#999999">.</span>jdbc<span style="color:#999999">.</span>url <span style="color:#9a6e3a">=</span> $<span style="color:#999999">{</span>master<span style="color:#999999">.</span>jdbc<span style="color:#999999">.</span>url<span style="color:#999999">}</span>
master<span style="color:#999999">.</span>jdbc<span style="color:#999999">.</span>user <span style="color:#9a6e3a">=</span> $<span style="color:#999999">{</span>master<span style="color:#999999">.</span>jdbc<span style="color:#999999">.</span>user<span style="color:#999999">}</span>
master<span style="color:#999999">.</span>jdbc<span style="color:#999999">.</span>password <span style="color:#9a6e3a">=</span> $<span style="color:#999999">{</span>master<span style="color:#999999">.</span>jdbc<span style="color:#999999">.</span>password<span style="color:#999999">}</span></code></span></span>

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

<span style="color:#333333"><span style="color:black"><code class="language-xml"><span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>bean</span> <span style="color:#669900">id</span><span style="color:#0077aa"><span style="color:#999999">=</span><span style="color:#999999">"</span>dataSourceMaster<span style="color:#999999">"</span></span> <span style="color:#669900">class</span><span style="color:#0077aa"><span style="color:#999999">=</span><span style="color:#999999">"</span>com.alibaba.druid.pool.DruidDataSource<span style="color:#999999">"</span></span>
          <span style="color:#669900">init-method</span><span style="color:#0077aa"><span style="color:#999999">=</span><span style="color:#999999">"</span>init<span style="color:#999999">"</span></span> <span style="color:#669900">destroy-method</span><span style="color:#0077aa"><span style="color:#999999">=</span><span style="color:#999999">"</span>close<span style="color:#999999">"</span></span><span style="color:#999999">></span></span>
        <span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>property</span> <span style="color:#669900">name</span><span style="color:#0077aa"><span style="color:#999999">=</span><span style="color:#999999">"</span>driverClassName<span style="color:#999999">"</span></span> <span style="color:#669900">value</span><span style="color:#0077aa"><span style="color:#999999">=</span><span style="color:#999999">"</span>${master.jdbc.driverClass}<span style="color:#999999">"</span></span><span style="color:#999999">/></span></span>
        <span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>property</span> <span style="color:#669900">name</span><span style="color:#0077aa"><span style="color:#999999">=</span><span style="color:#999999">"</span>url<span style="color:#999999">"</span></span> <span style="color:#669900">value</span><span style="color:#0077aa"><span style="color:#999999">=</span><span style="color:#999999">"</span>${master.jdbc.url}<span style="color:#999999">"</span></span><span style="color:#999999">/></span></span>
        <span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>property</span> <span style="color:#669900">name</span><span style="color:#0077aa"><span style="color:#999999">=</span><span style="color:#999999">"</span>username<span style="color:#999999">"</span></span> <span style="color:#669900">value</span><span style="color:#0077aa"><span style="color:#999999">=</span><span style="color:#999999">"</span>${master.jdbc.user}<span style="color:#999999">"</span></span><span style="color:#999999">/></span></span>
        <span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>property</span> <span style="color:#669900">name</span><span style="color:#0077aa"><span style="color:#999999">=</span><span style="color:#999999">"</span>password<span style="color:#999999">"</span></span> <span style="color:#669900">value</span><span style="color:#0077aa"><span style="color:#999999">=</span><span style="color:#999999">"</span>${master.jdbc.password}<span style="color:#999999">"</span></span><span style="color:#999999">/></span></span>
        <span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>property</span> <span style="color:#669900">name</span><span style="color:#0077aa"><span style="color:#999999">=</span><span style="color:#999999">"</span>filters<span style="color:#999999">"</span></span> <span style="color:#669900">value</span><span style="color:#0077aa"><span style="color:#999999">=</span><span style="color:#999999">"</span>stat<span style="color:#999999">"</span></span><span style="color:#999999">/></span></span>
        <span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>property</span> <span style="color:#669900">name</span><span style="color:#0077aa"><span style="color:#999999">=</span><span style="color:#999999">"</span>maxActive<span style="color:#999999">"</span></span> <span style="color:#669900">value</span><span style="color:#0077aa"><span style="color:#999999">=</span><span style="color:#999999">"</span>50<span style="color:#999999">"</span></span><span style="color:#999999">/></span></span>
        <span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>property</span> <span style="color:#669900">name</span><span style="color:#0077aa"><span style="color:#999999">=</span><span style="color:#999999">"</span>initialSize<span style="color:#999999">"</span></span> <span style="color:#669900">value</span><span style="color:#0077aa"><span style="color:#999999">=</span><span style="color:#999999">"</span>0<span style="color:#999999">"</span></span><span style="color:#999999">/></span></span>
        <span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>property</span> <span style="color:#669900">name</span><span style="color:#0077aa"><span style="color:#999999">=</span><span style="color:#999999">"</span>maxWait<span style="color:#999999">"</span></span> <span style="color:#669900">value</span><span style="color:#0077aa"><span style="color:#999999">=</span><span style="color:#999999">"</span>60000<span style="color:#999999">"</span></span><span style="color:#999999">/></span></span>
        <span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>property</span> <span style="color:#669900">name</span><span style="color:#0077aa"><span style="color:#999999">=</span><span style="color:#999999">"</span>minIdle<span style="color:#999999">"</span></span> <span style="color:#669900">value</span><span style="color:#0077aa"><span style="color:#999999">=</span><span style="color:#999999">"</span>0<span style="color:#999999">"</span></span><span style="color:#999999">/></span></span>
        <span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>property</span> <span style="color:#669900">name</span><span style="color:#0077aa"><span style="color:#999999">=</span><span style="color:#999999">"</span>timeBetweenEvictionRunsMillis<span style="color:#999999">"</span></span> <span style="color:#669900">value</span><span style="color:#0077aa"><span style="color:#999999">=</span><span style="color:#999999">"</span>60000<span style="color:#999999">"</span></span><span style="color:#999999">/></span></span>
        <span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>property</span> <span style="color:#669900">name</span><span style="color:#0077aa"><span style="color:#999999">=</span><span style="color:#999999">"</span>minEvictableIdleTimeMillis<span style="color:#999999">"</span></span> <span style="color:#669900">value</span><span style="color:#0077aa"><span style="color:#999999">=</span><span style="color:#999999">"</span>300000<span style="color:#999999">"</span></span><span style="color:#999999">/></span></span>
        <span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>property</span> <span style="color:#669900">name</span><span style="color:#0077aa"><span style="color:#999999">=</span><span style="color:#999999">"</span>validationQuery<span style="color:#999999">"</span></span> <span style="color:#669900">value</span><span style="color:#0077aa"><span style="color:#999999">=</span><span style="color:#999999">"</span>SELECT <span style="color:#999999">'</span>x<span style="color:#999999">'</span><span style="color:#999999">"</span></span><span style="color:#999999">/></span></span>
        <span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>property</span> <span style="color:#669900">name</span><span style="color:#0077aa"><span style="color:#999999">=</span><span style="color:#999999">"</span>testWhileIdle<span style="color:#999999">"</span></span> <span style="color:#669900">value</span><span style="color:#0077aa"><span style="color:#999999">=</span><span style="color:#999999">"</span>true<span style="color:#999999">"</span></span><span style="color:#999999">/></span></span>
        <span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>property</span> <span style="color:#669900">name</span><span style="color:#0077aa"><span style="color:#999999">=</span><span style="color:#999999">"</span>testOnBorrow<span style="color:#999999">"</span></span> <span style="color:#669900">value</span><span style="color:#0077aa"><span style="color:#999999">=</span><span style="color:#999999">"</span>false<span style="color:#999999">"</span></span><span style="color:#999999">/></span></span>
        <span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>property</span> <span style="color:#669900">name</span><span style="color:#0077aa"><span style="color:#999999">=</span><span style="color:#999999">"</span>testOnReturn<span style="color:#999999">"</span></span> <span style="color:#669900">value</span><span style="color:#0077aa"><span style="color:#999999">=</span><span style="color:#999999">"</span>false<span style="color:#999999">"</span></span><span style="color:#999999">/></span></span>
    <span style="color:#990055"><span style="color:#990055"><span style="color:#999999"></</span>bean</span><span style="color:#999999">></span></span></code></span></span>

2、pom.xml

<span style="color:#333333"><span style="color:black"><code class="language-xml"><span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>profiles</span><span style="color:#999999">></span></span>
		<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>profile</span><span style="color:#999999">></span></span>
			<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>id</span><span style="color:#999999">></span></span>dev<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"></</span>id</span><span style="color:#999999">></span></span>
			<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>activation</span><span style="color:#999999">></span></span>
				<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>activeByDefault</span><span style="color:#999999">></span></span>true<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"></</span>activeByDefault</span><span style="color:#999999">></span></span>
			<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"></</span>activation</span><span style="color:#999999">></span></span>
			<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>properties</span><span style="color:#999999">></span></span>
				<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>profile.file.name</span><span style="color:#999999">></span></span>/profile/dev.properties<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"></</span>profile.file.name</span><span style="color:#999999">></span></span>
				<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>package.target</span><span style="color:#999999">></span></span>dev<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"></</span>package.target</span><span style="color:#999999">></span></span>
			<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"></</span>properties</span><span style="color:#999999">></span></span>
		<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"></</span>profile</span><span style="color:#999999">></span></span>
		<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>profile</span><span style="color:#999999">></span></span>
			<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>id</span><span style="color:#999999">></span></span>test<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"></</span>id</span><span style="color:#999999">></span></span>
			<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>properties</span><span style="color:#999999">></span></span>
				<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>profile.file.name</span><span style="color:#999999">></span></span>/profile/test.properties<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"></</span>profile.file.name</span><span style="color:#999999">></span></span>
				<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>package.target</span><span style="color:#999999">></span></span>test<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"></</span>package.target</span><span style="color:#999999">></span></span>
			<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"></</span>properties</span><span style="color:#999999">></span></span>
		<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"></</span>profile</span><span style="color:#999999">></span></span>
		<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>profile</span><span style="color:#999999">></span></span>
			<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>id</span><span style="color:#999999">></span></span>pro<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"></</span>id</span><span style="color:#999999">></span></span>
			<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>properties</span><span style="color:#999999">></span></span>
				<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>profile.file.name</span><span style="color:#999999">></span></span>/profile/pro.properties<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"></</span>profile.file.name</span><span style="color:#999999">></span></span>
				<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>package.target</span><span style="color:#999999">></span></span>pro<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"></</span>package.target</span><span style="color:#999999">></span></span>
			<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"></</span>properties</span><span style="color:#999999">></span></span>
		<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"></</span>profile</span><span style="color:#999999">></span></span>
	<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"></</span>profiles</span><span style="color:#999999">></span></span>

	.......

	<span style="color:slategray"><!-- 定义配置文件路径 --></span>
<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>build</span><span style="color:#999999">></span></span>
        <span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>filters</span><span style="color:#999999">></span></span> 
                 <span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>filter</span><span style="color:#999999">></span></span>src/main/resources/filter/${env}.properties<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"></</span>filter</span><span style="color:#999999">></span></span>
    <span style="color:#990055"><span style="color:#990055"><span style="color:#999999"></</span>filters</span><span style="color:#999999">></span></span>
    <span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>resources</span><span style="color:#999999">></span></span>
        	<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>resource</span><span style="color:#999999">></span></span>
        		<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>directory</span><span style="color:#999999">></span></span>src/main/resources<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"></</span>directory</span><span style="color:#999999">></span></span>
        		<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>excludes</span><span style="color:#999999">></span></span>
        			<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>exclude</span><span style="color:#999999">></span></span>template**/**<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"></</span>exclude</span><span style="color:#999999">></span></span>
        		<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"></</span>excludes</span><span style="color:#999999">></span></span>
        		<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>filtering</span><span style="color:#999999">></span></span>false<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"></</span>filtering</span><span style="color:#999999">></span></span>
        	<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"></</span>resource</span><span style="color:#999999">></span></span>
    <span style="color:#990055"><span style="color:#990055"><span style="color:#999999"></</span>resources</span><span style="color:#999999">></span></span>
<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"></</span>build</span><span style="color:#999999">></span></span></code></span></span>

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

<span style="color:#333333"><span style="color:black"><code class="language-xml"><span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>activation</span><span style="color:#999999">></span></span>
	<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>activeByDefault</span><span style="color:#999999">></span></span>true<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"></</span>activeByDefault</span><span style="color:#999999">></span></span>
<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"></</span>activation</span><span style="color:#999999">></span></span></code></span></span>

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

3、spring-bean.xml

<span style="color:#333333"><span style="color:black"><code class="language-java"><span style="color:#9a6e3a"><</span>bean id<span style="color:#9a6e3a">=</span><span style="color:#669900">"propertyConfigurer"</span>
		<span style="color:#0077aa">class</span><span style="color:#9a6e3a">=</span><span style="color:#669900">"org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"</span><span style="color:#9a6e3a">></span>
		<span style="color:#9a6e3a"><</span>property name<span style="color:#9a6e3a">=</span><span style="color:#669900">"locations"</span><span style="color:#9a6e3a">></span>
			<span style="color:#dd4a68"><span style="color:#999999"><</span>list<span style="color:#999999">></span></span>
				<span style="color:#dd4a68"><span style="color:#999999"><</span>value<span style="color:#999999">></span></span>classpath<span style="color:#9a6e3a">:</span><span style="color:#9a6e3a">/</span>META<span style="color:#9a6e3a">-</span>INF<span style="color:#9a6e3a">/</span>config<span style="color:#999999">.</span>properties<span style="color:#9a6e3a"><</span><span style="color:#9a6e3a">/</span>value<span style="color:#9a6e3a">></span>
			<span style="color:#9a6e3a"><</span><span style="color:#9a6e3a">/</span>list<span style="color:#9a6e3a">></span>
		<span style="color:#9a6e3a"><</span><span style="color:#9a6e3a">/</span>property<span style="color:#9a6e3a">></span>
<span style="color:#9a6e3a"><</span><span style="color:#9a6e3a">/</span>bean<span style="color:#9a6e3a">></span>
<span style="color:#9a6e3a"><</span><span style="color:#0077aa">import</span> resource<span style="color:#9a6e3a">=</span><span style="color:#669900">"spring-datasource.xml"</span><span style="color:#9a6e3a">/</span><span style="color:#9a6e3a">></span></code></span></span>

4、web.xml

<span style="color:#333333"><span style="color:black"><code class="language-java"><span style="color:#9a6e3a"><</span><span style="color:#9a6e3a">!</span><span style="color:#9a6e3a">--</span> 配置Spring初始文件 <span style="color:#9a6e3a">--</span><span style="color:#9a6e3a">></span>
	<span style="color:#9a6e3a"><</span>context<span style="color:#9a6e3a">-</span>param<span style="color:#9a6e3a">></span>
		<span style="color:#9a6e3a"><</span>param<span style="color:#9a6e3a">-</span>name<span style="color:#9a6e3a">></span>contextConfigLocation<span style="color:#9a6e3a"><</span><span style="color:#9a6e3a">/</span>param<span style="color:#9a6e3a">-</span>name<span style="color:#9a6e3a">></span>
		<span style="color:#9a6e3a"><</span>param<span style="color:#9a6e3a">-</span>value<span style="color:#9a6e3a">></span>
            classpath<span style="color:#9a6e3a">:</span>spring<span style="color:#9a6e3a">/</span>spring<span style="color:#9a6e3a">-</span>bean<span style="color:#999999">.</span>xml
        <span style="color:#9a6e3a"><</span><span style="color:#9a6e3a">/</span>param<span style="color:#9a6e3a">-</span>value<span style="color:#9a6e3a">></span>
	<span style="color:#9a6e3a"><</span><span style="color:#9a6e3a">/</span>context<span style="color:#9a6e3a">-</span>param<span style="color:#9a6e3a">></span></code></span></span>

5、打包

maven clean install -Pdev

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

梦Scarlett0人评论7009人阅读2018-01-12 14:54:46

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

一、tomcat部署应用

1、数据源配置

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

<span style="color:#333333"><span style="color:black"><code class="language-java">jdbc<span style="color:#999999">.</span>database<span style="color:#9a6e3a">=</span>MYSQL
jdbc<span style="color:#999999">.</span>driver<span style="color:#9a6e3a">=</span>com<span style="color:#999999">.</span>mysql<span style="color:#999999">.</span>jdbc<span style="color:#999999">.</span>Driver
jdbc<span style="color:#999999">.</span>url<span style="color:#9a6e3a">=</span>jdbc<span style="color:#9a6e3a">:</span>mysql<span style="color:#9a6e3a">:</span><span style="color:#9a6e3a">/</span><span style="color:#9a6e3a">/</span>mysql<span style="color:#9a6e3a">:</span><span style="color:#990055">3306</span><span style="color:#9a6e3a">/</span>develop<span style="color:#9a6e3a">?</span>useUnicode<span style="color:#9a6e3a">=</span><span style="color:#990055">true</span><span style="color:#9a6e3a">&</span>characterEncoding<span style="color:#9a6e3a">=</span>utf<span style="color:#9a6e3a">-</span><span style="color:#990055">8</span>
jdbc<span style="color:#999999">.</span>schema<span style="color:#9a6e3a">=</span>develop
jdbc<span style="color:#999999">.</span>username<span style="color:#9a6e3a">=</span>root
jdbc<span style="color:#999999">.</span>password<span style="color:#9a6e3a">=</span><span style="color:#990055">12</span>qw4ds</code></span></span>

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

<span style="color:#333333"><span style="color:black"><code class="language-java">jdbc<span style="color:#999999">.</span>database<span style="color:#9a6e3a">=</span>MYSQL
jdbc<span style="color:#999999">.</span>driver<span style="color:#9a6e3a">=</span>com<span style="color:#999999">.</span>mysql<span style="color:#999999">.</span>jdbc<span style="color:#999999">.</span>Driver
jdbc<span style="color:#999999">.</span>url<span style="color:#9a6e3a">=</span>jdbc<span style="color:#9a6e3a">:</span>mysql<span style="color:#9a6e3a">:</span><span style="color:#9a6e3a">/</span><span style="color:#9a6e3a">/</span>localhost<span style="color:#9a6e3a">:</span><span style="color:#990055">3306</span><span style="color:#9a6e3a">/</span>test<span style="color:#9a6e3a">?</span>useUnicode<span style="color:#9a6e3a">=</span><span style="color:#990055">true</span><span style="color:#9a6e3a">&</span>characterEncoding<span style="color:#9a6e3a">=</span>utf<span style="color:#9a6e3a">-</span><span style="color:#990055">8</span>
jdbc<span style="color:#999999">.</span>schema<span style="color:#9a6e3a">=</span>test
jdbc<span style="color:#999999">.</span>username<span style="color:#9a6e3a">=</span>root
jdbc<span style="color:#999999">.</span>password<span style="color:#9a6e3a">=</span><span style="color:#990055">123456</span></code></span></span>

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

<span style="color:#333333"><span style="color:black"><code class="language-java"><span style="color:#9a6e3a"><</span>beans profile<span style="color:#9a6e3a">=</span><span style="color:#669900">"development"</span><span style="color:#9a6e3a">></span>
    <span style="color:#9a6e3a"><</span>bean id<span style="color:#9a6e3a">=</span><span style="color:#669900">"dataSource"</span> <span style="color:#0077aa">class</span><span style="color:#9a6e3a">=</span><span style="color:#669900">"org.springframework.jdbc.datasource.SimpleDriverDataSource"</span><span style="color:#9a6e3a">></span>
      <span style="color:#9a6e3a"><</span>property name<span style="color:#9a6e3a">=</span><span style="color:#669900">"driverClass"</span> value<span style="color:#9a6e3a">=</span><span style="color:#669900">"${jdbc.driver}"</span> <span style="color:#9a6e3a">/</span><span style="color:#9a6e3a">></span>
      <span style="color:#9a6e3a"><</span>property name<span style="color:#9a6e3a">=</span><span style="color:#669900">"url"</span> value<span style="color:#9a6e3a">=</span><span style="color:#669900">"${jdbc.url}"</span> <span style="color:#9a6e3a">/</span><span style="color:#9a6e3a">></span>
      <span style="color:#9a6e3a"><</span>property name<span style="color:#9a6e3a">=</span><span style="color:#669900">"username"</span> value<span style="color:#9a6e3a">=</span><span style="color:#669900">"${jdbc.username}"</span> <span style="color:#9a6e3a">/</span><span style="color:#9a6e3a">></span>
      <span style="color:#9a6e3a"><</span>property name<span style="color:#9a6e3a">=</span><span style="color:#669900">"password"</span> value<span style="color:#9a6e3a">=</span><span style="color:#669900">"${jdbc.password}"</span> <span style="color:#9a6e3a">/</span><span style="color:#9a6e3a">></span>
    <span style="color:#9a6e3a"><</span><span style="color:#9a6e3a">/</span>bean<span style="color:#9a6e3a">></span>
  <span style="color:#9a6e3a"><</span><span style="color:#9a6e3a">/</span>beans<span style="color:#9a6e3a">></span>

  <span style="color:#9a6e3a"><</span>beans profile<span style="color:#9a6e3a">=</span><span style="color:#669900">"test"</span><span style="color:#9a6e3a">></span>
    <span style="color:#9a6e3a"><</span>bean id<span style="color:#9a6e3a">=</span><span style="color:#669900">"dataSource"</span> <span style="color:#0077aa">class</span><span style="color:#9a6e3a">=</span><span style="color:#669900">"org.springframework.jdbc.datasource.SimpleDriverDataSource"</span><span style="color:#9a6e3a">></span>
      <span style="color:#9a6e3a"><</span>property name<span style="color:#9a6e3a">=</span><span style="color:#669900">"driverClass"</span> value<span style="color:#9a6e3a">=</span><span style="color:#669900">"${jdbc.driver}"</span> <span style="color:#9a6e3a">/</span><span style="color:#9a6e3a">></span>
      <span style="color:#9a6e3a"><</span>property name<span style="color:#9a6e3a">=</span><span style="color:#669900">"url"</span> value<span style="color:#9a6e3a">=</span><span style="color:#669900">"${jdbc.url}"</span> <span style="color:#9a6e3a">/</span><span style="color:#9a6e3a">></span>
      <span style="color:#9a6e3a"><</span>property name<span style="color:#9a6e3a">=</span><span style="color:#669900">"username"</span> value<span style="color:#9a6e3a">=</span><span style="color:#669900">"${jdbc.username}"</span> <span style="color:#9a6e3a">/</span><span style="color:#9a6e3a">></span>
      <span style="color:#9a6e3a"><</span>property name<span style="color:#9a6e3a">=</span><span style="color:#669900">"password"</span> value<span style="color:#9a6e3a">=</span><span style="color:#669900">"${jdbc.password}"</span> <span style="color:#9a6e3a">/</span><span style="color:#9a6e3a">></span>
    <span style="color:#9a6e3a"><</span><span style="color:#9a6e3a">/</span>bean<span style="color:#9a6e3a">></span>
  <span style="color:#9a6e3a"><</span><span style="color:#9a6e3a">/</span>beans<span style="color:#9a6e3a">></span></code></span></span>

2、springmvc.xml   webapp/WEB-INF

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

<span style="color:#333333"><span style="color:black"><code class="language-java"><span style="color:#9a6e3a"><</span>beans profile<span style="color:#9a6e3a">=</span><span style="color:#669900">"development"</span><span style="color:#9a6e3a">></span>
    <span style="color:#9a6e3a"><</span>context<span style="color:#9a6e3a">:</span>property<span style="color:#9a6e3a">-</span>placeholder ignore<span style="color:#9a6e3a">-</span>unresolvable<span style="color:#9a6e3a">=</span><span style="color:#669900">"true"</span> ignore<span style="color:#9a6e3a">-</span>resource<span style="color:#9a6e3a">-</span>not<span style="color:#9a6e3a">-</span>found<span style="color:#9a6e3a">=</span><span style="color:#669900">"true"</span> file<span style="color:#9a6e3a">-</span>encoding<span style="color:#9a6e3a">=</span><span style="color:#669900">"UTF-8"</span>
      location<span style="color:#9a6e3a">=</span><span style="color:#669900">"classpath:dev.properties"</span> <span style="color:#9a6e3a">/</span><span style="color:#9a6e3a">></span>
  <span style="color:#9a6e3a"><</span><span style="color:#9a6e3a">/</span>beans<span style="color:#9a6e3a">></span>

  <span style="color:#9a6e3a"><</span>beans profile<span style="color:#9a6e3a">=</span><span style="color:#669900">"test"</span><span style="color:#9a6e3a">></span>
    <span style="color:#9a6e3a"><</span>context<span style="color:#9a6e3a">:</span>property<span style="color:#9a6e3a">-</span>placeholder ignore<span style="color:#9a6e3a">-</span>unresolvable<span style="color:#9a6e3a">=</span><span style="color:#669900">"true"</span> ignore<span style="color:#9a6e3a">-</span>resource<span style="color:#9a6e3a">-</span>not<span style="color:#9a6e3a">-</span>found<span style="color:#9a6e3a">=</span><span style="color:#669900">"true"</span> file<span style="color:#9a6e3a">-</span>encoding<span style="color:#9a6e3a">=</span><span style="color:#669900">"UTF-8"</span>
      location<span style="color:#9a6e3a">=</span><span style="color:#669900">"test.properties"</span> <span style="color:#9a6e3a">/</span><span style="color:#9a6e3a">></span>
  <span style="color:#9a6e3a"><</span><span style="color:#9a6e3a">/</span>beans<span style="color:#9a6e3a">></span></code></span></span>

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

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

<span style="color:#333333"><span style="color:black"><code class="language-java"><span style="color:#9a6e3a"><</span><span style="color:#9a6e3a">!</span><span style="color:#9a6e3a">--</span> 配置spring的默认profile <span style="color:#9a6e3a">--</span><span style="color:#9a6e3a">></span>  
<span style="color:#9a6e3a"><</span>context<span style="color:#9a6e3a">-</span>param<span style="color:#9a6e3a">></span>  
    <span style="color:#9a6e3a"><</span>param<span style="color:#9a6e3a">-</span>name<span style="color:#9a6e3a">></span>spring<span style="color:#999999">.</span>profiles<span style="color:#999999">.</span><span style="color:#0077aa">default</span><span style="color:#9a6e3a"><</span><span style="color:#9a6e3a">/</span>param<span style="color:#9a6e3a">-</span>name<span style="color:#9a6e3a">></span>  
    <span style="color:#9a6e3a"><</span>param<span style="color:#9a6e3a">-</span>value<span style="color:#9a6e3a">></span>development<span style="color:#9a6e3a"><</span><span style="color:#9a6e3a">/</span>param<span style="color:#9a6e3a">-</span>value<span style="color:#9a6e3a">></span>  
<span style="color:#9a6e3a"><</span><span style="color:#9a6e3a">/</span>context<span style="color:#9a6e3a">-</span>param<span style="color:#9a6e3a">></span></code></span></span>

 

4、激活profile

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

image.png

<span style="color:#333333"><span style="color:black"><code class="language-java">JAVA_OPTS<span style="color:#9a6e3a">=</span>"<span style="color:#9a6e3a">-</span>Dspring<span style="color:#999999">.</span>profiles<span style="color:#999999">.</span>active<span style="color:#9a6e3a">=</span>development <span style="color:#9a6e3a">-</span>server <span style="color:#9a6e3a">-</span>XX<span style="color:#9a6e3a">:</span>PermSize<span style="color:#9a6e3a">=</span><span style="color:#990055">256</span>M <span style="color:#9a6e3a">-</span>XX<span style="color:#9a6e3a">:</span>MaxPermSize<span style="color:#9a6e3a">=</span><span style="color:#990055">512</span>M <span style="color:#9a6e3a">-</span>Xms1024M <span style="color:#9a6e3a">-</span>Xmx1024M <span style="color:#9a6e3a">-</span>Xss512k <span style="color:#9a6e3a">-</span>XX<span style="color:#9a6e3a">:</span>LargePageSizeInBytes<span style="color:#9a6e3a">=</span><span style="color:#990055">128</span>m <span style="color:#9a6e3a">-</span>XX<span style="color:#9a6e3a">:</span>MaxTenuringThreshold<span style="color:#9a6e3a">=</span><span style="color:#990055">15</span> <span style="color:#9a6e3a">-</span>XX<span style="color:#9a6e3a">:</span><span style="color:#9a6e3a">+</span>Aggr
essiveOpts <span style="color:#9a6e3a">-</span>XX<span style="color:#9a6e3a">:</span><span style="color:#9a6e3a">+</span>UseBiasedLocking <span style="color:#9a6e3a">-</span>XX<span style="color:#9a6e3a">:</span><span style="color:#9a6e3a">+</span>DisableExplicitGC <span style="color:#9a6e3a">-</span>XX<span style="color:#9a6e3a">:</span><span style="color:#9a6e3a">+</span>UseConcMarkSweepGC <span style="color:#9a6e3a">-</span>XX<span style="color:#9a6e3a">:</span><span style="color:#9a6e3a">+</span>UseParNewGC <span style="color:#9a6e3a">-</span>XX<span style="color:#9a6e3a">:</span><span style="color:#9a6e3a">+</span>CMSParallelRemarkEnabled <span style="color:#9a6e3a">-</span>XX<span style="color:#9a6e3a">:</span><span style="color:#9a6e3a">+</span>UseFastAccessorMethods <span style="color:#9a6e3a">-</span>XX<span style="color:#9a6e3a">:</span><span style="color:#9a6e3a">+</span>UseCMSInitiatingOccupancyOnly <span style="color:#9a6e3a">-</span>
XX<span style="color:#9a6e3a">:</span><span style="color:#9a6e3a">+</span>HeapDumpOnOutOfMemoryError <span style="color:#9a6e3a">-</span>XX<span style="color:#9a6e3a">:</span>HeapDumpPath<span style="color:#9a6e3a">=</span>$CATALINA_BASE<span style="color:#9a6e3a">/</span>heap<span style="color:#999999">.</span>dump<span style="color:#999999">.</span>bin <span style="color:#9a6e3a">-</span>Djava<span style="color:#999999">.</span>awt<span style="color:#999999">.</span>headless<span style="color:#9a6e3a">=</span><span style="color:#990055">true</span>"</code></span></span>

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

二、maven部署应用

1、配置文件

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

<span style="color:#333333"><span style="color:black"><code class="language-xml">master.jdbc.driverClass = com.mysql.jdbc.Driver
master.jdbc.url = jdbc:mysql://mysql-dev:3306/dev
master.jdbc.user = root
master.jdbc.password = Aa12345678</code></span></span>

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

<span style="color:#333333"><span style="color:black"><code class="language-xml">master.jdbc.driverClass = com.mysql.jdbc.Driver
master.jdbc.url = jdbc:mysql://mysql-test:3306/test
master.jdbc.user = root
master.jdbc.password = root</code></span></span>

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

<span style="color:#333333"><span style="color:black"><code class="language-java">master<span style="color:#999999">.</span>jdbc<span style="color:#999999">.</span>driverClass <span style="color:#9a6e3a">=</span> $<span style="color:#999999">{</span>master<span style="color:#999999">.</span>jdbc<span style="color:#999999">.</span>driverClass<span style="color:#999999">}</span>
master<span style="color:#999999">.</span>jdbc<span style="color:#999999">.</span>url <span style="color:#9a6e3a">=</span> $<span style="color:#999999">{</span>master<span style="color:#999999">.</span>jdbc<span style="color:#999999">.</span>url<span style="color:#999999">}</span>
master<span style="color:#999999">.</span>jdbc<span style="color:#999999">.</span>user <span style="color:#9a6e3a">=</span> $<span style="color:#999999">{</span>master<span style="color:#999999">.</span>jdbc<span style="color:#999999">.</span>user<span style="color:#999999">}</span>
master<span style="color:#999999">.</span>jdbc<span style="color:#999999">.</span>password <span style="color:#9a6e3a">=</span> $<span style="color:#999999">{</span>master<span style="color:#999999">.</span>jdbc<span style="color:#999999">.</span>password<span style="color:#999999">}</span></code></span></span>

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

<span style="color:#333333"><span style="color:black"><code class="language-xml"><span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>bean</span> <span style="color:#669900">id</span><span style="color:#0077aa"><span style="color:#999999">=</span><span style="color:#999999">"</span>dataSourceMaster<span style="color:#999999">"</span></span> <span style="color:#669900">class</span><span style="color:#0077aa"><span style="color:#999999">=</span><span style="color:#999999">"</span>com.alibaba.druid.pool.DruidDataSource<span style="color:#999999">"</span></span>
          <span style="color:#669900">init-method</span><span style="color:#0077aa"><span style="color:#999999">=</span><span style="color:#999999">"</span>init<span style="color:#999999">"</span></span> <span style="color:#669900">destroy-method</span><span style="color:#0077aa"><span style="color:#999999">=</span><span style="color:#999999">"</span>close<span style="color:#999999">"</span></span><span style="color:#999999">></span></span>
        <span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>property</span> <span style="color:#669900">name</span><span style="color:#0077aa"><span style="color:#999999">=</span><span style="color:#999999">"</span>driverClassName<span style="color:#999999">"</span></span> <span style="color:#669900">value</span><span style="color:#0077aa"><span style="color:#999999">=</span><span style="color:#999999">"</span>${master.jdbc.driverClass}<span style="color:#999999">"</span></span><span style="color:#999999">/></span></span>
        <span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>property</span> <span style="color:#669900">name</span><span style="color:#0077aa"><span style="color:#999999">=</span><span style="color:#999999">"</span>url<span style="color:#999999">"</span></span> <span style="color:#669900">value</span><span style="color:#0077aa"><span style="color:#999999">=</span><span style="color:#999999">"</span>${master.jdbc.url}<span style="color:#999999">"</span></span><span style="color:#999999">/></span></span>
        <span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>property</span> <span style="color:#669900">name</span><span style="color:#0077aa"><span style="color:#999999">=</span><span style="color:#999999">"</span>username<span style="color:#999999">"</span></span> <span style="color:#669900">value</span><span style="color:#0077aa"><span style="color:#999999">=</span><span style="color:#999999">"</span>${master.jdbc.user}<span style="color:#999999">"</span></span><span style="color:#999999">/></span></span>
        <span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>property</span> <span style="color:#669900">name</span><span style="color:#0077aa"><span style="color:#999999">=</span><span style="color:#999999">"</span>password<span style="color:#999999">"</span></span> <span style="color:#669900">value</span><span style="color:#0077aa"><span style="color:#999999">=</span><span style="color:#999999">"</span>${master.jdbc.password}<span style="color:#999999">"</span></span><span style="color:#999999">/></span></span>
        <span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>property</span> <span style="color:#669900">name</span><span style="color:#0077aa"><span style="color:#999999">=</span><span style="color:#999999">"</span>filters<span style="color:#999999">"</span></span> <span style="color:#669900">value</span><span style="color:#0077aa"><span style="color:#999999">=</span><span style="color:#999999">"</span>stat<span style="color:#999999">"</span></span><span style="color:#999999">/></span></span>
        <span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>property</span> <span style="color:#669900">name</span><span style="color:#0077aa"><span style="color:#999999">=</span><span style="color:#999999">"</span>maxActive<span style="color:#999999">"</span></span> <span style="color:#669900">value</span><span style="color:#0077aa"><span style="color:#999999">=</span><span style="color:#999999">"</span>50<span style="color:#999999">"</span></span><span style="color:#999999">/></span></span>
        <span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>property</span> <span style="color:#669900">name</span><span style="color:#0077aa"><span style="color:#999999">=</span><span style="color:#999999">"</span>initialSize<span style="color:#999999">"</span></span> <span style="color:#669900">value</span><span style="color:#0077aa"><span style="color:#999999">=</span><span style="color:#999999">"</span>0<span style="color:#999999">"</span></span><span style="color:#999999">/></span></span>
        <span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>property</span> <span style="color:#669900">name</span><span style="color:#0077aa"><span style="color:#999999">=</span><span style="color:#999999">"</span>maxWait<span style="color:#999999">"</span></span> <span style="color:#669900">value</span><span style="color:#0077aa"><span style="color:#999999">=</span><span style="color:#999999">"</span>60000<span style="color:#999999">"</span></span><span style="color:#999999">/></span></span>
        <span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>property</span> <span style="color:#669900">name</span><span style="color:#0077aa"><span style="color:#999999">=</span><span style="color:#999999">"</span>minIdle<span style="color:#999999">"</span></span> <span style="color:#669900">value</span><span style="color:#0077aa"><span style="color:#999999">=</span><span style="color:#999999">"</span>0<span style="color:#999999">"</span></span><span style="color:#999999">/></span></span>
        <span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>property</span> <span style="color:#669900">name</span><span style="color:#0077aa"><span style="color:#999999">=</span><span style="color:#999999">"</span>timeBetweenEvictionRunsMillis<span style="color:#999999">"</span></span> <span style="color:#669900">value</span><span style="color:#0077aa"><span style="color:#999999">=</span><span style="color:#999999">"</span>60000<span style="color:#999999">"</span></span><span style="color:#999999">/></span></span>
        <span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>property</span> <span style="color:#669900">name</span><span style="color:#0077aa"><span style="color:#999999">=</span><span style="color:#999999">"</span>minEvictableIdleTimeMillis<span style="color:#999999">"</span></span> <span style="color:#669900">value</span><span style="color:#0077aa"><span style="color:#999999">=</span><span style="color:#999999">"</span>300000<span style="color:#999999">"</span></span><span style="color:#999999">/></span></span>
        <span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>property</span> <span style="color:#669900">name</span><span style="color:#0077aa"><span style="color:#999999">=</span><span style="color:#999999">"</span>validationQuery<span style="color:#999999">"</span></span> <span style="color:#669900">value</span><span style="color:#0077aa"><span style="color:#999999">=</span><span style="color:#999999">"</span>SELECT <span style="color:#999999">'</span>x<span style="color:#999999">'</span><span style="color:#999999">"</span></span><span style="color:#999999">/></span></span>
        <span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>property</span> <span style="color:#669900">name</span><span style="color:#0077aa"><span style="color:#999999">=</span><span style="color:#999999">"</span>testWhileIdle<span style="color:#999999">"</span></span> <span style="color:#669900">value</span><span style="color:#0077aa"><span style="color:#999999">=</span><span style="color:#999999">"</span>true<span style="color:#999999">"</span></span><span style="color:#999999">/></span></span>
        <span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>property</span> <span style="color:#669900">name</span><span style="color:#0077aa"><span style="color:#999999">=</span><span style="color:#999999">"</span>testOnBorrow<span style="color:#999999">"</span></span> <span style="color:#669900">value</span><span style="color:#0077aa"><span style="color:#999999">=</span><span style="color:#999999">"</span>false<span style="color:#999999">"</span></span><span style="color:#999999">/></span></span>
        <span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>property</span> <span style="color:#669900">name</span><span style="color:#0077aa"><span style="color:#999999">=</span><span style="color:#999999">"</span>testOnReturn<span style="color:#999999">"</span></span> <span style="color:#669900">value</span><span style="color:#0077aa"><span style="color:#999999">=</span><span style="color:#999999">"</span>false<span style="color:#999999">"</span></span><span style="color:#999999">/></span></span>
    <span style="color:#990055"><span style="color:#990055"><span style="color:#999999"></</span>bean</span><span style="color:#999999">></span></span></code></span></span>

2、pom.xml

<span style="color:#333333"><span style="color:black"><code class="language-xml"><span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>profiles</span><span style="color:#999999">></span></span>
		<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>profile</span><span style="color:#999999">></span></span>
			<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>id</span><span style="color:#999999">></span></span>dev<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"></</span>id</span><span style="color:#999999">></span></span>
			<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>activation</span><span style="color:#999999">></span></span>
				<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>activeByDefault</span><span style="color:#999999">></span></span>true<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"></</span>activeByDefault</span><span style="color:#999999">></span></span>
			<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"></</span>activation</span><span style="color:#999999">></span></span>
			<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>properties</span><span style="color:#999999">></span></span>
				<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>profile.file.name</span><span style="color:#999999">></span></span>/profile/dev.properties<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"></</span>profile.file.name</span><span style="color:#999999">></span></span>
				<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>package.target</span><span style="color:#999999">></span></span>dev<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"></</span>package.target</span><span style="color:#999999">></span></span>
			<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"></</span>properties</span><span style="color:#999999">></span></span>
		<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"></</span>profile</span><span style="color:#999999">></span></span>
		<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>profile</span><span style="color:#999999">></span></span>
			<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>id</span><span style="color:#999999">></span></span>test<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"></</span>id</span><span style="color:#999999">></span></span>
			<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>properties</span><span style="color:#999999">></span></span>
				<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>profile.file.name</span><span style="color:#999999">></span></span>/profile/test.properties<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"></</span>profile.file.name</span><span style="color:#999999">></span></span>
				<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>package.target</span><span style="color:#999999">></span></span>test<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"></</span>package.target</span><span style="color:#999999">></span></span>
			<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"></</span>properties</span><span style="color:#999999">></span></span>
		<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"></</span>profile</span><span style="color:#999999">></span></span>
		<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>profile</span><span style="color:#999999">></span></span>
			<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>id</span><span style="color:#999999">></span></span>pro<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"></</span>id</span><span style="color:#999999">></span></span>
			<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>properties</span><span style="color:#999999">></span></span>
				<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>profile.file.name</span><span style="color:#999999">></span></span>/profile/pro.properties<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"></</span>profile.file.name</span><span style="color:#999999">></span></span>
				<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>package.target</span><span style="color:#999999">></span></span>pro<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"></</span>package.target</span><span style="color:#999999">></span></span>
			<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"></</span>properties</span><span style="color:#999999">></span></span>
		<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"></</span>profile</span><span style="color:#999999">></span></span>
	<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"></</span>profiles</span><span style="color:#999999">></span></span>

	.......

	<span style="color:slategray"><!-- 定义配置文件路径 --></span>
<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>build</span><span style="color:#999999">></span></span>
        <span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>filters</span><span style="color:#999999">></span></span> 
                 <span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>filter</span><span style="color:#999999">></span></span>src/main/resources/filter/${env}.properties<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"></</span>filter</span><span style="color:#999999">></span></span>
    <span style="color:#990055"><span style="color:#990055"><span style="color:#999999"></</span>filters</span><span style="color:#999999">></span></span>
    <span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>resources</span><span style="color:#999999">></span></span>
        	<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>resource</span><span style="color:#999999">></span></span>
        		<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>directory</span><span style="color:#999999">></span></span>src/main/resources<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"></</span>directory</span><span style="color:#999999">></span></span>
        		<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>excludes</span><span style="color:#999999">></span></span>
        			<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>exclude</span><span style="color:#999999">></span></span>template**/**<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"></</span>exclude</span><span style="color:#999999">></span></span>
        		<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"></</span>excludes</span><span style="color:#999999">></span></span>
        		<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>filtering</span><span style="color:#999999">></span></span>false<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"></</span>filtering</span><span style="color:#999999">></span></span>
        	<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"></</span>resource</span><span style="color:#999999">></span></span>
    <span style="color:#990055"><span style="color:#990055"><span style="color:#999999"></</span>resources</span><span style="color:#999999">></span></span>
<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"></</span>build</span><span style="color:#999999">></span></span></code></span></span>

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

<span style="color:#333333"><span style="color:black"><code class="language-xml"><span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>activation</span><span style="color:#999999">></span></span>
	<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"><</span>activeByDefault</span><span style="color:#999999">></span></span>true<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"></</span>activeByDefault</span><span style="color:#999999">></span></span>
<span style="color:#990055"><span style="color:#990055"><span style="color:#999999"></</span>activation</span><span style="color:#999999">></span></span></code></span></span>

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

3、spring-bean.xml

<span style="color:#333333"><span style="color:black"><code class="language-java"><span style="color:#9a6e3a"><</span>bean id<span style="color:#9a6e3a">=</span><span style="color:#669900">"propertyConfigurer"</span>
		<span style="color:#0077aa">class</span><span style="color:#9a6e3a">=</span><span style="color:#669900">"org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"</span><span style="color:#9a6e3a">></span>
		<span style="color:#9a6e3a"><</span>property name<span style="color:#9a6e3a">=</span><span style="color:#669900">"locations"</span><span style="color:#9a6e3a">></span>
			<span style="color:#dd4a68"><span style="color:#999999"><</span>list<span style="color:#999999">></span></span>
				<span style="color:#dd4a68"><span style="color:#999999"><</span>value<span style="color:#999999">></span></span>classpath<span style="color:#9a6e3a">:</span><span style="color:#9a6e3a">/</span>META<span style="color:#9a6e3a">-</span>INF<span style="color:#9a6e3a">/</span>config<span style="color:#999999">.</span>properties<span style="color:#9a6e3a"><</span><span style="color:#9a6e3a">/</span>value<span style="color:#9a6e3a">></span>
			<span style="color:#9a6e3a"><</span><span style="color:#9a6e3a">/</span>list<span style="color:#9a6e3a">></span>
		<span style="color:#9a6e3a"><</span><span style="color:#9a6e3a">/</span>property<span style="color:#9a6e3a">></span>
<span style="color:#9a6e3a"><</span><span style="color:#9a6e3a">/</span>bean<span style="color:#9a6e3a">></span>
<span style="color:#9a6e3a"><</span><span style="color:#0077aa">import</span> resource<span style="color:#9a6e3a">=</span><span style="color:#669900">"spring-datasource.xml"</span><span style="color:#9a6e3a">/</span><span style="color:#9a6e3a">></span></code></span></span>

4、web.xml

<span style="color:#333333"><span style="color:black"><code class="language-java"><span style="color:#9a6e3a"><</span><span style="color:#9a6e3a">!</span><span style="color:#9a6e3a">--</span> 配置Spring初始文件 <span style="color:#9a6e3a">--</span><span style="color:#9a6e3a">></span>
	<span style="color:#9a6e3a"><</span>context<span style="color:#9a6e3a">-</span>param<span style="color:#9a6e3a">></span>
		<span style="color:#9a6e3a"><</span>param<span style="color:#9a6e3a">-</span>name<span style="color:#9a6e3a">></span>contextConfigLocation<span style="color:#9a6e3a"><</span><span style="color:#9a6e3a">/</span>param<span style="color:#9a6e3a">-</span>name<span style="color:#9a6e3a">></span>
		<span style="color:#9a6e3a"><</span>param<span style="color:#9a6e3a">-</span>value<span style="color:#9a6e3a">></span>
            classpath<span style="color:#9a6e3a">:</span>spring<span style="color:#9a6e3a">/</span>spring<span style="color:#9a6e3a">-</span>bean<span style="color:#999999">.</span>xml
        <span style="color:#9a6e3a"><</span><span style="color:#9a6e3a">/</span>param<span style="color:#9a6e3a">-</span>value<span style="color:#9a6e3a">></span>
	<span style="color:#9a6e3a"><</span><span style="color:#9a6e3a">/</span>context<span style="color:#9a6e3a">-</span>param<span style="color:#9a6e3a">></span></code></span></span>

5、打包

maven clean install -Pdev

猜你喜欢

转载自blog.csdn.net/qq_27469747/article/details/86036232