企业项目开发--mybatis注解与xml并用(3)

勿忘初心2018-12-19 14:52

此文已由作者赵计刚授权网易云社区发布。

欢迎访问网易云社区,了解更多网易技术产品运营经验。


pom.xml

  1 <?xml version="1.0" encoding="UTF-8"?>
  2 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  4 
  5     <modelVersion>4.0.0</modelVersion>
  6 
  7     <groupId>com.xxx</groupId>
  8     <artifactId>ssmm0</artifactId>
  9     <version>1.0-SNAPSHOT</version>
 10 
 11     <name>ssmm0</name>
 12     <packaging>pom</packaging><!-- 父模块 -->
 13 
 14     <!-- 管理子模块 -->
 15     <modules>
 16         <module>userManagement</module><!-- 具体业务1-人员管理系统 -->
 17         <module>data</module><!-- 封装数据操作 -->
 18     </modules>
 19 
 20     <properties>
 21         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
 22         <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
 23     </properties>
 24 
 25     <!-- dependencyManagement不会引入实际的依赖,只是作为一个依赖池,供其和其子类使用 -->
 26     <dependencyManagement>
 27         <dependencies>
 28             <!-- json -->
 29             <dependency>
 30                 <groupId>com.alibaba</groupId>
 31                 <artifactId>fastjson</artifactId>
 32                 <version>1.1.39</version>
 33             </dependency>
 34             <!-- servlet -->
 35             <dependency>
 36                 <groupId>javax.servlet</groupId>
 37                 <artifactId>javax.servlet-api</artifactId>
 38                 <version>3.0.1</version>
 39                 <scope>provided</scope>
 40             </dependency>
 41             <!-- spring -->
 42             <dependency>
 43                 <groupId>org.springframework</groupId>
 44                 <artifactId>spring-core</artifactId>
 45                 <version>3.2.6.RELEASE</version>
 46             </dependency>
 47             <dependency>
 48                 <groupId>org.springframework</groupId>
 49                 <artifactId>spring-beans</artifactId>
 50                 <version>3.2.6.RELEASE</version>
 51             </dependency>
 52             <dependency>
 53                 <groupId>org.springframework</groupId>
 54                 <artifactId>spring-context</artifactId>
 55                 <version>3.2.6.RELEASE</version>
 56             </dependency>
 57             <dependency>
 58                 <groupId>org.springframework</groupId>
 59                 <artifactId>spring-web</artifactId>
 60                 <version>3.2.6.RELEASE</version>
 61             </dependency>
 62             <dependency>
 63                 <groupId>org.springframework</groupId>
 64                 <artifactId>spring-webmvc</artifactId>
 65                 <version>3.2.6.RELEASE</version>
 66             </dependency>
 67             <!-- 这个是使用velocity的必备包 -->
 68             <dependency>
 69                 <groupId>org.springframework</groupId>
 70                 <artifactId>spring-context-support</artifactId>
 71                 <version>3.2.6.RELEASE</version>
 72             </dependency>
 73             <!-- mysql -->
 74             <dependency>
 75                 <groupId>mysql</groupId>
 76                 <artifactId>mysql-connector-java</artifactId>
 77                 <version>5.1.27</version>
 78                 <scope>runtime</scope>
 79             </dependency>
 80             <!-- 数据源 -->
 81             <dependency>
 82                 <groupId>org.apache.tomcat</groupId>
 83                 <artifactId>tomcat-jdbc</artifactId>
 84                 <version>7.0.47</version>
 85             </dependency>
 86             <!-- mybatis -->
 87             <dependency>
 88                 <groupId>org.mybatis</groupId>
 89                 <artifactId>mybatis</artifactId>
 90                 <version>3.1.1</version>
 91             </dependency>
 92             <dependency>
 93                 <groupId>org.mybatis</groupId>
 94                 <artifactId>mybatis-spring</artifactId>
 95                 <version>1.1.1</version>
 96             </dependency>
 97             <!-- velocity -->
 98             <dependency>
 99                 <groupId>org.apache.velocity</groupId>
100                 <artifactId>velocity</artifactId>
101                 <version>1.5</version>
102             </dependency>
103             <dependency>
104                 <groupId>velocity-tools</groupId>
105                 <artifactId>velocity-tools-generic</artifactId>
106                 <version>1.2</version>
107             </dependency>
108             <!-- 用于加解密 -->
109             <dependency>
110                 <groupId>commons-codec</groupId>
111                 <artifactId>commons-codec</artifactId>
112                 <version>1.7</version>
113             </dependency>
114             <dependency>
115                 <groupId>org.bouncycastle</groupId>
116                 <artifactId>bcprov-jdk15on</artifactId>
117                 <version>1.47</version>
118             </dependency>
119             <!-- 集合工具类 -->
120             <dependency>
121                 <groupId>org.apache.commons</groupId>
122                 <artifactId>commons-collections4</artifactId>
123                 <version>4.0</version>
124             </dependency>
125             <!-- http -->
126             <dependency>
127                 <groupId>org.apache.httpcomponents</groupId>
128                 <artifactId>httpclient</artifactId>
129                 <version>4.2.6</version>
130             </dependency>
131         </dependencies>
132     </dependencyManagement>
133 
134     <!-- 引入实际依赖 -->
135     <dependencies>
136         <!-- json -->
137         <dependency>
138             <groupId>com.alibaba</groupId>
139             <artifactId>fastjson</artifactId>
140         </dependency>
141         <!-- spring -->
142         <dependency>
143             <groupId>org.springframework</groupId>
144             <artifactId>spring-core</artifactId>
145         </dependency>
146         <dependency>
147             <groupId>org.springframework</groupId>
148             <artifactId>spring-beans</artifactId>
149         </dependency>
150         <dependency>
151             <groupId>org.springframework</groupId>
152             <artifactId>spring-context</artifactId>
153         </dependency>
154         <!-- 集合工具类 -->
155         <dependency>
156             <groupId>org.apache.commons</groupId>
157             <artifactId>commons-collections4</artifactId>
158         </dependency>
159     </dependencies>
160 
161     <build>
162         <resources>
163             <!-- 这里配置了这一块儿true,才可以让指定文件(这里是src/main/resources/spring-data.xml)读到pom.xml中的配置信息 
164                 , 值得注意的是,如果src/main/resources下还有其他文件,而你不想让其读pom.xml, 你还必须得把src/main/resources下的其余文件再配置一遍,配置为false(不可读pom.xml), 
165                 如下边的注释那样,否则,会报这些文件(在这里,就是*.properties)找不到的错误 
166             -->
167             <resource>
168                 <directory>src/main/resources</directory>
169                 <filtering>true</filtering>
170                 <includes>
171                     <include>*.xml</include>
172                 </includes>
173             </resource>
174             <!-- 
175             <resource> 
176                 <directory>src/main/resources</directory> 
177                 <filtering>false</filtering>   
178                 <includes> 
179                     <include>*.properties</include> 
180                 </includes> 
181             </resource> 
182             -->
183             <resource> 
184                 <directory>src/main/resources</directory> 
185                 <filtering>false</filtering>   
186                 <includes> 
187                 <!-- 这里如果不加这一条,那么在spring-data.xml中配置的xml将找不到classpath:mapper/admin/AdminMapper.xml -->
188                     <include>mapper/**/*.xml</include> 
189                 </includes> 
190             </resource> 
191         </resources>
192     </build>
193 
194     <!-- 
195         profiles可以定义多个profile,然后每个profile对应不同的激活条件和配置信息,从而达到不同环境使用不同配置信息的效果 
196         注意两点: 
197         1)<activeByDefault>true</activeByDefault>这种情况表示服务器启动的时候就采用这一套env(在这里,就是prod) 
198         2)当我们启动服务器后,想采用开发模式,需切换maven的env为dev,如果env的配置本身就是dev,需要将env换成rc或prod,点击apply,然后再将env切换成dev,点击apply才行 
199     -->
200     <profiles>
201         <!-- 开发env -->
202         <profile>
203             <id>dev</id>
204             <activation>
205                 <activeByDefault>false</activeByDefault>
206                 <property>
207                     <name>env</name>
208                     <value>dev</value>
209                 </property>
210             </activation>
211             <properties>
212                 <env>dev</env>
213 
214                 <jdbc.driverClassName>com.mysql.jdbc.Driver</jdbc.driverClassName>
215                 <!--
216                      对于jdbc.url中内容的配置,如果需要配置 &amp;时,有两种方法:
217                     1)如下边这样,使用<![CDATA[XXX]]>包起来 
218                     2)使用jdbc.properties文件来读取此pom.xml,然后spring.xml再读取jdbc.properties文件 显然,前者更方便,而且还省了一个jdbc.properties的文件,但是,有的时候,还是会用后者的; 
219                     在使用后者的时候,注意三点:
220                     1)需要修改上边的build中的内容 
221                     2)需要在spring.xml中配置<context:property-placeholder location="classpath:jdbc.properties"/> 
222                     3)将jdbc.properties放在ssmm0-data项目中,之后需要将ssmm0-data项目的env配置为dev 
223                 -->
224                 <jdbc.url><![CDATA[jdbc:mysql://127.0.0.1:3306/blog?zeroDateTimeBehavior=convertToNull&amp;useUnicode=true&amp;characterEncoding=utf-8]]></jdbc.url>
225                 <jdbc.username>root</jdbc.username>
226                 <jdbc.password>123456</jdbc.password>
227             </properties>
228         </profile>
229         <!-- 预上线env -->
230         <profile>
231             <id>rc</id>
232             <activation>
233                 <activeByDefault>false</activeByDefault>
234                 <property>
235                     <name>env</name>
236                     <value>rc</value>
237                 </property>
238             </activation>
239             <properties>
240                 <env>rc</env>
241 
242                 <jdbc.driverClassName>com.mysql.jdbc.Driver</jdbc.driverClassName>
243                 <!-- 假设的一个地址 -->
244                 <jdbc.url><![CDATA[jdbc:mysql://10.10.10.100:3306/blog?zeroDateTimeBehavior=convertToNull&amp;useUnicode=true&amp;characterEncoding=utf-8]]></jdbc.url>
245                 <jdbc.username>root2</jdbc.username>
246                 <jdbc.password>1234562</jdbc.password>
247             </properties>
248         </profile>
249         <!-- 线上env -->
250         <profile>
251             <id>prod</id>
252             <activation>
253                 <activeByDefault>true</activeByDefault>
254                 <property>
255                     <name>env</name>
256                     <value>prod</value>
257                 </property>
258             </activation>
259             <properties>
260                 <env>prod</env>
261 
262                 <jdbc.driverClassName>com.mysql.jdbc.Driver</jdbc.driverClassName>
263                 <!-- 假设的一个地址 -->
264                 <jdbc.url><![CDATA[jdbc:mysql://99.99.99.999:3307/blog?zeroDateTimeBehavior=convertToNull&amp;useUnicode=true&amp;characterEncoding=utf-8]]></jdbc.url>
265                 <jdbc.username>sadhijhqwui</jdbc.username>
266                 <jdbc.password>zxczkchwihcznk=</jdbc.password>
267             </properties>
268         </profile>
269     </profiles>
270 </project>

 说明:只在resource部分增加了一行关于"接口.xml"的过滤配置(作用看注释)

 

测试:测试的具体操作见前一章。


免费领取验证码、内容安全、短信发送、直播点播体验包及云服务器等套餐

更多网易技术、产品、运营经验分享请点击