Maven提供了一个很不错的功能 Resource Filter, 可以将按不同环境的进行变量赋值, 比如数据库链接, redis, 日志输出位置等等.. 具体的filter如何使用我这里不做介绍, 只是把一些问题记录下来

1. spring中使用的如果是 xxx.properties文件中的值, maven的filter会将这些值直接替换掉, 这是我们不想看到的

<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<property name="driverClass" value="com.mysql.jdbc.Driver" />
<property name="jdbcUrl" value="#{'${db.url}' == '' ? T(com.vip.fds.core.util.SystemEnvUtil).getDBUrl('MGMT') : '${db.url}'}" />
<property name="user" value="#{'${db.user}' == '' ? T(com.vip.fds.core.util.SystemEnvUtil).getDBUsername('MGMT') : '${db.user}'}" />
<property name="password" value="#{'${db.password}' == '' ? T(com.vip.fds.core.util.SystemEnvUtil).getDBPassword('MGMT') : '${db.password}'}" />
<property name="idleConnectionTestPeriod" value="100" />
<property name="preferredTestQuery" value="SELECT 1" />
<property name="maxIdleTime" value="600" />
<property name="acquireIncrement" value="2" /><!-- 当连接池里面的链接用完的时候, c3p0一次性获取的连接数 -->
<property name="maxPoolSize" value="20" /><!-- 最大连接数 -->
<property name="minPoolSize" value="2" /><!-- 最小连接数 -->
<property name="testConnectionOnCheckin" value="true" />
<property name="testConnectionOnCheckout" value="true" />
</bean>

2. src/main/resources/ 目录中有一些用于其他目的的二进制文件, 比如就像qq的地址库, 这些文件会被filter扫描到并且改变编码格式, 你就会发现单元测试一些ok, 打成war包部署这个文件对应的解析功能就失败

这时, exclude和include的功能就来了, 通过它, 你可以定义目录下的那些子目录需要(不需要)进行filter替换, 这样就可以做到精确的控制

<build>
<filters>
<filter>src/main/resources/filters/filter-${env}.properties</filter>
</filters>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<excludes>
<exclude>spring/*</exclude>
<exclude>filters/*</exclude>
<exclude>*.dat</exclude>
</excludes>
</resource>
<resource>
<directory>src/main/resources</directory>
<filtering>false</filtering>
<includes>
<include>spring/*</include>
<include>*.dat</include>
</includes>
</resource>
</resources>
</build

最新文章

  1. gerrit 为每个工程设置提交的reviewer
  2. 《锋利的jQuery》读书笔记
  3. HTML: Css引入的四種方式
  4. print,print_r,echo,var_dump,var_export比较
  5. 运用Swagger 添加WebAPI 文档
  6. Jedis实现发布订阅功能
  7. 深入浅出requireJS-1
  8. jQuery 模拟操作
  9. c/c++ 网络编程 UDP 改变网关和网卡名字
  10. C++回顾day03---&lt;类型转换&gt;
  11. 像调试java一样来调试Redis lua
  12. 使用element-ui 遇到的问题
  13. Linux基础实践
  14. SharePoint 2013 APP 开发示例 (四)JQuery访问REST
  15. Echarts Map 值域为小数的原因
  16. 嵌入式LINUX设置时间
  17. 系统批量运维管理器paramiko详解
  18. CSS Position(定位)
  19. DAY5-模块与包
  20. css背景图片位置:background的position(转)

热门文章

  1. BMP图片的C++水印算法
  2. 分析Memcached客户端如何把缓存数据分布到多个服务器上
  3. java线程模型Master-Worker
  4. 今天学习Ibatis,花了我一个下午的时间,程序猿呀,你上点心吧
  5. Power of Cryptography - poj 2109
  6. 题外话:计算密集型 vs IO密集型
  7. 创建一个动态Web项目:
  8. Android ImageButton的使用。
  9. mybatis注解实现CURD
  10. Python小练习(持续更新....)