springmvc+spring+mybatis整合

合集下载

SpringMVC+Spring+Hibernate框架整合原理,作用及使用方法

SpringMVC+Spring+Hibernate框架整合原理,作用及使用方法

SpringMVC+Spring+Hibernate框架整合原理,作⽤及使⽤⽅法SSM框架是spring MVC ,spring和mybatis框架的整合,是标准的MVC模式,将整个系统划分为表现层,controller层,service层,DAO层四层使⽤spring MVC负责请求的转发和视图管理spring实现业务对象管理,mybatis作为数据对象的持久化引擎原理:SpringMVC:1.客户端发送请求到DispacherServlet(分发器)2.由DispacherServlet控制器查询HanderMapping,找到处理请求的Controller3.Controller调⽤业务逻辑处理后,返回ModelAndView4.DispacherSerclet查询视图解析器,找到ModelAndView指定的视图5.视图负责将结果显⽰到客户端Spring:我们平时开发接触最多的估计就是IOC容器,它可以装载bean(也就是我们中的类,当然也包括service dao⾥⾯的),有了这个机制,我们就不⽤在每次使⽤这个类的时候为它初始化,很少看到关键字new。

另外spring的aop,事务管理等等都是我们经常⽤到的。

Mybatis:mybatis是对jdbc的封装,它让数据库底层操作变的透明。

mybatis的操作都是围绕⼀个sqlSessionFactory实例展开的。

mybatis通过配置⽂件关联到各实体类的Mapper⽂件,Mapper⽂件中配置了每个类对数据库所需进⾏的sql语句映射。

在每次与数据库交互时,通过sqlSessionFactory拿到⼀个sqlSession,再执⾏sql命令。

使⽤⽅法:要完成⼀个功能:1. 先写实体类entity,定义对象的属性,(可以参照数据库中表的字段来设置,数据库的设计应该在所有编码开始之前)。

2. 写Mapper.xml(Mybatis),其中定义你的功能,对应要对数据库进⾏的那些操作,⽐如 insert、selectAll、selectByKey、delete、update等。

ssm总结

ssm总结

ssm总结SSM总结在现代社会中,随着信息技术的不断发展,软件系统的应用范围越来越广泛,由此衍生出的软件开发框架也层出不穷。

SSM(Spring + SpringMVC + MyBatis)作为一种主流的JavaWeb开发框架,以其高效的性能和灵活的配置而备受开发者青睐。

本文将对SSM框架进行总结,深入探讨其核心组件、特点以及项目实践。

一、SSM框架的介绍SSM框架是由Spring、SpringMVC和MyBatis三个独立的框架整合而成的。

Spring是一个轻量级的Java开发框架,通过依赖注入和面向切面编程提供了强大的基础设施支持。

SpringMVC是一个基于MVC设计模式的Web框架,通过处理器映射、拦截器等机制实现了灵活的URL 请求处理。

MyBatis是一个持久层框架,通过SQL映射配置文件和对象关系映射(ORM)技术实现了Java对象与数据库表之间的转换。

SSM框架的核心目标是提高开发效率、降低维护成本和提升系统性能。

通过Spring的依赖注入和面向切面编程,我们可以实现代码的解耦和复用,提高代码的可维护性。

SpringMVC的强大拦截器和处理器映射能力使我们可以灵活地处理URL请求和生成用户友好的页面。

MyBatis通过灵活的SQL映射配置文件和ORM技术,使数据库操作变得简单高效,提高系统性能。

二、SSM框架的特点1. 灵活性:SSM框架提供了各种灵活的配置选项,可以根据项目需求对框架进行定制化配置。

开发者可以根据实际情况选择使用Spring的Bean注入、IOC容器,SpringMVC的拦截器、处理器映射,以及MyBatis的动态SQL、缓存等功能。

2. 易学易用:SSM框架的学习曲线相对较低,尤其对于有JavaWeb开发基础的开发者来说。

框架提供了丰富的文档和示例代码,并且社区活跃,问题能够及时得到解决。

3. 高效性:SSM框架通过各种优化手段提高了系统的性能。

Spring通过IOC和AOP减少了代码的冗余和耦合,提高了系统的可维护性;SpringMVC通过拦截器和处理器映射机制提高了URL请求的处理效率;MyBatis通过缓存和ORM技术减少了数据库查询的次数,提高了系统的响应速度。

spring整合mybatis错误:classpathresource[configspr。。。

spring整合mybatis错误:classpathresource[configspr。。。

spring整合mybatis错误:classpathresource[configspr。

spring 整合Mybatis运⾏环境:jdk1.7.0_17+tomcat 7 + spring:3.2.0 +mybatis:3.2.7+ eclipse 错误:class path resource [config/spring/springmvc.xml] cannot be opened because it does not exist 错误原因:找不到我的springmvc.xml,在下⾯web.xml中是我引⽤路径,⽹上找到问题classpath指向路径不是resource路径,所以⼀直找不到我的xml⽂件, classpath:到你的class路径中查找⽂件, classpath*:不仅包含class的路径,还包括jar⽂件中(class路径)进⾏查找 解决办法:在classpath后⾯在上“*” 可解决问题,“classpath*:springmvc.xml” 错误代码:1 2017-04-05 08:15:10 [org.springframework.web.servlet.DispatcherServlet]-[INFO] FrameworkServlet 'springmvc': initialization started2 2017-04-05 08:15:10 [org.springframework.web.context.support.XmlWebApplicationContext]-[INFO] Refreshing WebApplicationContext for namespace 'springmvc-servlet': startup date [Wed Apr 05 08:15:10 CST 2017]; parent: Root WebApplica3 2017-04-05 08:15:10 [org.springframework.beans.factory.xml.XmlBeanDefinitionReader]-[INFO] Loading XML bean definitions from class path resource [springmvc.xml]4 2017-04-05 08:15:10 [org.springframework.web.servlet.DispatcherServlet]-[ERROR] Context initialization failed5 org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [springmvc.xml]; nested exception is java.io.FileNotFoundException: class path resource [springmvc.xml] canno6 at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:341)7 at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302)8 at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:174)9 at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:209)10 at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:180)11 at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:125)12 at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:94)13 at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:131)14 at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:537)15 at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:451)16 at org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:647)17 at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:598)18 at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:661)19 at org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:517)20 at org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:458)21 at org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:138)22 at javax.servlet.GenericServlet.init(GenericServlet.java:160)23 at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1280)24 at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1193)25 at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:865)26 at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:136)27 at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)28 at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)29 at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)30 at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)31 at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)32 at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)33 at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)34 at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041)35 at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603)36 at .JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)37 at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)38 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)39 at ng.Thread.run(Thread.java:722)40 Caused by: java.io.FileNotFoundException: class path resource [springmvc.xml] cannot be opened because it does not exist41 at org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:157)42 at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:328)43 ... 33 more 相关代码:web.xml 配置:1<?xml version="1.0" encoding="UTF-8"?>2<web-app xmlns:xsi="/2001/XMLSchema-instance" xmlns="/xml/ns/javaee" xsi:schemaLocation="/xml/ns/javaee /xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" 3<display-name>Springmvc_Mybits_store</display-name>4<!-- 加载spring容器 -->5<context-param>6<param-name>contextConfigLocation</param-name>7<param-value>classpath:applicationContext-*.xml</param-value>8</context-param>9<!-- 监听器,扫描通配符 -->10<listener>11<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>12</listener>13<!-- 前端控制器配置 -->14<servlet>15<servlet-name>springmvc</servlet-name>16<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>17<!--加载springmvc.xml配置-->18<init-param>19<param-name>contextConfigLocation</param-name>20<param-value>classpath:springmvc.xml</param-value>21</init-param>22</servlet>23<!-- servlet映射 -->24<servlet-mapping>25<servlet-name>springmvc</servlet-name>26<url-pattern>*.action</url-pattern>27</servlet-mapping>28<welcome-file-list>29<welcome-file>index.html</welcome-file>30<welcome-file>index.htm</welcome-file>31<welcome-file>index.jsp</welcome-file>32<welcome-file>default.html</welcome-file>33<welcome-file>default.htm</welcome-file>34<welcome-file>default.jsp</welcome-file>35</welcome-file-list>36</web-app>。

springboot整合mybatis基于注解开发传入对象

springboot整合mybatis基于注解开发传入对象

springboot整合mybatis基于注解开发传入对象Spring Boot是一个用于构建基于Spring的应用程序的框架,而MyBatis是一个非常流行的Java持久层框架。

利用注解是一种非常简洁的开发方式,可以减少繁琐的配置,提高代码的可读性和易维护性。

本文将介绍如何使用Spring Boot整合MyBatis基于注解开发传入对象。

首先,我们需要在POM文件中添加Spring Boot和MyBatis的相关依赖。

```xml<dependencies><!-- Spring Boot Starter --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><!-- MyBatis Starter --><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.2.0</version></dependency><!-- MySQL Connector --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.11</version></dependency></dependencies>```接下来,我们需要配置数据库连接和MyBatis的相关配置。

《Java EE企业级应用开发教程(Spring+Spring MVC+MyBatis)》_课后习题

《Java EE企业级应用开发教程(Spring+Spring MVC+MyBatis)》_课后习题

第一章【思考题】1、请简述Spring框架的优点。

2、请简述什么是Spring的IoC和DI。

【答案】1、Spring框架的优点如下:(1)非侵入式设计:Spring是一种非侵入式(non-invasive)框架,它可以使应用程序代码对框架的依赖最小化。

(2)方便解耦、简化开发:Spring就是一个大工厂,可以将所有对象的创建和依赖关系的维护工作都交给Spring容器管理,大大的降低了组件之间的耦合性。

(3)支持AOP:Spring提供了对AOP的支持,它允许将一些通用任务,如安全、事务、日志等进行集中式处理,从而提高了程序的复用性。

(4)支持声明式事务处理:只需要通过配置就可以完成对事务的管理,而无需手动编程。

(5)方便程序的测试:Spring提供了对Junit4的支持,可以通过注解方便的测试Spring 程序。

(6)方便集成各种优秀框架:Spring不排斥各种优秀的开源框架,其内部提供了对各种优秀框架(如:Struts、Hibernate、MyBatis、Quartz等)的直接支持。

(7)降低了Java EE API的使用难度:Spring对Java EE开发中非常难用的一些API (如:JDBC、JavaMail等),都提供了封装,使这些API应用难度大大降低。

2、IoC的全称是Inversion of Control,中文名称为控制反转。

控制反转就是指在使用Spring框架之后,对象的实例不再由调用者来创建,而是由Spring容器来创建,Spring 容器会负责控制程序之间的关系,而不是由调用者的程序代码直接控制。

这样,控制权由应用代码转移到了Spring容器,控制权发生了反转。

DI的全称是Dependency Injection,中文称之为依赖注入。

它与控制反转(IoC)的含义相同,只不过这两个称呼是从两个角度描述的同一个概念。

从Spring容器的角度来看,Spring容器负责将被依赖对象赋值给调用者的成员变量,这相当于为调用者注入了它依赖的实例,这就是Spring的依赖注入。

springboot多模块化整合mybatis,mapper自动注入失败问题及解决

springboot多模块化整合mybatis,mapper自动注入失败问题及解决
@SpringBootApplication @EnableAutoConfiguration(exclude = {DataSourceAutoConfiguration.class}) @MapperScan("com.ten.mapper") class LcWebApplication {
public static void main(String[] args) { SpringApplication.run(LcWebApplication.class, args);
springboot mapper注入失败的一种原因 具体情况是 解决办法
springboot多模块化整合 mybatis,mapper自动注入失败
问题
启动类添加@MapperScan或@ComponentScan,mapper类添加@Mapper或@Repository
==> Consider defining a bean of type 'erMapper' in your configuration.

Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required in spring mock mvc test for spring boot with mybatis
解决
手动装配dataSource
启动类:
package com.ten; import com.alibaba.druid.pool.DruidDataSource; import org.mybatis.spring.annotation.MapperScan; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; import org.springframework.context.annotation.Bean; import ponentScan; import org.springframework.core.env.Environment; import ponent; import javax.sql.DataSource;

ssm框架技术题库及答案交流

ssm框架技术题库及答案交流

ssm框架技术题库及答案交流SSM框架,即Spring、SpringMVC和MyBatis的组合,是Java开发中常用的轻量级企业应用开发框架。

下面我将提供一些SSM框架技术题库及答案,供大家学习和交流。

1. Spring框架的核心是什么?- 答案:Spring框架的核心是控制反转(IoC)和面向切面编程(AOP)。

2. SpringMVC是如何实现请求的映射的?- 答案:SpringMVC通过注解@Controller和@RequestMapping来实现请求的映射。

3. MyBatis与JDBC的区别是什么?- 答案:MyBatis是一个半自动的ORM框架,它允许开发者编写SQL语句并映射到Java对象,而JDBC是一个全手动的数据库访问API,需要手动编写SQL语句并处理结果集。

4. Spring框架中的Bean是什么?- 答案:Spring框架中的Bean是构成应用程序的主要组件,它们由Spring IoC容器进行管理。

5. SpringMVC中的DispatcherServlet的作用是什么?- 答案:DispatcherServlet是SpringMVC的前端控制器,它负责将请求路由到相应的处理器。

6. 什么是AOP?在Spring框架中如何使用?- 答案:AOP(面向切面编程)是一种编程范式,它允许开发者将横切关注点(如日志记录、事务管理等)与业务逻辑分离。

在Spring框架中,可以通过@Aspect注解和相关API来实现AOP。

7. MyBatis的配置文件有哪些?- 答案:MyBatis的配置文件主要包括mybatis-config.xml(全局配置文件)和映射文件(Mapper XML文件或注解)。

8. Spring框架的事务管理是如何实现的?- 答案:Spring框架通过声明式事务管理来实现事务控制,主要通过@Transactional注解来声明事务的边界和特性。

9. SpringMVC的视图解析器有哪些类型?- 答案:SpringMVC的视图解析器主要有InternalResourceViewResolver(用于解析JSP视图)、BeanNameViewResolver等。

Java EE企业级应用开发(SSM) (11)

Java EE企业级应用开发(SSM) (11)
实现步骤: 1. 导入案例所需要的坐标 2. 创建User实体类 3. 创建UserMapper接口 4. 创建UserService接口和UserServiceImpl实现类 5. 创建UesrController类 6. 编写映射文件UserMapper.xml 7. 编写Spring核心配置文件applicationContext.xml 8. 编写web.xml配置文件 9. 编写SpringMVC核心配置文件spring-mvc.xml 10. 打开浏览器,进行测试
14
14
案例步骤详解
1. 导入案例所需要的坐标
Spring框架坐标
Spring JDBC坐标
mysql数据库驱动坐 标
MyBatis框架坐 标
MyBatis整合Spring坐标
单元测试坐标
15
案例步骤详解
1. 导入案例所需要的坐标
SpringMVC框架坐 标
jackson坐标
16
案例步骤详解
2. 创建User实体类
23
23
案例步骤详解
9. 编写SpringMVC核心配置文件spring-mvc.xml
24
24
案例步骤详解
10. 打开浏览器,进行测试
直接通过浏览器访问该路径 后台响应回来的json格式的数据
【作业4】使用三大框架25整合实现账2户5 的CRUD
接下来,咱们一起来看一看,通过一个案例,来学会Spring + MyBatis框架的 整合。
3
案例实现步骤
【课程案例】1101:MyBatis和Spring整合
实现步骤: 1. 导入案例所需要的坐标 2. 创建User实体类 3. 创建UserMapper接口 4. 创建UserService接口和UserServiceImpl实现类 5. 编写映射文件UserMapper.xml 6. 编写Spring核心配置文件applicationContext.xml 7. 编写测试类UserController,进行测试
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

springmvc+spring+mybatis整合首先在整合这个框架的时候,想想其一般的步骤是怎样的,先有个步骤之后,不至于在后面的搞混了,这样在整合的时候也比较清晰些。

然后我们就细细的一步一步来整合。

1 创建一个Web项目。

2 导入Mybatis3、Spring4、SpringMVC4、连接数据库(我使用的数据库是mysql)的jar包。

我所用的包:spring-websocket-4.2.0.RELEASE.jar3 创建Mybatis3、Spring4、SpringMVC4、连接数据库的配置文件。

4 配置web.xml1<?xml version="1.0" encoding="UTF-8"?>2<web-app version="2.5"3xmlns="/xml/ns/javaee"4xmlns:xsi="/2001/XMLSchema-instance" 5xsi:schemaLocation="/xml/ns/javaee6/xml/ns/javaee/web-app_2_5.xsd">78<!-- 告知javaEE容器,有哪些内容需要添加到上下文中去--> 9<context-param>10<param-name>contextConfigLocation</param-name> 11<param-value>12/WEB-INF/classes/applicationContext.xml,13<!-- /WEB-INF/classes/mvc-servlet.xml -->14</param-value>15</context-param>161718<!-- 加载LOG4J -->19<context-param>20<param-name>log4jConfigLocation</param-name> 21<param-value>/WEB-INF/log4j.xml</param-value>22</context-param>2324<context-param>25<param-name>log4jRefreshInterval</param-name> 26<param-value>60000</param-value>27</context-param>2829<!-- 动态设置项目的运行路径-->30<context-param>31<param-name>webAppRootKey</param-name>32<param-value>ssm.root</param-value>33</context-param>3435<!-- 配置静态资源-->36<servlet-mapping>37<servlet-name>default</servlet-name>38<url-pattern>/static/*</url-pattern>39</servlet-mapping>404142<!-- 配置springmvc的前端控制器-->43<servlet>44<servlet-name>mvc</servlet-name>45<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>46<!-- 默认情况下:DispatcherServlet会寻找WEB-INF下,命名规范为[servlet-name]-servlet.xml文件。

如:在上例中,它就会找/WEB-INF/spring-servlet.xml47如果需要修改,需要在web.xml中的<servlet>标记中增加<init-param>。

</init-param>:-->48<init-param>49<param-name>contextConfigLocation</param-name>50<param-value>/WEB-INF/classes/mvc-servlet.xml</param-value>51</init-param>52</servlet>53<servlet-mapping>54<servlet-name>mvc</servlet-name>55<url-pattern>/</url-pattern>56</servlet-mapping>5758<!-- spring框架提供的字符集过滤器-->59<!-- spring Web MVC框架提供了org.springframework.web.filter.CharacterEncodingFilter用于解决POST方式造成的中文乱码问题-->60<filter>61<filter-name>encodingFilter</filter-name>62<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>63<init-param>64<param-name>encoding</param-name>65<param-value>UTF-8</param-value>66</init-param>67<!-- force强制,促使-->68<init-param>69<param-name>forceEncoding</param-name>70<param-value>true</param-value>71</init-param>72</filter>73<filter-mapping>74<filter-name>encodingFilter</filter-name>75<url-pattern>/*</url-pattern>76</filter-mapping>7778<!-- 登录过滤器-->79<filter>80<filter-name>loginFilter</filter-name>81<filter-class>com.cy.ssm.filter.LoginFilter</filter-class>82</filter>83<filter-mapping>84<filter-name>loginFilter</filter-name>85<url-pattern>/*</url-pattern>86</filter-mapping>87<!-- 监听器-->88<listener>89<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 90</listener>9192<listener>93<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>94</listener>9596<welcome-file-list>97<welcome-file>index.jsp</welcome-file>98</welcome-file-list>99</web-app>5 datasource.properties 连接数据库1 jdbc.driver=com.mysql.jdbc.Driver2 jdbc.url=jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=UTF-83 ername=root4 jdbc.password=root6 mybatis.cfg.xml文件<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE configuration PUBLIC "-///DTD Config 3.0//EN""/dtd/mybatis-3-config.dtd" ><configuration></configuration>7 mvc-servlet.xml1<?xml version="1.0" encoding="UTF-8"?>2<beans xmlns="/schema/beans"3xmlns:xsi="/2001/XMLSchema-instance"xmlns:context="/schema/context"4xmlns:mvc="/schema/mvc"5xsi:schemaLocation="/schema/beans6/schema/beans/spring-beans-3.0.xsd7/schema/context/schema/context/spring-context-3.0.xsd8/schema/mvc9/schema/mvc/spring-mvc-3.0.xsd">1011<!-- 启动注解,注册服务,如验证框架、全局类型转换器-->12<mvc:annotation-driven/>131415<!-- 启动自动扫描-->16<context:component-scan base-package="com.cy.ssm">17<!-- 制定扫包规则,只扫描使用@Controller注解的JAVA类-->18<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/> 19</context:component-scan>202122<!-- 配置视图解析器-->23<!--24prefix和suffix:查找视图页面的前缀和后缀(前缀[逻辑视图名]后缀),25比如传进来的逻辑视图名为WEB-INF/jsp/hello,则该该jsp视图页面应该存放在“WEB-INF/jsp/hello.jsp”;-->26<bean class="org.springframework.web.servlet.view.UrlBasedViewResolver">27<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"></property> 28<property name="prefix" value="/"></property><!-- 我这里的视图直接放在WebRoot下的-->29<property name="suffix" value=".jsp"></property>30</bean>31</beans>8 applicationContext.xml1<?xml version="1.0" encoding="UTF-8"?>2<beans xmlns="/schema/beans"3xmlns:xsi="/2001/XMLSchema-instance"xmlns:context="/schema/context"4xmlns:aop="/schema/aop"xmlns:tx="/schema/tx"5xsi:schemaLocation="/schema/beans6/schema/beans/spring-beans-3.0.xsd7/schema/aop8/schema/aop/spring-aop-3.0.xsd9/schema/tx10/schema/tx/spring-tx-3.1.xsd11/schema/context12/schema/context/spring-context-4.2.xsd">131415<!-- 开启自动扫包-->16<context:component-scan base-package="com.cy.ssm">17<!--制定扫包规则,不扫描@Controller注解的JAVA类,其他的还是要扫描-->18<context:exclude-filter type="annotation"expression="org.springframework.stereotype.Controller"/>19</context:component-scan>2021<!-- 启动AOP支持-->22<aop:aspectj-autoproxy/>2324<!-- 引入外部数据源配置信息-->25<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">26<property name="locations">27<value>classpath:datasource.properties</value>28</property>29</bean>3031<!-- 配置数据源-->32<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 33<property name="driverClassName" value="${jdbc.driver}"></property>34<property name="url" value="${jdbc.url}"></property>35<property name="username" value="${ername}"></property>36<property name="password" value="${jdbc.password}"></property>37</bean>383940<!-- 配置Session工厂-->41<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">42<property name="dataSource" ref="dataSource"></property>43<!-- 加载mybatis.cfg.xml文件-->44<property name="configLocation" value="classpath:mybatis.cfg.xml"></property>45<!-- 自动扫描需要定义类别名的包,将包内的JAVA类的类名作为类别名-->46<property name="typeAliasesPackage" value="com.cy.ssm.beans"></property>47</bean>4849<!-- 自动扫描所有的Mapper接口与文件-->50<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">51<property name="basePackage" value="com.cy.ssm.mapper"></property>52</bean>5354<!-- 配置事务管理器-->55<bean id="txManager"56class="org.springframework.jdbc.datasource.DataSourceTransactionManager">57<property name="dataSource" ref="dataSource"></property>58</bean>5960<!-- 定义个通知,指定事务管理器-->61<tx:advice id="txAdvice" transaction-manager="txManager">62<tx:attributes>63<tx:method name="delete*" propagation="REQUIRED" read-only="false"64rollback-for="ng.Exception"/>65<tx:method name="save*" propagation="REQUIRED" read-only="false"66rollback-for="ng.Exception"/>67<tx:method name="insert*" propagation="REQUIRED" read-only="false" 68rollback-for="ng.Exception"/>69<tx:method name="update*" propagation="REQUIRED" read-only="false" 70rollback-for="ng.Exception"/>71<tx:method name="load*" propagation="SUPPORTS" read-only="true"/> 72<tx:method name="find*" propagation="SUPPORTS" read-only="true"/> 73<tx:method name="search*" propagation="SUPPORTS" read-only="true"/> 74<tx:method name="select*" propagation="SUPPORTS" read-only="true"/> 75<tx:method name="get*" propagation="SUPPORTS" read-only="true"/> 76</tx:attributes>77</tx:advice>7879<aop:config>80<!-- 配置一个切入点-->81<aop:pointcut id="serviceMethods" expression="execution(*com.cy.ssm.service.impl.*ServiceImpl.*(..))"/>82<aop:advisor advice-ref="txAdvice" pointcut-ref="serviceMethods"/>83</aop:config>8485</beans>9 配置文件都差不多配置好了,接下来就写个测试的。

相关文档
最新文档