本项目是@尚硅谷相关视频的记录。

本项目使用Maven构建,工程架构如下图所示:

一、公司的公共父工程和工具类包

1.父工程

每个公司都有自己的父工程

父工程作用:对公司使用的jar包进行统一管理,别的工程需要继承公司的父工程

父工程必须是pom

项目的打包类型:pom、jar、war

pom   --------->   父类型都为pom类型

jar      --------->   内部调用或者是作服务使用

war    --------->   需要部署的项目

packing默认是jar类型

项目中一般使用maven进行模块管理,每个模块下对应都有一个pom文件,pom文件中维护了各模块之间的依赖和继承关系。项目模块化可以将通用的部分抽离出来,方便重用;修改一部分代码不再是build整个项目,缩短了build时间;此外各模块都有自己的pom文件,结构更清晰。

pom文件除了GAV(groupId, artifactId, version)是必须要配置的,另一个重要的属性就是packaging打包类型,所有的父级项目的packaging都为pom,packaging默认是jar类型,如果不作配置,maven会将该项目打成jar包。

使用maven进行模块划分管理,一般都会有一个父级项目,作为父级项目,还有一个重要的属性,那就是modules,通过modules标签将项目的所有子项目引用进来,在build父级项目时,会根据子模块的相互依赖关系整理一个build顺序,然后依次build。

而对于各个子项目,需要在其对应的pom文件开头申明对父级项目的引用,通过GAV实现。对于子项目自己的GAV配置,GV如果不配置,则会从父级项目的配置继承过来。子模块可通过dependencies标签来添加自己的依赖,此外子类项目的packaging值只能是war或者jar。如果是需要部署的项目,则需要打包成war类型,如果只是内部调用或者是作服务使用,则推荐打包成jar类型。

1)创建新的工作集,命名为scw

在Eclipse中使用Working set管理项目 https://jingyan.baidu.com/article/e4511cf343a3f22b845eaf21.html

2)创建父工程

pom文件:

  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  2. <modelVersion>4.0.0</modelVersion>
  3. <groupId>com.atguigu.project</groupId>
  4. <artifactId>project-parent</artifactId>
  5. <version>0.0.1-SNAPSHOT</version>
  6. <packaging>pom</packaging>
  7.  
  8. <!-- 父工程中做依赖管理:jar包的版本控制等都在这里 -->
  9. <properties>
  10. <!-- 公共依赖 -->
  11. <commons-io.version>2.5</commons-io.version>
  12. <commons-lang3.version>3.6</commons-lang3.version>
  13. <commons-codec.version>1.10</commons-codec.version>
  14. <commons-beanutils.version>1.9.3</commons-beanutils.version>
  15. <commons-collections.version>3.2.2</commons-collections.version>
  16. <commons-math3.version>3.6.1</commons-math3.version>
  17. <commons.fileupload>1.3.2</commons.fileupload>
  18. <commons-email.version>1.4</commons-email.version>
  19.  
  20. <!-- junit -->
  21. <junit.version>4.12</junit.version>
  22. <!-- 时间日期操作 -->
  23. <joda-time.version>2.9.9</joda-time.version>
  24. <!-- httpclient -->
  25. <httpclient.version>4.5.3</httpclient.version>
  26. <!-- 功能组件 -->
  27. <poi.version>3.16</poi.version>
  28. <quartz.version>2.2.3</quartz.version>
  29. <!-- 数据库 -->
  30. <!--druid:德鲁伊,数据库连接池 -->
  31. <druid.version>1.1.0</druid.version>
  32. <mysql.connector>5.1.42</mysql.connector>
  33.  
  34. <!-- 基础框架 -->
  35. <spring.version>4.3.8.RELEASE</spring.version>
  36. <mybatis.version>3.4.3</mybatis.version>
  37. <mybatis.spring.version>1.3.1</mybatis.spring.version>
  38.  
  39. <!-- 分页 -->
  40. <pagehelper.version>5.0.3</pagehelper.version>
  41. <!-- jackson -->
  42. <jackson.version>2.7.4</jackson.version>
  43.  
  44. <!-- MBG -->
  45. <mbg.version>1.3.5</mbg.version>
  46.  
  47. <!-- 日志 -->
  48. <log4j.version>1.2.17</log4j.version>
  49. <slf4j.version>1.7.6</slf4j.version>
  50.  
  51. <!-- servlet-api,jsp-api,jstl -->
  52. <servlet-api.version>2.5</servlet-api.version>
  53. <jsp-api.version>2.2</jsp-api.version>
  54. <jstl.version>1.2</jstl.version>
  55.  
  56. <!-- email,commons,httpclient...activiti... -->
  57. <activiti.version>5.22.0</activiti.version>
  58. <activiti.spring.version>5.22.0</activiti.spring.version>
  59. </properties>
  60. <!-- 依赖管理 -->
  61. <dependencyManagement>
  62. <dependencies>
  63. <!-- 公共依赖 -->
  64. <dependency>
  65. <groupId>commons-io</groupId>
  66. <artifactId>commons-io</artifactId>
  67. <version>${commons-io.version}</version>
  68. </dependency>
  69. <dependency>
  70. <groupId>org.apache.commons</groupId>
  71. <artifactId>commons-lang3</artifactId>
  72. <version>${commons-lang3.version}</version>
  73. </dependency>
  74. <dependency>
  75. <groupId>commons-codec</groupId>
  76. <artifactId>commons-codec</artifactId>
  77. <version>${commons-codec.version}</version>
  78. </dependency>
  79. <dependency>
  80. <groupId>commons-beanutils</groupId>
  81. <artifactId>commons-beanutils</artifactId>
  82. <version>${commons-beanutils.version}</version>
  83. </dependency>
  84. <dependency>
  85. <groupId>commons-collections</groupId>
  86. <artifactId>commons-collections</artifactId>
  87. <version>${commons-collections.version}</version>
  88. </dependency>
  89. <dependency>
  90. <groupId>org.apache.commons</groupId>
  91. <artifactId>commons-math3</artifactId>
  92. <version>${commons-math3.version}</version>
  93. </dependency>
  94. <dependency>
  95. <groupId>commons-fileupload</groupId>
  96. <artifactId>commons-fileupload</artifactId>
  97. <version>${commons.fileupload}</version>
  98. </dependency>
  99. <dependency>
  100. <groupId>org.apache.commons</groupId>
  101. <artifactId>commons-email</artifactId>
  102. <version>${commons-email.version}</version>
  103. </dependency>
  104.  
  105. <!--公共依赖结束 -->
  106.  
  107. <!-- junit -->
  108. <dependency>
  109. <groupId>junit</groupId>
  110. <artifactId>junit</artifactId>
  111. <version>${junit.version}</version>
  112. <scope>test</scope>
  113. </dependency>
  114.  
  115. <!-- 时间日期 -->
  116. <dependency>
  117. <groupId>joda-time</groupId>
  118. <artifactId>joda-time</artifactId>
  119. <version>${joda-time.version}</version>
  120. </dependency>
  121.  
  122. <!-- httpclient -->
  123. <dependency>
  124. <groupId>org.apache.httpcomponents</groupId>
  125. <artifactId>httpclient</artifactId>
  126. <version>${httpclient.version}</version>
  127. </dependency>
  128.  
  129. <!-- 其他功能性组件 -->
  130. <!-- poi:文档操作 -->
  131. <dependency>
  132. <groupId>org.apache.poi</groupId>
  133. <artifactId>poi</artifactId>
  134. <version>${poi.version}</version>
  135. </dependency>
  136. <!-- quartz:石英调度 -->
  137. <dependency>
  138. <groupId>org.quartz-scheduler</groupId>
  139. <artifactId>quartz</artifactId>
  140. <version>${quartz.version}</version>
  141. </dependency>
  142.  
  143. <!-- 数据库模块 -->
  144. <!-- 连接池 -->
  145. <dependency>
  146. <groupId>com.alibaba</groupId>
  147. <artifactId>druid</artifactId>
  148. <version>${druid.version}</version>
  149. </dependency>
  150. <!-- 驱动 -->
  151. <dependency>
  152. <groupId>mysql</groupId>
  153. <artifactId>mysql-connector-java</artifactId>
  154. <version>${mysql.connector}</version>
  155. </dependency>
  156.  
  157. <!-- 基础框架 -->
  158. <!-- Spring配置 -->
  159. <dependency>
  160. <groupId>org.springframework</groupId>
  161. <artifactId>spring-beans</artifactId>
  162. <version>${spring.version}</version>
  163. </dependency>
  164. <dependency>
  165. <groupId>org.springframework</groupId>
  166. <artifactId>spring-tx</artifactId>
  167. <version>${spring.version}</version>
  168. </dependency>
  169. <dependency>
  170. <groupId>org.springframework</groupId>
  171. <artifactId>spring-core</artifactId>
  172. <version>${spring.version}</version>
  173. </dependency>
  174. <dependency>
  175. <groupId>org.springframework</groupId>
  176. <artifactId>spring-context</artifactId>
  177. <version>${spring.version}</version>
  178. </dependency>
  179. <dependency>
  180. <groupId>org.springframework</groupId>
  181. <artifactId>spring-jdbc</artifactId>
  182. <version>${spring.version}</version>
  183. </dependency>
  184. <dependency>
  185. <groupId>org.springframework</groupId>
  186. <artifactId>spring-aspects</artifactId>
  187. <version>${spring.version}</version>
  188. </dependency>
  189. <dependency>
  190. <groupId>org.springframework</groupId>
  191. <artifactId>spring-orm</artifactId>
  192. <version>${spring.version}</version>
  193. </dependency>
  194. <dependency>
  195. <groupId>org.springframework</groupId>
  196. <artifactId>spring-webmvc</artifactId>
  197. <version>${spring.version}</version>
  198. </dependency>
  199. <dependency>
  200. <groupId>org.springframework</groupId>
  201. <artifactId>spring-webmvc-portlet</artifactId>
  202. <version>${spring.version}</version>
  203. </dependency>
  204. <dependency>
  205. <groupId>org.springframework</groupId>
  206. <artifactId>spring-test</artifactId>
  207. <version>${spring.version}</version>
  208. <scope>test</scope>
  209. </dependency>
  210. <dependency>
  211. <groupId>org.springframework</groupId>
  212. <artifactId>spring-context-support</artifactId>
  213. <version>${spring.version}</version>
  214. </dependency>
  215.  
  216. <!-- mybatis配置 -->
  217. <dependency>
  218. <groupId>org.mybatis</groupId>
  219. <artifactId>mybatis-spring</artifactId>
  220. <version>${mybatis.spring.version}</version>
  221. </dependency>
  222. <dependency>
  223. <groupId>org.mybatis</groupId>
  224. <artifactId>mybatis</artifactId>
  225. <version>${mybatis.version}</version>
  226. </dependency>
  227. <!-- 基础框架完成 -->
  228.  
  229. <!-- 分页 -->
  230. <dependency>
  231. <groupId>com.github.pagehelper</groupId>
  232. <artifactId>pagehelper</artifactId>
  233. <version>${pagehelper.version}</version>
  234. </dependency>
  235.  
  236. <!-- jackson -->
  237. <dependency>
  238. <groupId>com.fasterxml.jackson.core</groupId>
  239. <artifactId>jackson-core</artifactId>
  240. <version>${jackson.version}</version>
  241. </dependency>
  242. <dependency>
  243. <groupId>com.fasterxml.jackson.core</groupId>
  244. <artifactId>jackson-databind</artifactId>
  245. <version>${jackson.version}</version>
  246. </dependency>
  247.  
  248. <!-- MBG -->
  249. <dependency>
  250. <groupId>org.mybatis.generator</groupId>
  251. <artifactId>mybatis-generator-core</artifactId>
  252. <version>${mbg.version}</version>
  253. </dependency>
  254.  
  255. <!-- 工作流 -->
  256. <dependency>
  257. <groupId>org.activiti</groupId>
  258. <artifactId>activiti-engine</artifactId>
  259. <version>${activiti.version}</version>
  260. </dependency>
  261. <dependency>
  262. <groupId>org.activiti</groupId>
  263. <artifactId>activiti-spring</artifactId>
  264. <version>${activiti.spring.version}</version>
  265. </dependency>
  266. <!-- 日志 -->
  267. <dependency>
  268. <groupId>log4j</groupId>
  269. <artifactId>log4j</artifactId>
  270. <version>${log4j.version}</version>
  271. </dependency>
  272. <dependency>
  273. <groupId>org.slf4j</groupId>
  274. <artifactId>slf4j-log4j12</artifactId>
  275. <version>${slf4j.version}</version>
  276. </dependency>
  277. <dependency>
  278. <groupId>org.slf4j</groupId>
  279. <artifactId>slf4j-api</artifactId>
  280. <version>${slf4j.version}</version>
  281. </dependency>
  282.  
  283. <!-- 依赖的WEB类库 -->
  284. <dependency>
  285. <groupId>javax.servlet.jsp</groupId>
  286. <artifactId>jsp-api</artifactId>
  287. <version>${jsp-api.version}</version>
  288. <scope>provided</scope>
  289. </dependency>
  290. <dependency>
  291. <groupId>javax.servlet</groupId>
  292. <artifactId>servlet-api</artifactId>
  293. <version>${servlet-api.version}</version>
  294. <scope>provided</scope>
  295. </dependency>
  296. <dependency>
  297. <groupId>javax.servlet</groupId>
  298. <artifactId>jstl</artifactId>
  299. <version>${jstl.version}</version>
  300. </dependency>
  301. </dependencies>
  302. </dependencyManagement>
  303.  
  304. </project>

Maven中POM.XML详解 https://www.cnblogs.com/sharpest/p/5969566.html

这个pom.xml主要由三部分组成:GAV等信息,properties和dependencyManagement,properties指定了依赖的版本,dependencyManagement指定了依赖。

用到的依赖:

公共依赖       

commons-io

 commons-lang3
 commons-codec
 commons-beanutils
 commons-collections
 commons-math3
 commons-fileupload
 commons-email
 数据库   druid 连接池
 mysql-connector-java 驱动
基础框架 Spring
mybatis
WEB类库 jsp-api
servlet-api
jstl
日志 log4j
slf4j-log4j12
slf4j-api
工作流 activiti-engine
activiti-spring
其他 mybatis-generator-core
jackson
pagehelper 分页
junit
joda-time 时间
httpclient
poi 文档操作
quartz 石英调度

2.公司工具类的包

公司除了父工程以外,长年累月还会积累很多工具类,这些常用的工具类会存放在同一个地方。

建立新的maven工程

  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  2. <modelVersion>4.0.0</modelVersion>
  3. <groupId>com.atguigu.project</groupId>
  4. <artifactId>project-commons</artifactId>
  5. <version>0.0.1-SNAPSHOT</version>
  6. <packaging>jar</packaging>
  7.  
  8. <!-- 公司工具类 -->
  9. <parent>
  10. <groupId>com.atguigu.project</groupId>
  11. <artifactId>project-parent</artifactId>
  12. <version>0.0.1-SNAPSHOT</version>
  13. </parent>
  14.  
  15. <!-- 导入公共依赖的一些包 -->
  16. <dependencies>
  17. <!-- 公共依赖 -->
  18. <dependency>
  19. <groupId>commons-io</groupId>
  20. <artifactId>commons-io</artifactId>
  21. </dependency>
  22. <dependency>
  23. <groupId>org.apache.commons</groupId>
  24. <artifactId>commons-lang3</artifactId>
  25. </dependency>
  26. <dependency>
  27. <groupId>commons-codec</groupId>
  28. <artifactId>commons-codec</artifactId>
  29. </dependency>
  30. <dependency>
  31. <groupId>commons-beanutils</groupId>
  32. <artifactId>commons-beanutils</artifactId>
  33. </dependency>
  34. <dependency>
  35. <groupId>commons-collections</groupId>
  36. <artifactId>commons-collections</artifactId>
  37. </dependency>
  38. <dependency>
  39. <groupId>org.apache.commons</groupId>
  40. <artifactId>commons-math3</artifactId>
  41. </dependency>
  42. <dependency>
  43. <groupId>commons-fileupload</groupId>
  44. <artifactId>commons-fileupload</artifactId>
  45. </dependency>
  46. <dependency>
  47. <groupId>org.apache.commons</groupId>
  48. <artifactId>commons-email</artifactId>
  49.  
  50. </dependency>
  51.  
  52. <!--公共依赖结束 -->
  53.  
  54. </dependencies>
  55.  
  56. </project>

继承公共父工程

maven继承 https://www.cnblogs.com/huanggy/p/9736756.html

该包可能会用到公共依赖,引入公共依赖

二、项目的父工程

下面开始我们自己工程的构建

我们的项目也需要一个父工程,scw-parent,选择pom

  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  2. <modelVersion>4.0.0</modelVersion>
  3. <parent>
  4. <groupId>com.atguigu.project</groupId>
  5. <artifactId>project-parent</artifactId>
  6. <version>0.0.1-SNAPSHOT</version>
  7. </parent>
  8. <groupId>com.atguigu.scw</groupId>
  9. <artifactId>scw-parent</artifactId>
  10. <version>0.0.1-SNAPSHOT</version>
  11. <packaging>pom</packaging>
  12. </project>

继承公司的公共父工程project-parent

三、项目分模块

我们的项目是分模块构建的

新建一个项目,这个项目聚合了后台功能的各个模块,因此打包方式要选pom,这样才可以在该项目下创建maven模块

pom.xml

  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  2. <modelVersion>4.0.0</modelVersion>
  3. <groupId>com.atguigu.scw</groupId>
  4. <artifactId>scw-manager</artifactId>
  5. <version>0.0.1-SNAPSHOT</version>
  6. <packaging>pom</packaging>
  7.  
  8. <parent>
  9. <groupId>com.atguigu.scw</groupId>
  10. <artifactId>scw-parent</artifactId>
  11. <version>0.0.1-SNAPSHOT</version>
  12. </parent>
  13.  
  14. <modules>
  15. <module>manager-pojo</module>
  16. <module>manager-dao</module>
  17. <module>manager-service</module>
  18. <module>manager-web</module>
  19. </modules>
  20. </project>

继承项目父工程scw-parent

项目分为四个模块manager-pojo、manager-dao、manager-service和manager-web

pojo里是常用的JavaBean

service里是业务逻辑

dao是数据库相关

四、创建模块

一共四个模块manager-pojo、manager-dao、manager-service和manager-web

manager-web要选择war包,一个聚合父项目应该只有一个war包

右键web项目,选择Build Path,选择Configure Build Path...

选Project Facets

Eclipse的Project Facets属性

我们创建了war包,但是web项目还没配置好,还要重新选择并配置Dynamic Web Mobile,设置webapp的路径。

取消Dynamic Web Mobile,点apply,再重新选中

出现下面红线内容,点击

Content directory输入src/main/webapp

webapp在项目中的位置如下图:

五、各模块间依赖的配置

四个模块共同点:都要继承scw-manager,因此都有:

  1. <parent>
  2. <groupId>com.atguigu.scw</groupId>
  3. <artifactId>scw-manager</artifactId>
  4. <version>0.0.1-SNAPSHOT</version>
  5. </parent>

dao依赖pojo,service依赖dao,web依赖service

dao的pom.xml

不必配置依赖

  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  2. <modelVersion>4.0.0</modelVersion>
  3. <parent>
  4. <groupId>com.atguigu.scw</groupId>
  5. <artifactId>scw-manager</artifactId>
  6. <version>0.0.1-SNAPSHOT</version>
  7. </parent>
  8. <artifactId>manager-pojo</artifactId>
  9. </project>

dao依赖pojo

dao的pom.xml

  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  2. <modelVersion>4.0.0</modelVersion>
  3. <parent>
  4. <groupId>com.atguigu.scw</groupId>
  5. <artifactId>scw-manager</artifactId>
  6. <version>0.0.1-SNAPSHOT</version>
  7. </parent>
  8. <artifactId>manager-dao</artifactId>
  9.  
  10. <dependencies>
  11. <dependency>
  12. <groupId>com.atguigu.scw</groupId>
  13. <artifactId>manager-pojo</artifactId>
  14. <version>0.0.1-SNAPSHOT</version>
  15. </dependency>
  16. </dependencies>
  17. </project>

service依赖dao

service的pom.xml

  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  2. <modelVersion>4.0.0</modelVersion>
  3. <parent>
  4. <groupId>com.atguigu.scw</groupId>
  5. <artifactId>scw-manager</artifactId>
  6. <version>0.0.1-SNAPSHOT</version>
  7. </parent>
  8. <artifactId>manager-service</artifactId>
  9.  
  10. <dependencies>
  11. <dependency>
  12. <groupId>com.atguigu.scw</groupId>
  13. <artifactId>manager-dao</artifactId>
  14. <version>0.0.1-SNAPSHOT</version>
  15. </dependency>
  16. </dependencies>
  17.  
  18. </project>

web依赖service

web的pom.xml

  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  2. <modelVersion>4.0.0</modelVersion>
  3. <parent>
  4. <groupId>com.atguigu.scw</groupId>
  5. <artifactId>scw-manager</artifactId>
  6. <version>0.0.1-SNAPSHOT</version>
  7. </parent>
  8. <artifactId>manager-web</artifactId>
  9. <packaging>war</packaging>
  10.  
  11. <dependencies>
  12. <dependency>
  13. <groupId>com.atguigu.scw</groupId>
  14. <artifactId>manager-service</artifactId>
  15. <version>0.0.1-SNAPSHOT</version>
  16. </dependency>
  17. </dependencies>
  18. </project>

聚合好后,各个项目依赖关系建立好,依赖的模块可以使用被依赖模块的jar包,如commons引入service后,web也可以使用,但是上层的无法使用。

  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  2. <modelVersion>4.0.0</modelVersion>
  3. <parent>
  4. <groupId>com.atguigu.scw</groupId>
  5. <artifactId>scw-manager</artifactId>
  6. <version>0.0.1-SNAPSHOT</version>
  7. </parent>
  8. <artifactId>manager-dao</artifactId>
  9.  
  10. <dependencies>
  11. <dependency>
  12. <groupId>com.atguigu.scw</groupId>
  13. <artifactId>manager-pojo</artifactId>
  14. <version>0.0.1-SNAPSHOT</version>
  15. </dependency>
  16. <!-- 和数据库有关的放在该层 -->
  17. <!-- 数据库模块 -->
  18. <!-- 连接池 -->
  19. <dependency>
  20. <groupId>com.alibaba</groupId>
  21. <artifactId>druid</artifactId>
  22. </dependency>
  23. <!-- 驱动 -->
  24. <dependency>
  25. <groupId>mysql</groupId>
  26. <artifactId>mysql-connector-java</artifactId>
  27. </dependency>
  28. <!-- mybatis配置 -->
  29. <dependency>
  30. <groupId>org.mybatis</groupId>
  31. <artifactId>mybatis-spring</artifactId>
  32. </dependency>
  33. <dependency>
  34. <groupId>org.mybatis</groupId>
  35. <artifactId>mybatis</artifactId>
  36. </dependency>
  37. <!-- MBG -->
  38. <dependency>
  39. <groupId>org.mybatis.generator</groupId>
  40. <artifactId>mybatis-generator-core</artifactId>
  41. </dependency>
  42.  
  43. </dependencies>
  44. </project>

service引入公司的工具类commons依赖和IOC框架,除MVC以为的Spring框架

  1. <project xmlns="http://maven.apache.org/POM/4.0.0"
  2. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  4. <modelVersion>4.0.0</modelVersion>
  5. <parent>
  6. <groupId>com.atguigu.scw</groupId>
  7. <artifactId>scw-manager</artifactId>
  8. <version>0.0.1-SNAPSHOT</version>
  9. </parent>
  10. <artifactId>manager-service</artifactId>
  11.  
  12. <dependencies>
  13. <dependency>
  14. <groupId>com.atguigu.scw</groupId>
  15. <artifactId>manager-dao</artifactId>
  16. <version>0.0.1-SNAPSHOT</version>
  17. </dependency>
  18. <dependency>
  19. <groupId>com.atguigu.project</groupId>
  20. <artifactId>project-commons</artifactId>
  21. <version>0.0.1-SNAPSHOT</version>
  22. </dependency>
  23. <!-- 存放IOC框架 -->
  24. <!-- Spring配置 -->
  25. <dependency>
  26. <groupId>org.springframework</groupId>
  27. <artifactId>spring-beans</artifactId>
  28. </dependency>
  29. <dependency>
  30. <groupId>org.springframework</groupId>
  31. <artifactId>spring-tx</artifactId>
  32. </dependency>
  33. <dependency>
  34. <groupId>org.springframework</groupId>
  35. <artifactId>spring-core</artifactId>
  36. </dependency>
  37. <dependency>
  38. <groupId>org.springframework</groupId>
  39. <artifactId>spring-context</artifactId>
  40. </dependency>
  41. <dependency>
  42. <groupId>org.springframework</groupId>
  43. <artifactId>spring-jdbc</artifactId>
  44. </dependency>
  45. <dependency>
  46. <groupId>org.springframework</groupId>
  47. <artifactId>spring-aspects</artifactId>
  48. </dependency>
  49. <dependency>
  50. <groupId>org.springframework</groupId>
  51. <artifactId>spring-orm</artifactId>
  52. </dependency>
  53. </dependencies>
  54.  
  55. </project>

web引入其他jar包

  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  2. <modelVersion>4.0.0</modelVersion>
  3. <parent>
  4. <groupId>com.atguigu.scw</groupId>
  5. <artifactId>scw-manager</artifactId>
  6. <version>0.0.1-SNAPSHOT</version>
  7. </parent>
  8. <artifactId>manager-web</artifactId>
  9. <packaging>war</packaging>
  10.  
  11. <dependencies>
  12. <dependency>
  13. <groupId>com.atguigu.scw</groupId>
  14. <artifactId>manager-service</artifactId>
  15. <version>0.0.1-SNAPSHOT</version>
  16. </dependency>
  17. <!-- junit -->
  18. <dependency>
  19. <groupId>junit</groupId>
  20. <artifactId>junit</artifactId>
  21. <scope>test</scope>
  22. </dependency>
  23. <dependency>
  24. <groupId>org.springframework</groupId>
  25. <artifactId>spring-webmvc</artifactId>
  26. </dependency>
  27. <dependency>
  28. <groupId>org.springframework</groupId>
  29. <artifactId>spring-webmvc-portlet</artifactId>
  30. </dependency>
  31. <dependency>
  32. <groupId>org.springframework</groupId>
  33. <artifactId>spring-test</artifactId>
  34. <scope>test</scope>
  35. </dependency>
  36. <dependency>
  37. <groupId>org.springframework</groupId>
  38. <artifactId>spring-context-support</artifactId>
  39. </dependency>
  40. <!-- 分页 -->
  41. <dependency>
  42. <groupId>com.github.pagehelper</groupId>
  43. <artifactId>pagehelper</artifactId>
  44. </dependency>
  45.  
  46. <!-- jackson -->
  47. <dependency>
  48. <groupId>com.fasterxml.jackson.core</groupId>
  49. <artifactId>jackson-core</artifactId>
  50. </dependency>
  51. <dependency>
  52. <groupId>com.fasterxml.jackson.core</groupId>
  53. <artifactId>jackson-databind</artifactId>
  54. </dependency>
  55. <!-- 日志 -->
  56. <dependency>
  57. <groupId>log4j</groupId>
  58. <artifactId>log4j</artifactId>
  59. </dependency>
  60. <dependency>
  61. <groupId>org.slf4j</groupId>
  62. <artifactId>slf4j-log4j12</artifactId>
  63. </dependency>
  64. <dependency>
  65. <groupId>org.slf4j</groupId>
  66. <artifactId>slf4j-api</artifactId>
  67. </dependency>
  68.  
  69. <!-- 依赖的WEB类库 -->
  70. <dependency>
  71. <groupId>javax.servlet.jsp</groupId>
  72. <artifactId>jsp-api</artifactId>
  73. <scope>provided</scope>
  74. </dependency>
  75. <dependency>
  76. <groupId>javax.servlet</groupId>
  77. <artifactId>servlet-api</artifactId>
  78. <scope>provided</scope>
  79. </dependency>
  80. <dependency>
  81. <groupId>javax.servlet</groupId>
  82. <artifactId>jstl</artifactId>
  83. </dependency>
  84. </dependencies>
  85. </project>

项目完整关系图:

六、测试

SprngMVC概述 https://www.cnblogs.com/aidata/p/11458825.html

pojo下创建Person

  1. package com.atguigu.scw.manager.bean;
  2.  
  3. public class Person {}

web下创建HelloController

  1. package com.atguigu.scw.manager.controller;
  2.  
  3. import org.springframework.stereotype.Controller;
  4. import org.springframework.web.bind.annotation.RequestMapping;
  5.  
  6. import com.atguigu.scw.manager.bean.Person;
  7.  
  8. @Controller
  9. public class HelloController {
  10.  
  11. @RequestMapping("hello")
  12. public String hello() {
  13. Person person = new Person();
  14. return "/success.jsp";
  15. }
  16. }

web src/main/resources下创建Spring配置文件

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xmlns:context="http://www.springframework.org/schema/context"
  5. xmlns:mvc="http://www.springframework.org/schema/mvc"
  6. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
  7. http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd
  8. http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd">
  9.  
  10. <context:component-scan base-package="com.atguigu"></context:component-scan>
  11.  
  12. </beans>

webapp下

创建index.jsp

  1. <%@ page language="java" contentType="text/html; charset=UTF-8"
  2. pageEncoding="UTF-8"%>
  3. <!DOCTYPE html>
  4. <html>
  5. <head>
  6. <meta charset="UTF-8">
  7. <title>Insert title here</title>
  8. </head>
  9. <body>
  10. <a href="hello">hello</a>
  11. </body>
  12. </html>

success.jsp

  1. <%@ page language="java" contentType="text/html; charset=UTF-8"
  2. pageEncoding="UTF-8"%>
  3. <!DOCTYPE html>
  4. <html>
  5. <head>
  6. <meta charset="UTF-8">
  7. <title>Insert title here</title>
  8. </head>
  9. <body>
  10. <h1>你好</h1>
  11. </body>
  12. </html>

前端控制器

web.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app id="WebApp_ID" version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  3.  
  4. <!-- The front controller of this Spring Web application, responsible for handling all application requests -->
  5. <servlet>
  6. <servlet-name>springDispatcherServlet</servlet-name>
  7. <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  8. <init-param>
  9. <param-name>contextConfigLocation</param-name>
  10. <param-value>classpath:springmvc.xml</param-value>
  11. </init-param>
  12. <load-on-startup>1</load-on-startup>
  13. </servlet>
  14.  
  15. <!-- Map all requests to the DispatcherServlet for handling -->
  16. <servlet-mapping>
  17. <servlet-name>springDispatcherServlet</servlet-name>
  18. <url-pattern>/</url-pattern>
  19. </servlet-mapping>
  20. </web-app>

运行tomcat,浏览器访问

【JavaWeb项目】一个众筹网站的开发(一)架构搭建的更多相关文章

  1. 【JavaWeb项目】一个众筹网站的开发(八)后台页面详细设置

    一.user.jsp改造 删除引入菜单 抽取导航栏 nav-bar.jsp,删除引入导航栏 删除引入main.jsp的到好烂 数据库里添加url 报错,url不对 没有/ url正确 action=& ...

  2. 【JavaWeb项目】一个众筹网站的开发(五)后台用户登录功能

    用户模块 1)注册 表单校验,使用校验插件 用户密码需要加密存储 注册成功后来到管理控制台,将用户放在session中,防止以后获取 以后用户经常获取用户id,使用mabatis主键自增策略,保存用户 ...

  3. 【JavaWeb项目】一个众筹网站的开发(四)后台用户注册功能

    重点: 密码加密存储 使用jQuery插件做校验和错误提示等 密码不能明文存储,在数据库中是加密存储的 可逆加密:通过密文使用解密算法得到明文 DES AES 不可逆加密:通过密文,得不到明文 MD5 ...

  4. 【JavaWeb项目】一个众筹网站的开发(九)邮件开发

    Java官方支持邮件开发,Javax-mail jdk中默认没有,需要另外下载 apache的基于Javax-mail开发了commons-mail,更加简单高效,推荐使用 一.电子邮件接收和发送协议 ...

  5. 【JavaWeb项目】一个众筹网站的开发(六)后台用户权限控制

    登陆成功进入控制面板后 左侧的菜单是共同的元素,抽取出来做静态包含 要求必须是按照不同的用户得到不同的菜单 用户做了权限限制,哪个用户能操作哪些内容(链接.按钮.内容) 一.RBAC权限模型 权限管理 ...

  6. 【JavaWeb项目】一个众筹网站的开发(三)第一个网页

    一.bootstrap 本项目采用bootstrap3 bootstrap中文网 https://www.bootcss.com/ 使用bootstrap三步: 1.导入jQuery 2.导入boot ...

  7. 【JavaWeb项目】一个众筹网站的开发(二)架构搭建之架构测试

    1.dao层和pojo都是使用mbg生成,基本的CRUD以及JavaBean 2.将mbg放在dao层,一旦dao层打包以后mbg就删除掉 一.创建数据库用于测试 数据库名称:scw_0325 SQL ...

  8. 【JavaWeb项目】一个众筹网站的开发(七)后台用户菜单

    mvn命令不能运行: jar-war-pom之间是可以直接写,优先找这个工程,而不是仓库的位置 pom-pom子父关系,需要去仓库中找,我们需要使用<relativePath>../pro ...

  9. Springmvc+Spring+Mybatis整合开发(架构搭建)

    Springmvc+Spring+Mybatis整合开发(架构搭建) 0.项目结构 Springmvc:web层 Spring:对象的容器 Mybatis:数据库持久化操作 1.导入所有需要的jar包 ...

随机推荐

  1. JPush极光推送Java服务器端实例

    import cn.jpush.api.JPushClient; import cn.jpush.api.common.resp.APIConnectionException; import cn.j ...

  2. BZOJ 4484: [Jsoi2015]最小表示(拓扑排序+bitset)

    传送门 解题思路 \(bitset\)维护连通性,给每个点开个\(bitset\),第\(i\)位为\(1\)则表示与第\(i\)位联通.算答案时显然要枚举每条边,而枚举边的顺序需要贪心,一个点先到达 ...

  3. 重新认识new

    前言 感谢大佬:https://www.cnblogs.com/luxiaoxun/archive/2012/08/10/2631812.html www.cplusplus.com 因为这段时间在重 ...

  4. idea中git回退远程仓库版本

    工作中遇到,代码已提交并已提交到远程仓库,现需要回退到之前版本,记录如下: 记录当前版本的版本号和需要回退到版本的版本号. current version:85e7f32dfe421c5892a4e2 ...

  5. configure error C compiler cannot create executables错误解决

    我们在编译软件的时候,是不是经常遇到下面的错误信息呢?   checking build system type... i686-pc-linux-gnuchecking host system ty ...

  6. Django-自定义用户模型

    Django最方便的一点,是自带用户系统,但有些情况下,不符合项目需求, 原因1.我们有时候需要自定义一些字段,或者删除Django自带字段,2.我们有时候需要定义哪些字段是必填的,登陆时的用户名是哪 ...

  7. golang 国内环境配置

    写在 .bashrc 或 .zshrc 等文件中: # golang env export GO111MODULE=on export GOPROXY=https://goproxy.cn #七牛云提 ...

  8. appium报错及解决方案

    [已解决]mac上手动打开appium报错:“Could not find aapt Please set the ANDROID_HOME environment variable with the ...

  9. JPA、Hibernate、Spring Data JPA 的关系,你懂吗?

    来源:https://my.oschina.net/u/3080373/blog/1828589 什么是JPA? 全称Java Persistence API,可以通过注解或者XML描述[对象-关系表 ...

  10. 56.Decode String(解码字符串)

    Level:   Medium 题目描述: Given an encoded string, return it's decoded string. The encoding rule is: k[e ...