springmvc+spring+mybatis整合
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(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运⾏环境: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基于注解开发传入对象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)》_课后习题
第一章【思考题】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自动注入失败问题及解决
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框架,即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)
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,进行测试
SpringMVC+Spring+Mybatis框架配置详细步骤(eclipse普通版)
SSI框架搭建SpringMVC3.1.2+Spring3.1.2+Mybatis3.2.6编号:SSI-SMVC3-S3-I3版本:V1.0级别:公开编写时间:2016-02-17目录1 导言 (1)1.1 目的 (1)1.2 范围 (1)1.3 说明 (1)2 搭建SpringMVC (2)2.1 搭建所需jar包 (2)2.2 其他依赖包 (3)2.3 搭建步骤 (4)2.3.1 创建项目 (4)2.3.2 导入jar包 (6)2.3.3 配置web.xml (7)2.3.4 配置spring-servlet.xml (9)2.3.5 配置applicationContext.xml (10)2.3.6 配置log4j.properties (10)3 整合mybatis (11)3.1 整合所需jar包 (11)3.2 其他依赖包 (11)3.3 整合步骤 (11)3.3.1 导入jar包 (11)3.3.2 配置config.properties (12)3.3.3 配置spring-dataSource.xml (12)3.3.4 配置applicationContext.xml (15)3.3.5 配置mybatis-config.xml (16)3.3.6 创建实体model (17)3.3.7 创建实例化dao (19)3.3.8 创建业务服务service (21)3.3.9 创建控制层controller (23)3.3.10 页面代码 (28)3.3.11 启动项目 (37)1导言1.1 目的本文档是根据个人的工作经验搭建的轻量级SSI框架,也是实际应用中比较全面的基础框架,用于指导SSI框架初学者学习搭建SSI框架,希望能给各位使用者提供帮助,同时也希望朋友们尽量去帮助其他人。
1.2 范围本次框架搭建的版本是SpringMVC3.1.2+Spring3.1.2+Mybatis3.2.6,数据库采用的是mysql,在eclipse开发工具下搭建直接搭建的web项目,页面采用的是h5,ajax实现数据访问,如果页面为jsp等,则修改controller的返回类型即可。
SpringMvc与Mybatis整合
SpringMvc与Mybatis整合1.目的学习SpringMvc与Mybatis怎样整合在一起。
2.环境准备1)jdk版本:jdk1.7或jdk1.82)IDE:eclipse3)Tomcat:Apache Tomcat v7.04)数据库:mysql及navicat for mysql3.整合3.1.新建一个web项目注意:这里选择Dynamic Web Module 2.5 ,因为2.5是主流,默认在eclipse的WebContent \WEB-INF\目录下创建web.xml的,而3.0则默认没有web.xml文件3.2.添加整合所需的jar包注:所有的包已经放到文件jar里面了3.3.web.xml配置3.3.1.代码如下:<?xml version="1.0"encoding="UTF-8"?><web-app xmlns:xsi="/2001/XMLSchema-instance /schema/cache/springmodules-cache.xsd /schema/cache/springmodules-ehcache.xsd"xmlns="/xml/ns/javaee"xsi:schemaLocation="/xml/ns/javaee /xml/ns/javaee/web-app_2_5.xsd"id="WebApp_ID"version="2.5"><display-name>SpringMvc-Mybatis</display-name><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list><!-- Spring配置文件 --><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:applicationContext.xml</param-value></context-param><!-- 编码过滤器 --><filter><filter-name>encodingFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><async-supported>true</async-supported><init-param><param-name>encoding</param-name><param-value>UTF-8</param-value></init-param></filter><filter-mapping><filter-name>encodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping><!-- Spring监听器 --><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><!-- 添加对springmvc的支持 --><servlet><servlet-name>springMVC</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</se rvlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring-mvc.xml</param-value> </init-param><load-on-startup>1</load-on-startup><async-supported>true</async-supported></servlet><servlet-mapping><servlet-name>springMVC</servlet-name><url-pattern>*.do</url-pattern></servlet-mapping></web-app>3.3.2.代码详解:1)Spring配置文件:applicationContext.xml(下面会介绍)2)编码过滤器:选择UTF-8,解决中文乱码问题3)Spring监听器:org.springframework.web.context.ContextLoaderListener4)添加对springmvc的支持SpringMVC配置文件:spring-mvc.xml(下面会介绍)3.4.spring-mvc.xml配置3.4.1.代码如下:<?xml version="1.0"encoding="UTF-8"?><beans xmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xmlns:p="/schema/p"xmlns:aop="/schema/aop"xmlns:context="/schema/context"xmlns:jee="/schema/jee"xmlns:tx="/schema/tx"xsi:schemaLocation="/schema/aop/schema/aop/spring-aop-4.0.xsd/schema/beans/schema/beans/spring-beans-4.0.xsd/schema/context/schema/context/spring-context-4.0.xsd /schema/jee/schema/jee/spring-jee-4.0.xsd/schema/tx/schema/tx/spring-tx-4.0.xsd"><!-- 使用注解的包,包括子集 --><context:component-scan base-package="com.java1234.controller"/><!-- 视图解析器 --><bean id="viewResolver"class="org.springframework.web.servlet.view.InternalResourceViewReso lver"><property name="prefix"value="/"/><property name="suffix"value=".jsp"></property></bean></beans>3.4.2.代码详解:1)使用注解的包,包括子集:自动扫描"com.java1234.controller"包下的所有类,作为controller层的类2)视图解析器:controller层返回的数据会解析到相应的 .jsp里面3.5.applicationContext.xml配置3.5.1.代码如下:<?xml version="1.0"encoding="UTF-8"?><beans xmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xmlns:p="/schema/p"xmlns:aop="/schema/aop"xmlns:context="/schema/context"xmlns:jee="/schema/jee"xmlns:tx="/schema/tx"xsi:schemaLocation="/schema/aop/schema/aop/spring-aop-4.0.xsd/schema/beans/schema/beans/spring-beans-4.0.xsd/schema/context/schema/context/spring-context-4.0.xsd /schema/jee/schema/jee/spring-jee-4.0.xsd/schema/tx/schema/tx/spring-tx-4.0.xsd"><!-- 自动扫描 --><context:component-scan base-package="com.java1234.dao"/><context:component-scan base-package="com.java1234.service"/><!-- 配置数据源 --><bean id="dataSource"class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName"value="com.mysql.jdbc.Driver"/><property name="url"value="jdbc:mysql://localhost:3306/db_mybatis2"/><property name="username"value="root"/><property name="password"value="123456"/></bean><!-- 配置mybatis的sqlSessionFactory --><bean id="sqlSessionFactory"class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource"ref="dataSource"/><!-- 自动扫描mappers.xml文件 --><property name="mapperLocations"value="classpath:com/java1234/mappers/*.xml"></property><!-- mybatis配置文件 --><property name="configLocation"value="classpath:mybatis-config.xml"></property></bean><!-- DAO接口所在包名,Spring会自动查找其下的类 --><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage"value="com.java1234.dao"/><property name="sqlSessionFactoryBeanName"value="sqlSessionFactory"></property></bean><!-- (事务管理)transaction manager, use JtaTransactionManager for global tx --><bean id="transactionManager"class="org.springframework.jdbc.datasource.DataSourceTransactionMana ger"><property name="dataSource"ref="dataSource"/></bean><!-- 配置事务通知属性 --><tx:advice id="txAdvice"transaction-manager="transactionManager"> <!-- 定义事务传播属性 --><tx:attributes><tx:method name="insert*"propagation="REQUIRED"/><tx:method name="update*"propagation="REQUIRED"/><tx:method name="edit*"propagation="REQUIRED"/><tx:method name="save*"propagation="REQUIRED"/><tx:method name="add*"propagation="REQUIRED"/><tx:method name="new*"propagation="REQUIRED"/><tx:method name="set*"propagation="REQUIRED"/><tx:method name="remove*"propagation="REQUIRED"/><tx:method name="delete*"propagation="REQUIRED"/><tx:method name="change*"propagation="REQUIRED"/><tx:method name="get*"propagation="REQUIRED"read-only="true"/><tx:method name="find*"propagation="REQUIRED"read-only="true"/><tx:method name="load*"propagation="REQUIRED"read-only="true"/><tx:method name="*"propagation="REQUIRED"read-only="true" /></tx:attributes></tx:advice><!-- 配置事务切面 --><aop:config><aop:pointcut id="serviceOperation"expression="execution(* com.java1234.service.*.*(..))"/> <aop:advisor advice-ref="txAdvice"pointcut-ref="serviceOperation"/></aop:config></beans>3.5.2.代码详解:1)自动扫描:自动扫描"com.java1234.dao"和"com.java1234.service"包下的所有类,作为dao层和service层的类2)配置数据源:就是连接数据库,包括driverClassName、url、username、password这四项3)整合最重要①配置mybatis的sqlSessionFactory:作为整合的桥梁,以前我们要自己获取,现在由spring管理,简单方便"org.mybatis.spring.SqlSessionFactoryBean"由lib目录下的mybatis-spring-1.2.0.jar包提供②引入数据源"dataSource"③自动扫描mappers.xml文件,即映射文件④mybatis配置文件:mybatis-config.xml(下面会介绍)4)DAO接口所在包名,Spring会自动查找其下的类:注入"sqlSessionFactoryBeanName"5)(事务管理):spring用到的,引入数据源"dataSource"6)配置事务通知属性7)配置事务切面注:(关于spring事务管理配置:这里简单介绍了一下,具体介绍网上有很多,这里不详细介绍了,大家想深入了解就百度一下吧)事务在系统服务启动的时候就加载了,一般的,我们把事务配在service层,利用service的业务逻辑借口统一的管理。
ssm框架面试题
ssm框架面试题在软件开发领域,SSM框架是指Spring+SpringMVC+MyBatis三个开源框架的整合。
这三个框架各自具有不同的功能和特点,通过整合使用可以达到更高效、高质量的软件开发。
在SSM框架面试中,面试官常常会问及与SSM框架相关的问题,以下是一些常见的SSM框架面试题目及其答案。
1. 什么是SSM框架?SSM框架是指由Spring、SpringMVC和MyBatis三个开源框架组成的一个整合方案。
它们分别负责实现软件的控制反转(IoC)、面向切面编程(AOP)、Web层的请求分发和处理、持久层的数据访问等功能。
2. Spring框架的主要功能是什么?Spring框架是一个开源的Java平台框架,它的主要功能包括控制反转(IoC)和面向切面编程(AOP)。
控制反转通过管理对象之间的依赖关系,使得对象之间的依赖关系由框架来维护,而不是由开发者来手动管理。
面向切面编程则主要用于处理横切关注点,如事务管理、日志记录等。
3. SpringMVC框架的主要作用是什么?SpringMVC是基于MVC(Model-View-Controller)设计模式的一种Web框架。
它主要用于开发Web应用程序,通过请求分发和处理,将用户请求与具体的处理逻辑进行解耦。
SpringMVC提供了一套机制,用于处理用户请求、封装请求参数、调用业务逻辑处理、返回相应结果等。
4. MyBatis框架的主要特点是什么?MyBatis是一款优秀的持久层框架,它将数据库访问和SQL映射配置进行了解耦。
MyBatis通过XML或注解的方式提供了灵活、简单的SQL映射配置,开发者可以通过配置文件或注解来定义SQL语句,然后通过MyBatis框架将SQL语句与Java对象进行映射。
此外,MyBatis还提供了强大的缓存机制,可以提升数据库访问性能。
5. SSM框架的优点有哪些?SSM框架具有以下优点:- 灵活性:每个框架都可以独立使用,也可以整合使用,根据具体需求进行灵活选择。
spring+spring mvc+mybits框架整合
主要介绍三大框架的整合,至于环境的搭建以及项目的创建可以参考其他资料。
这次整合主要用到两个配置文件:spring-mybatis.xm,包含spring和mybatis的配置文件,还有个是spring-mvc.xml的配置文件,此外有两个资源文件:jdbc.propertis和log4j.properties。
完整的目录结构如下图:本框架中用到的所有jar包都在源码中。
本测试项目中用到的是sqlserver数据库,MyEclipse 8.6和apache-tomcat-7.0.41下来逐一介绍配置文件:1、spring-mybatis.xml这个文件就是用来完成spring和mybatis的整合的。
这里面也没多少行配置,主要的就是自动扫描,自动注入,配置数据库,注释也很详细<?xml version="1.0"encoding="UTF-8"?><beans xmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xmlns:p="/schema/p"xmlns:context="/schema/context"xmlns:mvc="/schema/mvc"xsi:schemaLocation="/schema/beans/schema/beans/spring-beans-3.1.xsd/schema/context/schema/context/spring-context-3.1.xsd/schema/mvc/schema/mvc/spring-mvc-4.0.xsd"><!-- 自动扫描 --><context:component-scan base-package="com.myProcess.study"/><!-- 引入配置文件 --><bean id="propertyConfigurer"class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="location"value="classpath:jdbc.properties"/> </bean><bean id="dataSource"class="mons.dbcp.BasicDataSource"destroy-method="close"><property name="driverClassName"value="${driver}"/><property name="url"value="${url}"/><property name="username"value="${username}"/><property name="password"value="${password}"/><!-- 初始化连接大小 --><property name="initialSize"value="${initialSize}"></property><!-- 连接池最大数量 --><property name="maxActive"value="${maxActive}"></property><!-- 连接池最大空闲 --><property name="maxIdle"value="${maxIdle}"></property><!-- 连接池最小空闲 --><property name="minIdle"value="${minIdle}"></property><!-- 获取连接最大等待时间 --><property name="maxWait"value="${maxWait}"></property></bean><!-- spring和MyBatis完美整合,不需要mybatis的配置映射文件 --><bean id="sqlSessionFactory"class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource"ref="dataSource"/><!-- 自动扫描mapping.xml文件 --><property name="mapperLocations"value="classpath:com/myProcess/study/mapping/*.xml"></property></bean><!-- DAO接口所在包名,Spring会自动查找其下的类 --><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="basePackage"value=".hnust.dao"/><property name="sqlSessionFactoryBeanName"value="sqlSessionFactory"></property></bean><!-- (事务管理)transaction manager, use JtaTransactionManager for global tx --> <bean id="transactionManager"class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource"ref="dataSource"/></bean></beans>2、log4j.propertieslog4j.rootLogger=INFO,Console,File#定义日志输出目的地为控制台log4j.appender.Console=org.apache.log4j.ConsoleAppenderlog4j.appender.Console.Target=System.out#可以灵活地指定日志输出格式,下面一行是指定具体的格式yout = org.apache.log4j.PatternLayoutyout.ConversionPattern=[%c]-%m%n#文件大小到达指定尺寸的时候产生一个新的文件log4j.appender.File = org.apache.log4j.RollingFileAppender#指定输出目录log4j.appender.File.File = logs/ssm.log#定义文件最大大小log4j.appender.File.MaxFileSize = 10MB# 输出所以日志,如果换成DEBUG表示输出DEBUG以上级别日志log4j.appender.File.Threshold = ALLyout = org.apache.log4j.PatternLayoutyout.ConversionPattern =[%p][%d{yyyy-MM-ddHH\:mm\:ss}][%c]%m%n3、spring-mvc.xml主要是自动扫描控制器,视图模式,注解的启动这三个<?xml version="1.0"encoding="UTF-8"?><beans xmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xmlns:p="/schema/p"xmlns:context="/schema/context"xmlns:mvc="/schema/mvc"xsi:schemaLocation="/schema/beans/schema/beans/spring-beans-3.1.xsd/schema/context/schema/context/spring-context-3.1.xsd/schema/mvc/schema/mvc/spring-mvc-4.0.xsd"><!-- 自动扫描该包,使SpringMVC认为包下用了@controller注解的类是控制器 --><context:component-scan base-package="com.myProcess.study.web"/><!--避免IE执行AJAX时,返回JSON出现下载文件 --><bean id="mappingJacksonHttpMessageConverter"class="org.springframework.http.converter.json.MappingJacksonHttpMessageConvert er"><property name="supportedMediaTypes"><list><value>text/html;charset=UTF-8</value></list></property></bean><!-- 启动SpringMVC的注解功能,完成请求和注解POJO的映射 --><beanclass="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAd apter"><property name="messageConverters"><list><ref bean="mappingJacksonHttpMessageConverter"/><!-- JSON转换器 --></list></property></bean><!-- 定义跳转的文件的前后缀,视图模式配置--><beanclass="org.springframework.web.servlet.view.InternalResourceViewResolver"> <!-- 这里的配置我的理解是自动给后面action的方法return的字符串加上前缀和后缀,变成一个可用的url地址 --><property name="prefix"value="/WEB-INF/jsp/"/><property name="suffix"value=".jsp"/></bean><!-- 配置文件上传,如果没有使用文件上传可以不用配置,当然如果不配,那么配置文件中也不必引入上传组件包 --><bean id="multipartResolver"class="monsMultipartResolver"> <!-- 默认编码 --><property name="defaultEncoding"value="utf-8"/><!-- 文件大小最大值 --><property name="maxUploadSize"value="10485760000"/><!-- 内存中的最大值 --><property name="maxInMemorySize"value="40960"/></bean></beans>4、web.xml这里面对spring-mybatis.xml的引入以及配置的spring-mvc的Servlet就是为了完成SSM整合,之前2框架整合不需要在此处进行任何配置。
ssm课程设计总结
ssm课程设计总结一、教学目标本课程的教学目标是使学生掌握SSM(Spring、SpringMVC、MyBatis)框架的基本原理和使用方法,能够独立完成中小型Java Web应用程序的开发。
1.理解Java Web应用程序的基本架构。
2.掌握Spring框架的核心概念,如IoC、AOP等。
3.掌握SpringMVC框架的基本原理和配置方法。
4.掌握MyBatis框架的运行原理和配置方法。
5.能够使用SSM框架独立开发Java Web应用程序。
6.能够根据实际需求,选择合适的SSM框架组件进行整合。
7.能够解决SSM框架在使用过程中遇到的问题。
情感态度价值观目标:1.培养学生对Java Web技术的兴趣,提高自主学习的积极性。
2.培养学生团队协作精神,提高解决实际问题的能力。
二、教学内容本课程的教学内容主要包括SSM框架的三个部分:Spring、SpringMVC和MyBatis。
1.Spring框架:介绍Spring框架的基本概念、原理和常用功能,如IoC、AOP等。
2.SpringMVC框架:介绍SpringMVC框架的基本原理、配置方法和控制器开发。
3.MyBatis框架:介绍MyBatis框架的运行原理、配置方法和 SQL 映射。
4.第1-2周:Java Web应用程序基本架构和Spring框架入门。
5.第3-4周:Spring框架核心概念和常用功能。
6.第5-6周:SpringMVC框架的基本原理和配置方法。
7.第7-8周:MyBatis框架的运行原理和配置方法。
8.第9-10周:SSM框架的整合应用和实际项目案例分析。
三、教学方法本课程采用讲授法、案例分析法、实验法等多种教学方法,以激发学生的学习兴趣和主动性。
1.讲授法:用于讲解SSM框架的基本概念、原理和配置方法。
2.案例分析法:通过分析实际项目案例,使学生更好地理解SSM框架的应用。
3.实验法:安排实验课,让学生动手实践,巩固所学知识。
2022新版JavaEE企业级应用开发教程(Spring+SpringMVC+MyBatis)习题
第1章初识MyBatis框架习题一、填空题1.MyBatis的删除操作在映射文件中是通过配置【<delete>】元素来实现的。
2.MyBatis映射文件中<mapper>元素是配置文件的根元素,它包含一个【namespace 】属性,该属性为这个<mapper>指定了唯一的命名空间。
3.使用MySQL中的【concat()】函数进行字符串拼接,可以有效防止模糊查询时可能出现的SQL注入问题。
4.mybatis-config.xml作为MyBatis的全局配置文件,配置了MyBatis的运行环境等信息,其中主要内容是获取【数据库连接】。
5.【MyBatis 】是当前主流的Java持久层框架之一,它与Hibernate一样,也是一种ORM框架。
二、判断题1.MyBatis映射文件中<mappers>元素是配置文件的根元素,它包含一个namespace属性,该属性为这个<mapper>指定了唯一的命名空间。
(x)2.使用MyBatis框架非常简单,只需在应用程序中引入MyBatis框架lib目录中的全部JAR包以及数据库驱动包即可进行项目运行。
(X )3.ORM就是一种为了解决面向对象与关系型数据库中数据类型不匹配的技术,它通过描述Java对象与数据库表之间的映射关系,自动将Java应用程序中的对象持久化到关系型数据库的表中。
(v )4.MyBatis的更新操作也需要进行事务提交。
(v )5.创建的映射文件中的SQL语句要以面向对象的写法进行书写。
(x )三、选择题1.MyBatis的删除操作有关说发错误的是。
(D )A: MyBatis的删除操作在映射文件中是通过配置<delete>元素来实现的。
B: MyBatis的删除操作也需要进行事务提交。
C: MyBatis的删除操作执行了SqlSession的delete()方法。
D: MyBatis的删除操作和添加操作时,也需要封装整个实体类。
《Java企业应用开发(SSM)》课程标准
《Java企业应用开发(SSM)》课程标准课程名称:Java企业应用开发(SSM)课程代码:3250620适用专业:软件技术专业(软件开发方向)课程性质:专业核心课程学时:96学时(理论: 48 实践: 48)学分:6学分一、课程性质与任务本课程是软件技术专业(软件开发方向)的核心课程,是基于软件项目开发实际生产过程的“工学结合”课程。
通过课程的学习,使学生掌握SSM(Spring+Spring MVC+MyBatis)的基本知识,能用Spring 框架创建包含松散耦合的应用程序组件,能用MyBatis框架实现数据的存储和访问。
同时在实践教学中,培养学生良好的编程习惯,积累解决实际问题的能力,提高学生的职业综合素质。
本课程与其他课程的关系:前导课程包括《网页设计客户端技术》、《Java编程设计基础》、《Java高级程序设计》、《Java Web应用开发》、《关系数据库》等,后续课程包括《Java Web应用实战》。
二、目标与要求(一)总体目标与要求通过应用情景的学习与分析,要求学生能够掌握SSM(Spring+Spring MVC+MyBatis)三大框架的基本知识,能够正确配置和使用SSM框架的整合技术,适应企业级开发的技术需要,为大型项目开发奠定基础。
同时要求学生掌握需求分析、详细设计、系统实现和系统维护等软件开发的各项能力,培养学生较强的团队合作、沟通表达、工作责任心、职业道德与规范等综合素质,为学生以后从事更专业化的软件开发工作奠定基础。
(二)具体目标与要求1、知识目标与要求本课程为理实一体课程,理论知识的传授和操作技能的培养贯彻教学的始终。
课程的知识目标与要求如下:(1)掌握Spring框架技术,熟悉Spring框架技术的概念,掌握Spring的核心机制:IoC与AOP技术。
(2)熟悉Spring MVC框架技术中基于注解的控制器、视图解析器、数据绑定的处理等,掌握Spring MVC的配置、请求拦截器以及SSM框架的集成。
SSM三大框架整合详细教程(Spring+SpringMVC+MyBatis)
SSM三大框架整合详细教程(Spring+SpringMVC+MyBatis)使用SSM(Spring、SpringMVC和Mybatis)已经有三个多月了,项目在技术上已经没有什么难点了,基于现有的技术就可以实现想要的功能,当然肯定有很多可以改进的地方。
之前没有记录SSM整合的过程,这次刚刚好基于自己的一个小项目重新搭建了一次,而且比项目搭建的要更好一些。
以前解决问题的过程和方法并没有及时记录,以后在自己的小项目中遇到我再整理分享一下。
这次,先说说三大框架整合过程。
个人认为使用框架并不是很难,关键要理解其思想,这对于我们提高编程水平很有帮助。
不过,如果用都不会,谈思想就变成纸上谈兵了!!!先技术,再思想。
实践出真知。
(可通过图片水印查看博客地址)1、基本概念1.1、SpringSpring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。
它是为了解决企业应用开发的复杂性而创建的。
Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。
然而,Spring的用途不仅限于服务器端的开发。
从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。
简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。
1.2、SpringMVCSpring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。
Spring MVC 分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。
1.3、MyBatisMyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。
Spring事务管理及与mybatis整合的事务管理
数据访问事务处理in Spring+Mybatis3.0事务---保证了用户的每一次操作都是可靠的,即使出现了异常的访问,也不至于破坏后台数据的完整性;Java事务简介事务必须符合ISO/IEC所定制的ACID原则1)A(atomicity):原子性在事务执行的过程中,任何的失败就将导致事务的任何修改失效,2)C(consistency):一致性事务回滚时,事务所执行的内容必须恢复到初始状态,即事务执行前的状态3)I(isolation):隔离性事务执行过程中对数据的修改,在提交之前的数据对其他事务不可见4)D(durability):持久性已经提交的数据在事务执行失败时,数据的状态都是正确的.事务分类:全局事务(分布式事务):由应用服务器来管理(如JTA),同时可以用于多个事务性的资源;本地事务本地事务和资源相关,主要通过JDBC来实现在实际应用中,存在一种容器管理事务,容器事务主要是由javaEE应用服务器提供,容器事务大多给予JTA完成,事实上这是在容器中覆盖了JDBC和JTA事务.事务特性分析(use spring)TransactionDefinition 接口来定义事务属性。
Code:public interface TransactionDefinition{int getIsolationLevel();int getPropagationBehavior();int getTimeout();boolean isReadOnly();}事务机制a)事务隔离级别隔离级别是指若干个并发的事务之间的隔离程度。
TransactionDefinition 接口中定义了五个表示隔离级别的常量:TransactionDefinition.ISOLATION_DEFAULT(默认值):表示使用底层数据库的默认隔离级别。
对大部分数据库而言,通常这值就是TransactionDefinition.ISOLATION_READ_COMMITTED。
Java EE SpringMVC与MyBatis企业开发实战 9- Spring JDBC
-- 主键自动增长
-- 创建员工表
create table employee( id int primary key auto_increment, -- 主键自动增长 name varchar(20), -- 员工的名字 gender boolean, -- 性别:男为true,女为false birthday date, -- 生日 depart_id int , -- 创建外键约束 constraint fk_emp_dept foreign key (depart_id) references depart(depart_id)
Spring JDBC快速入门
案例需求: 在mysql中创建两张表,一个员工表,一个部门表,使用
Spring JDBC向部门表中添加一个部门。 案例步骤: 在mysql中创建数据库spring_jdbc,在数据库中创建两 张表:Depart部门表和Employee员工表,部门与员工之 间是一对多的关系。两张表的结构如下:
context.getBean("jdbcTemplate"); //使用update方法插入1条部门记录 int row = jdbcTemplate.update("insert into depart
(depart_name, description) values (?,?)", "开发部", "程序猿所在的部门"); System.out.println(row + "条记录插入成功"); //关闭上下文 context.close();
SQL代码
-- 创建数据库 create database spring_jdbc;
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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 配置文件都差不多配置好了,接下来就写个测试的。