手把手Maven搭建SpringMVC+Spring+MyBatis框架

SSM(Spring+SpringMVC+Mybatis),目前较为主流的企业级架构方案。标准的MVC设计模式,将整个系统划分为显示层、Controller层、Service层、Dao层四层,使用SpringMVC负责请求的转发和视图管理,Spring实现业务对象管理, MyBatis作为数据对象持久化引擎。

一. 框架详情

  1. Spring 是一个轻量级的Java开发框架,它是为了解决企业应用开发的复杂性而创建的。Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。 简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。
  2. SpringMVC 属于SpringFrameWork的后续产品,分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。
  3. MyBatis 是一个基于Java的持久层框架。MyBatis提供的持久层框架包括SQL Maps和Data Access Objects(DAO)它消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java映射成数据库中的记录。

二. 创建Maven项目

  1. Eclipse中用Maven创建项目

  2. 按默认Next

  3. 找到maven-archetype-webapp后,点击next

  4. 填写相应的信息,GroupID是项目组织唯一的标识符,实际对应JAVA的包的结构。ArtifactID就是项目的唯一的标识符,实际对应项目的名称,就是项目根目录的名称。Package填了默认给你建一个包,不写也可以。

  5. 刚建好的目录如下

  6. Maven规定必须添加以下Source Folder:
    src/main/resources
    src/main/java
    src/test/resources
    src/test/java
    在这步之前最好先项目上右键选择properties,然后点击java build path,在Librarys下,编辑JRE System Library,选择workspace default jre。

  7. 分别修改输出路径为,对应关系如下:

  8. 将项目转换成Dynamic Web Project,在项目上右键Properties,在左侧选择 Project Facets。

  9. 设置部署时的文件发布路径,删除test的两项,因为test是测试使用,并不需要部署。
    设置将Maven的jar包发布到lib下。Add -> Java Build Path Entries -> Maven Dependencies -> Finish

    三. Maven引入需要的JAR包

    Xml代码  

    四. 相关配置文件配置,整合SSM框架

    web.xml

    Java代码  

    spring.xml

    Java代码  

    为了代替手工使用 SqlSessionDaoSupport 或 SqlSessionTemplate 编写数据访问对象 (DAO)的代码,MyBatis-Spring 提供了一个动态代理的实现:MapperFactoryBean。这个类 可以让你直接注入数据映射器接口到你的 service 层 bean 中。当使用映射器时,你仅仅如调 用你的 DAO 一样调用它们就可以了,但是你不需要编写任何 DAO 实现的代码,因为 MyBatis-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" xmlns:mvc="http://www.springframework.org/schema/mvc"
    4. xmlns:context="http://www.springframework.org/schema/context"
    5. xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
    6. xsi:schemaLocation="http://www.springframework.org/schema/beans
    7. http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
    8. http://www.springframework.org/schema/mvc
    9. http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
    10. http://www.springframework.org/schema/context
    11. http://www.springframework.org/schema/context/spring-context-3.0.xsd
    12. http://www.springframework.org/schema/aop
    13. http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
    14. http://www.springframework.org/schema/tx
    15. http://www.springframework.org/schema/tx/spring-tx-3.0.xsd ">
    16. <!-- 扫描service、dao组件 -->
    17. <context:component-scan base-package="com.yingjun.test" />
    18. <!-- 分解配置 jdbc.properites -->
    19. <context:property-placeholder location="classpath:jdbc.properties" />
    20. <!-- 数据源c3p0 -->
    21. <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
    22. <property name="driverClass" value="${jdbc.driverClassName}" />
    23. <property name="jdbcUrl" value="${jdbc.url}" />
    24. <property name="user" value="${jdbc.username}" />
    25. <property name="password" value="${jdbc.password}" />
    26. <property name="maxPoolSize" value="${c3p0.pool.size.max}" />
    27. <property name="minPoolSize" value="${c3p0.pool.size.min}" />
    28. <property name="initialPoolSize" value="${c3p0.pool.size.ini}" />
    29. <property name="acquireIncrement" value="${c3p0.pool.size.increment}" />
    30. </bean>
    31. <!-- sessionFactory 将spring和mybatis整合 -->
    32. <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    33. <property name="dataSource" ref="dataSource" />
    34. <property name="configLocation" value="classpath:spring-mybatis.xml" />
    35. <property name="mapperLocations" value="classpath*:com/yingjun/test/mapping/**/*.xml" />
    36. </bean>
    37. <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    38. <property name="basePackage" value="com,yingjun.test.dao" />
    39. <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
    40. </bean>
    41. <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    42. <property name="dataSource" ref="dataSource" />
    43. </bean>
    44. <tx:advice id="transactionAdvice" transaction-manager="transactionManager">
    45. <tx:attributes>
    46. <tx:method name="add*" propagation="REQUIRED" />
    47. <tx:method name="append*" propagation="REQUIRED" />
    48. <tx:method name="insert*" propagation="REQUIRED" />
    49. <tx:method name="save*" propagation="REQUIRED" />
    50. <tx:method name="update*" propagation="REQUIRED" />
    51. <tx:method name="modify*" propagation="REQUIRED" />
    52. <tx:method name="edit*" propagation="REQUIRED" />
    53. <tx:method name="delete*" propagation="REQUIRED" />
    54. <tx:method name="remove*" propagation="REQUIRED" />
    55. <tx:method name="repair" propagation="REQUIRED" />
    56. <tx:method name="delAndRepair" propagation="REQUIRED" />
    57. <tx:method name="get*" propagation="SUPPORTS" />
    58. <tx:method name="find*" propagation="SUPPORTS" />
    59. <tx:method name="load*" propagation="SUPPORTS" />
    60. <tx:method name="search*" propagation="SUPPORTS" />
    61. <tx:method name="datagrid*" propagation="SUPPORTS" />
    62. <tx:method name="*" propagation="SUPPORTS" />
    63. </tx:attributes>
    64. </tx:advice>
    65. <aop:config>
    66. <aop:pointcut id="transactionPointcut" expression="execution(* com.yingjun.test.service..*Impl.*(..))" />
    67. <aop:advisor pointcut-ref="transactionPointcut" advice-ref="transactionAdvice" />
    68. </aop:config>
    69. </beans>
    70. <?xml version="1.0" encoding="UTF-8"?>
    71. <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    72. xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:web="http://xmlns.jcp.org/xml/ns/javaee"
    73. xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
    74. version="2.4">
    75. <!-- 配置 Spring -->
    76. <context-param>
    77. <param-name>contextConfigLocation</param-name>
    78. <param-value>classpath:spring.xml</param-value>
    79. </context-param>
    80. <listener>
    81. <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    82. </listener>
    83. <!-- 防止Spring内存溢出监听器 -->
    84. <listener>
    85. <listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>
    86. </listener>
    87. <!-- 配置springmvc -->
    88. <servlet>
    89. <servlet-name>springMVC</servlet-name>
    90. <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    91. <init-param>
    92. <param-name>contextConfigLocation</param-name>
    93. <param-value>classpath:spring-mvc.xml</param-value>
    94. </init-param>
    95. <load-on-startup>1</load-on-startup>
    96. </servlet>
    97. <servlet-mapping>
    98. <servlet-name>springMVC</servlet-name>
    99. <url-pattern>/</url-pattern>
    100. </servlet-mapping>
    101. <!-- 字符集过滤器 -->
    102. <filter>
    103. <filter-name>encodingFilter</filter-name>
    104. <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    105. <init-param>
    106. <param-name>encoding</param-name>
    107. <param-value>UTF-8</param-value>
    108. </init-param>
    109. <init-param>
    110. <param-name>forceEncoding</param-name>
    111. <param-value>true</param-value>
    112. </init-param>
    113. </filter>
    114. <filter-mapping>
    115. <filter-name>encodingFilter</filter-name>
    116. <url-pattern>/*</url-pattern>
    117. </filter-mapping>
    118. </web-app>
    119. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    120. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    121. <modelVersion>4.0.0</modelVersion>
    122. <groupId>com.yingjun.test</groupId>
    123. <artifactId>TradingState</artifactId>
    124. <packaging>war</packaging>
    125. <version>2.0.1</version>
    126. <properties>
    127. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    128. <maven.build.timestamp.format>yyyyMMddHHmmss</maven.build.timestamp.format>
    129. <spring.version>3.2.9.RELEASE</spring.version>
    130. <mybatis.version>3.1.1</mybatis.version>
    131. <mybatisspring.version>1.1.1</mybatisspring.version>
    132. </properties>
    133. <dependencies>
    134. <dependency>
    135. <groupId>org.springframework</groupId>
    136. <artifactId>spring-core</artifactId>
    137. <version>${spring.version}</version>
    138. </dependency>
    139. <dependency>
    140. <groupId>org.springframework</groupId>
    141. <artifactId>spring-webmvc</artifactId>
    142. <version>${spring.version}</version>
    143. </dependency>
    144. <dependency>
    145. <groupId>org.springframework</groupId>
    146. <artifactId>spring-test</artifactId>
    147. <version>${spring.version}</version>
    148. </dependency>
    149. <dependency>
    150. <groupId>org.mybatis</groupId>
    151. <artifactId>mybatis</artifactId>
    152. <version>${mybatis.version}</version>
    153. </dependency>
    154. <dependency>
    155. <groupId>org.mybatis</groupId>
    156. <artifactId>mybatis-spring</artifactId>
    157. <version>${mybatisspring.version}</version>
    158. </dependency>
    159. <dependency>
    160. <groupId>mysql</groupId>
    161. <artifactId>mysql-connector-java</artifactId>
    162. <version>5.1.34</version>
    163. </dependency>
    164. <dependency>
    165. <groupId>junit</groupId>
    166. <artifactId>junit</artifactId>
    167. <version>4.11</version>
    168. <scope>test</scope>
    169. </dependency>
    170. <dependency>
    171. <groupId>c3p0</groupId>
    172. <artifactId>c3p0</artifactId>
    173. <version>0.9.1.2</version>
    174. </dependency>
    175. <dependency>
    176. <groupId>org.aspectj</groupId>
    177. <artifactId>aspectjweaver</artifactId>
    178. <version>1.8.1</version>
    179. </dependency>
    180. <dependency>
    181. <groupId>javax.servlet</groupId>
    182. <artifactId>jstl</artifactId>
    183. <version>1.2</version>
    184. </dependency>
    185. <dependency>
    186. <groupId>javax.servlet</groupId>
    187. <artifactId>servlet-api</artifactId>
    188. <version>3.0</version>
    189. <scope>provided</scope>
    190. </dependency>
    191. <dependency>
    192. <groupId>javax.servlet.jsp</groupId>
    193. <artifactId>jsp-api</artifactId>
    194. <version>2.2</version>
    195. <scope>provided</scope>
    196. </dependency>
    197. <dependency>
    198. <groupId>commons-fileupload</groupId>
    199. <artifactId>commons-fileupload</artifactId>
    200. <version>1.3.1</version>
    201. </dependency>
    202. <dependency>
    203. <groupId>commons-lang</groupId>
    204. <artifactId>commons-lang</artifactId>
    205. <version>2.6</version>
    206. </dependency>
    207. <dependency>
    208. <groupId>commons-codec</groupId>
    209. <artifactId>commons-codec</artifactId>
    210. <version>1.9</version>
    211. </dependency>
    212. <dependency>
    213. <groupId>org.apache.httpcomponents</groupId>
    214. <artifactId>httpclient</artifactId>
    215. <version>4.5</version>
    216. </dependency>
    217. <dependency>
    218. <groupId>org.slf4j</groupId>
    219. <artifactId>slf4j-api</artifactId>
    220. <version>1.7.10</version>
    221. </dependency>
    222. <dependency>
    223. <groupId>org.slf4j</groupId>
    224. <artifactId>slf4j-log4j12</artifactId>
    225. <version>1.7.10</version>
    226. </dependency>
    227. <dependency>
    228. <groupId>log4j</groupId>
    229. <artifactId>log4j</artifactId>
    230. <version>1.2.17</version>
    231. </dependency>
    232. <dependency>
    233. <groupId>com.alibaba</groupId>
    234. <artifactId>fastjson</artifactId>
    235. <version>1.1.41</version>
    236. </dependency>
    237. <dependency>
    238. <groupId>org.codehaus.jackson</groupId>
    239. <artifactId>jackson-mapper-asl</artifactId>
    240. <version>1.9.13</version>
    241. </dependency>
    242. </dependencies>
    243. <build>
    244. <plugins>
    245. <plugin>
    246. <artifactId>maven-compiler-plugin</artifactId>
    247. <version>2.3.2</version>
    248. <configuration>
    249. <source>1.7</source>
    250. <target>1.7</target>
    251. </configuration>
    252. </plugin>
    253. <plugin>
    254. <artifactId>maven-war-plugin</artifactId>
    255. <version>2.2</version>
    256. <configuration>
    257. <version>3.0</version>
    258. <failOnMissingWebXml>false</failOnMissingWebXml>
    259. </configuration>
    260. </plugin>
    261. </plugins>
    262. <finalName>${project.artifactId}_${project.version}_${maven.build.timestamp}</finalName>
    263. </build>
    264. </project>

愿意了解框架技术或者源码的朋友直接加求求(企鹅):2042849237

更多详细源码参考来源:http://minglisoft.cn/technology

时间: 2024-10-29 19:07:46

手把手Maven搭建SpringMVC+Spring+MyBatis框架的相关文章

手把手Maven搭建SpringMVC+Spring+MyBatis框架(超级详细版)【转】

一. 框架详情 Spring 是一个轻量级的Java开发框架,它是为了解决企业应用开发的复杂性而创建的.Spring的用途不仅限于服务器端的开发.从简单性.可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益. 简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架. SpringMVC 属于SpringFrameWork的后续产品,分离了控制器.模型对象.分派器以及处理程序对象的角色,这种分离让它们更容易进行定制. MyBatis 是一个基于Ja

手把手Maven搭建SpringMVC+Spring+MyBatis框架(超级详细版)

SSM(Spring+SpringMVC+Mybatis),目前较为主流的企业级架构方案.标准的MVC设计模式,将整个系统划分为显示层.Controller层.Service层.Dao层四层,使用SpringMVC负责请求的转发和视图管理,Spring实现业务对象管理, MyBatis作为数据对象持久化引擎. 一. 框架详情 Spring 是一个轻量级的Java开发框架,它是为了解决企业应用开发的复杂性而创建的.Spring的用途不仅限于服务器端的开发.从简单性.可测试性和松耦合的角度而言,任何

Maven 搭建SpringMvc+Spring+Mybatis详细记录

总觉得,看比人写的总是那么好,每次搭建框架时都会找博客,找教程来跟着一步一步走,虽然很快搭建成功了,但是经常情况是我并不知道我干了什么,也不记得具体步骤,到底为什么要这么做,今天我详细记录了一下自己搭建的过程,并且尽量理解每一步干什么. SSM框架当下比较流行,我也是用这个框架来作为记录,尝试详细地记录下每一个步骤,学习,不要怕开头难. 一.创建一个新的Maven项目 1. new -> Maven -> Maven Project 选择webapp工程. 2.maven项目建好以后,工程目录

maven搭建springmvc+spring+mybatis实例

最近做了个maven管理的springmvc+spring+mybatis,还用到了阿里巴巴的 fastjson和druid连接池,配置文件如下 pom.xml文件 [html] view plaincopy <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http:

单工程搭建springmvc+spring+mybatis(maven,idea)

单工程搭建springmvc+spring+mybatis(maven,idea) 1.pom.xml <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.7</maven.compiler.source> <maven.compiler.target>1.7</maven

用Maven整合SpringMVC+Spring+Hibernate 框架

用Maven整合SpringMVC+Spring+Hibernate 框架, 实现简单的插入数据库数据 一.搭建开始前的准备 1.打开MyEclipse新建Maven项目.File>New>Other(或Ctrl+N)>Maven Project:然后我们用default Workspace就行了(注意Location的路径,区分目录名和项目名):然后再Filter中输入webapp,我们选择org.apache.maven.archetypes 下的maven-archetype-we

用Maven整合SpringMVC+Spring+Hibernate 框架,实现简单的插入数据库数据功能(二)

前一篇写的有些多,大家先看前一篇,传送门 具体的资源已将上传到资源了. 附地址:MySQL.zip启动 用Maven整合SpringMVC+Spring+Hibernate 框架 上文我们直接搭建前的准备和资源配置都写好了,下面进入具体代码编写.承接上文的小3 3.我习惯建立接口,这样对整个项目感觉更合理. (1.)建立IBaseService(业务逻辑层,有的习惯写成BaseServiceI)都可以,都是标注接口的,我只是简单的贴下代码 package com.jesus.sshframewo

SpringMVC+Spring+Mybatis框架集成

一.基本概念 1.Spring     Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来.它是为了解决企业应用开发的复杂性而创建的.Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情.然而,Spring的用途不仅限于服务器端的开发.从简单性.可测试性和松耦合的角度而言,任何Ja

Maven搭建springMVC+spring+hibernate环境

这次不再使用struts2做控制器,采用spring自己的springMVC框架实现. 首先,改写pom.xml文件,不需要struts2的相关jar了. pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apa