经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » Java相关 » Java » 查看文章
SSM的整合
来源:cnblogs  作者:我想回家  时间:2018/10/15 9:30:19  对本文有异议

框架的整合:

  1. 1. 依赖整合
  2. aop的包:
  3. aspectweaver
  4. spring-aop
  5. spring核心:
  6. spring-context
  7. spring-web
  8. spring-webmvc
  9. spring-test
  10. spring-tx
  11. spring-jdbc
  12. junit:
  13. junit
  14. mysql:
  15. mysql-connector-java
  16. servlet+jsp:
  17. servlet-api
  18. jsp-api
  19. jstl:
  20. jstl
  21. log:
  22. log4j
  23. slf4j-api
  24. slf4j-log4j12
  25. mybatis:
  26. mybatis
  27. mybatis-spring
  28. 连接池:
  29. c3p0
  30. <properties>
  31. <spring.version>5.0.2.RELEASE</spring.version>
  32. <slf4j.version>1.6.6</slf4j.version>
  33. <log4j.version>1.2.12</log4j.version>
  34. <mysql.version>5.1.6</mysql.version>
  35. <mybatis.version>3.4.5</mybatis.version>
  36. </properties>
  37. <dependencies>
  38. <!-- spring -->
  39. <dependency>
  40. <groupId>org.aspectj</groupId>
  41. <artifactId>aspectjweaver</artifactId>
  42. <version>1.6.8</version>
  43. </dependency>
  44. <dependency>
  45. <groupId>org.springframework</groupId>
  46. <artifactId>spring-aop</artifactId>
  47. <version>${spring.version}</version>
  48. </dependency>
  49. <dependency>
  50. <groupId>org.springframework</groupId>
  51. <artifactId>spring-context</artifactId>
  52. <version>${spring.version}</version>
  53. </dependency>
  54. <dependency>
  55. <groupId>org.springframework</groupId>
  56. <artifactId>spring-web</artifactId>
  57. <version>${spring.version}</version>
  58. </dependency>
  59. <dependency>
  60. <groupId>org.springframework</groupId>
  61. <artifactId>spring-webmvc</artifactId>
  62. <version>${spring.version}</version>
  63. </dependency>
  64. <dependency>
  65. <groupId>org.springframework</groupId>
  66. <artifactId>spring-test</artifactId>
  67. <version>${spring.version}</version>
  68. </dependency>
  69. <dependency>
  70. <groupId>org.springframework</groupId>
  71. <artifactId>spring-tx</artifactId>
  72. <version>${spring.version}</version>
  73. </dependency>
  74. <dependency>
  75. <groupId>org.springframework</groupId>
  76. <artifactId>spring-jdbc</artifactId>
  77. <version>${spring.version}</version>
  78. </dependency>
  79. <dependency>
  80. <groupId>junit</groupId>
  81. <artifactId>junit</artifactId>
  82. <version>4.12</version>
  83. <scope>compile</scope>
  84. </dependency>
  85. <dependency>
  86. <groupId>mysql</groupId>
  87. <artifactId>mysql-connector-java</artifactId>
  88. <version>${mysql.version}</version>
  89. </dependency>
  90. <dependency>
  91. <groupId>javax.servlet</groupId>
  92. <artifactId>servlet-api</artifactId>
  93. <version>2.5</version>
  94. <scope>provided</scope>
  95. </dependency>
  96. <dependency>
  97. <groupId>javax.servlet.jsp</groupId>
  98. <artifactId>jsp-api</artifactId>
  99. <version>2.0</version>
  100. <scope>provided</scope>
  101. </dependency>
  102. <dependency>
  103. <groupId>jstl</groupId>
  104. <artifactId>jstl</artifactId>
  105. <version>1.2</version>
  106. </dependency>
  107. <!-- log start -->
  108. <dependency>
  109. <groupId>log4j</groupId>
  110. <artifactId>log4j</artifactId>
  111. <version>${log4j.version}</version>
  112. </dependency>
  113. <dependency>
  114. <groupId>org.slf4j</groupId>
  115. <artifactId>slf4j-api</artifactId>
  116. <version>${slf4j.version}</version>
  117. </dependency>
  118. <dependency>
  119. <groupId>org.slf4j</groupId>
  120. <artifactId>slf4j-log4j12</artifactId>
  121. <version>${slf4j.version}</version>
  122. </dependency>
  123. <!-- log end -->
  124. <dependency>
  125. <groupId>org.mybatis</groupId>
  126. <artifactId>mybatis</artifactId>
  127. <version>${mybatis.version}</version>
  128. </dependency>
  129. <dependency>
  130. <groupId>org.mybatis</groupId>
  131. <artifactId>mybatis-spring</artifactId>
  132. <version>1.3.0</version>
  133. </dependency>
  134. <dependency>
  135. <groupId>c3p0</groupId>
  136. <artifactId>c3p0</artifactId>
  137. <version>0.9.1.2</version>
  138. <type>jar</type>
  139. <scope>compile</scope>
  140. </dependency>
  141. </dependencies>
  142. 2. 配置文件整合
  143. applicationContext.xml的约束编写:
  144. <?xml version="1.0" encoding="UTF-8"?>
  145. <beans xmlns="http://www.springframework.org/schema/beans"
  146. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  147. xmlns:context="http://www.springframework.org/schema/context"
  148. xmlns:aop="http://www.springframework.org/schema/aop"
  149. xmlns:tx="http://www.springframework.org/schema/tx"
  150. xsi:schemaLocation="http://www.springframework.org/schema/beans
  151. http://www.springframework.org/schema/beans/spring-beans.xsd
  152. http://www.springframework.org/schema/context
  153. http://www.springframework.org/schema/context/spring-context.xsd
  154. http://www.springframework.org/schema/aop
  155. http://www.springframework.org/schema/aop/spring-aop.xsd
  156. http://www.springframework.org/schema/tx
  157. http://www.springframework.org/schema/tx/spring-tx.xsd">
  158. <!-- 开启注解扫描,要扫描的是servicedao层的注解,要忽略web层注解,因为web层让SpringMVC框架 去管理 -->
  159. <context:component-scan base-package="cn.itcast">
  160. <!-- 配置要忽略的注解 -->
  161. <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
  162. </context:component-scan>
  163. <!--spring整合mybatis框架-->
  164. <!--配置c3p0连接池-->
  165. <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
  166. <property name="driverClass" value="com.mysql.jdbc.Driver"/>
  167. <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/ssm"/>
  168. <property name="user" value="root"/>
  169. <property name="password" value="nrblwbb7"/>
  170. </bean>
  171. <!--配置SqlSessionFactory-->
  172. <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
  173. <property name="dataSource" ref="dataSource"/>
  174. </bean>
  175. <!--配置映射接口所在的包-->
  176. <!--自动为接口生成代理对象,并将代理对象存在springIOC容器中-->
  177. <bean id="mapperScanner" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
  178. <property name="basePackage" value="com.itheima.mapper"/>
  179. </bean>
  180. <!--配置Spring框架声明式事务管理-->
  181. <!--配置事务管理器-->
  182. <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
  183. <property name="dataSource" ref="dataSource"/>
  184. </bean>
  185. <!--配置事务通知-->
  186. <tx:advice id="txAdvice" transaction-manager="transactionManager">
  187. <tx:attributes>
  188. <tx:method name="find*" read-only="true"/>
  189. <tx:method name="*"/>
  190. </tx:attributes>
  191. </tx:advice>
  192. <!--配置AOP增强,切面-->
  193. <aop:config>
  194. <aop:advisor advice-ref="txAdvice" pointcut="execution(* com.itheima.service.impl.*.*(..))"/>
  195. </aop:config>
  196. </beans>
  197. springmvc.xml的配置文件的约束:
  198. <?xml version="1.0" encoding="UTF-8"?>
  199. <beans xmlns="http://www.springframework.org/schema/beans"
  200. xmlns:mvc="http://www.springframework.org/schema/mvc"
  201. xmlns:context="http://www.springframework.org/schema/context"
  202. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  203. xsi:schemaLocation="http://www.springframework.org/schema/beans
  204. http://www.springframework.org/schema/beans/spring-beans.xsd
  205. http://www.springframework.org/schema/mvc
  206. http://www.springframework.org/schema/mvc/spring-mvc.xsd
  207. http://www.springframework.org/schema/context
  208. http://www.springframework.org/schema/context/spring-context.xsd">
  209. <!--开启注解扫描-->
  210. <context:component-scan base-package="com.itheima">
  211. <!--配置需要扫描的注解,只需要扫描Controller注解就可以-->
  212. <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
  213. </context:component-scan>
  214. <!--配置视图解析器-->
  215. <bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  216. <property name="prefix" value="/WEB-INF/pages/"/>
  217. <property name="suffix" value=".jsp"/>
  218. </bean>
  219. <!--配置静态资源过滤,不拦截-->
  220. <mvc:resources mapping="/js/**" location="/js/"></mvc:resources>
  221. <mvc:resources mapping="/images/**" location="/images/"></mvc:resources>
  222. <mvc:resources mapping="/css/**" location="/css/"></mvc:resources>
  223. <!--开启SpringMVC的注解驱动支持-->
  224. <mvc:annotation-driven></mvc:annotation-driven>
  225. </beans>
  226. 3. 创建项目的结构:
  227. domain
  228. controller
  229. mapper
  230. service
  231. impl
  232. 4. spring整合SpringMVC, 核心是需要在web.xml配置文件中加载applicationContext.xml文件(也就是配置Spring的监听器):
  233. <!--配置Spring的监听器-->
  234. <listener>
  235. <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  236. </listener>
  237. <!--配置加载类的配置文件-->
  238. <context-param>
  239. <param-name>contextConfigLocation</param-name>
  240. <param-value>classpath:applicationContext.xml</param-value>
  241. </context-param>
  242. <!--配置前端控制器-->
  243. <servlet>
  244. <servlet-name>dispatcherServlet</servlet-name>
  245. <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  246. <!--加载SpringMVC的配置文件-->
  247. <init-param>
  248. <param-name>contextConfigLocation</param-name>
  249. <param-value>classpath:springmvc.xml</param-value>
  250. </init-param>
  251. <load-on-startup>1</load-on-startup>
  252. </servlet>
  253. <servlet-mapping>
  254. <servlet-name>dispatcherServlet</servlet-name>
  255. <url-pattern>/</url-pattern>
  256. </servlet-mapping>
  257. <!--配置编码过滤器-->
  258. <filter>
  259. <filter-name>characterEncoding</filter-name>
  260. <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
  261. <init-param>
  262. <param-name>encoding</param-name>
  263. <param-value>UTF-8</param-value>
  264. </init-param>
  265. </filter>
  266. <filter-mapping>
  267. <filter-name>characterEncoding</filter-name>
  268. <url-pattern>/*</url-pattern>
  269. </filter-mapping>
  270. 5. 在Controller中注入service,测试是否整合成功,如果正常访问并输出,则说明spring整合springMVC成功
  271. 6. Mybatis的配置
  272. <?xml version="1.0" encoding="UTF-8"?>
  273. <!DOCTYPE configuration
  274. PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  275. "http://mybatis.org/dtd/mybatis-3-config.dtd">
  276. <configuration>
  277. <!--配置环境-->
  278. <environments default="mysql">
  279. <environment id="mysql">
  280. <transactionManager type="JDBC"></transactionManager>
  281. <dataSource type="POOLED">
  282. <property name="driver" value="com.mysql.jdbc.Driver"/>
  283. <property name="url" value="jdbc:mysql://localhost:3306/ssm"/>
  284. <property name="username" value="root"/>
  285. <property name="password" value="nrblwbb7"/>
  286. </dataSource>
  287. </environment>
  288. </environments>
  289. <!--引入映射配置文件-->
  290. <mappers>
  291. <package name="com.itheima.mapper" />
  292. </mappers>
  293. </configuration>
  294. 7. spring整合mybatis
  295. mybatis的配置文件总共包含了两个部分,一个是环境的配置,包括事务和数据源,这两个部分交给spring,最后还有一个映射配置文件,也交给spring去整合,最后mybatis的配置文件就可以删除了.
  296. 在spring的配置文件中配置
  297. 连接池
  298. <!--配置c3p0连接池-->
  299. <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
  300. <property name="driverClass" value="com.mysql.jdbc.Driver"/>
  301. <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/ssm"/>
  302. <property name="user" value="root"/>
  303. <property name="password" value="nrblwbb7"/>
  304. </bean>
  305. 配置sqlSessionFactory工厂
  306. <!--配置SqlSessionFactory-->
  307. <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
  308. <property name="dataSource" ref="dataSource"/>
  309. </bean>
  310. 配置mapper接口所在的包
  311. <!--配置映射接口所在的包-->
  312. <bean id="mapperScanner" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
  313. <property name="basePackage" value="com.itheima.mapper"/>
  314. </bean>
  315. 8. 配置Spring的事务管理
  316. <!--配置事务管理器-->
  317. <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
  318. <property name="dataSource" ref="dataSource"/>
  319. </bean>
  320. <!--配置事务通知-->
  321. <tx:advice id="txAdvice" transaction-manager="transactionManager">
  322. <tx:attributes>
  323. <tx:method name="find*" read-only="true"/>
  324. <tx:method name="*"/>
  325. </tx:attributes>
  326. </tx:advice>
  327. <!--配置AOP增强,切面-->
  328. <aop:config>
  329. <aop:advisor advice-ref="txAdvice" pointcut="execution(* com.itheima.service.impl.*.*(..))"/>
  330. </aop:config>

log4j日志

  1. 1. 日志级别:
  2. trace --> debug --> info --> warn --> error --> fatal

提供了两个模板,一个是mybatis使用注解,一个mybatis使用xml,可以去下载查看
https://www.jianguoyun.com/p/DTyTbr0Q7sKPBxj2_nk

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号