SpringMvc +Mybatis最全的配置
Mybatis学习——Mybatis核心配置
Mybatis学习——Mybatis核⼼配置MyBatis的核⼼配置 在使⽤MyBatis框架时,设计两个核⼼的d对象:SqlSessionFactory和SqlSession.SqlsessionFactory SqlSessionFactory是单个数据库映射关系经过编译后的内存镜像,其主要作⽤⽤来创建SqlSession对象,SqlSessionFactory实例对象是可以通过SqlSessionFactoryBulider对象来构建,⽽SqlSessionFactoryBulider对象可以通过XML⽂件或者Configuration实例来创建SqlSessionFactory实例,其代码如下://1.读取配置⽂件String resource ="mybatis-config.xml";InputStream inputStream=Resources.getResourceAsStream(resource);//2.获取会话⼯⼚对象SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream); 注意:SqlSessionFactory对象是线性安全的,它⼀旦被创建,在整个应⽤程序间都会存在,如果我们多次的创建同⼀个SqlSessionFactory对象,那么数据库的资源很快就会被应⽤完,为了解决这个问题,通常,⼀个数据库是建⼀个SqlSessionFactory对象的。
SqlSession SqlSession对象是应⽤层和持久层之间进⾏数据库操作的⼀个单线程对象,其中主要作⽤是执⾏持久化操作,SqlSession对象中包含了所有执⾏数据库操作的⽅法,由于底层封装了JDBC的连接,所以可以直接使⽤SqlSession对象来执⾏已经映射的SQL语句。
注意:每⼀个线程都应该有⾃⼰的SqlSession实例,并且该SqlSession实例是不可共享的,同时,SqlSession是线程不安全的,因此,其使⽤范围最好是在⼀个请求中,或者⼀个⽅法中,绝对不能将其放⼊⼀个类的静态字段中,实例字段或者任何类型的管理范围中,使⽤完SqlSession后,要及时的关闭它,通常可以将其放⼊finally块中关闭。
spring MVC原理及配置
spring MVC原理及配置springmvc原理及配置springmvc原理及配置1.springmvc详述:springmvc就是spring提供更多的一个强悍而有效率的web框架。
借助注释,springmvc提供更多了几乎就是pojo的研发模式,使控制器的研发和测试更加直观。
这些控制器通常不轻易处置命令,而是将其委托给spring上下文中的其他bean,通过spring的倚赖转化成功能,这些bean被转化成至控制器中。
springmvc主要由dispatcherservlet、处理器映射、处理器(控制器)、视图解析器、视图组成。
他的两个核心是两个核心:处理器映射:选择使用哪个控制器来处理请求视图解析器:选择结果应该如何渲染通过以上两点,springmvc确保了如何挑选掌控处置命令和如何挑选视图展现出输入之间的松耦合。
2.springmvc运行原理这里写图片描述(2)找寻处理器:由dispatcherservlet控制器查阅一个或多个handlermapping,找出处置命令的controller。
(3)调用处理器:dispatcherservlet将请求提交到controller。
(4)(5)调用业务处置和回到结果:controller调用业务逻辑处置后,回到modelandview。
3.springmvc接口解释(1)dispatcherservlet接口:spring提供的前端控制器,所有的请求都有经过它来统一分发。
在dispatcherservlet将请求分发给springcontroller 之前,需要借助于spring提供的handlermapping定位到具体的controller。
(2)handlermappingUSB:能够完成客户请求到controller映射。
(3)controller接口:须要为mammalian用户处置上述命令,因此同时实现controllerUSB时,必须确保线程安全并且可以器重。
springmvc框架搭建之xml配置说明(spring4+hibernate4)
SpringMVC框架搭建说明Spring4.1.4 + hibernate4.3.81、web.xml配置程序运行时从web.xml开始,加载顺序为:context-param -> listener -> filter ->structs (如果使用structs的话)-> servlet如下为web.xml的配置说明<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="/2001/XMLSchema-instance"xmlns="/xml/ns/javaee"xmlns:web="/xml/ns/javaee/web-app_2_5.xsd"xsi:schemaLocation="/xml/ns/javaee/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"><!—-显示项目名称--><display-name>bmymis2</display-name><!-- 指定配置文件位置,contextConfigLocation是ContextLoaderListener中的一个参数,通过该参数在ContextLoaderListener中加载applicationContext-*.xml,并装配ApplicationContext --> <context-param><param-name>contextConfigLocation</param-name><param-value>classpath:applicationContext-*.xml</param-value></context-param><!-- 定义SPRING监听器,启动Web容器时,自动装配ApplicationContext的配置信息--><listener><listener-class>org.springframework.web.context.ContextLoaderListener </listener-class></listener><!—-字符编码过滤器,解决中文乱码问题--><filter><filter-name>encodingFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><param-name>encoding</param-name><param-value>UTF-8</param-value></init-param><init-param><param-name>forceEncoding</param-name><param-value>true</param-value></init-param></filter><!—- springmvc配置--><servlet><servlet-name>springServlet</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet </servlet-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> //容器启动时首先初始化该servlet </servlet><servlet-mapping><servlet-name>springServlet</servlet-name><url-pattern>/</url-pattern> //表示所有页面都由springmvc处理</servlet-mapping><!—-浏览器输入到项目名,默认打开如下配置页面--><welcome-file-list><welcome-file>/web/login.jsp</welcome-file></welcome-file-list><!—-错误跳转页面--><error-page><error-code>404</error-code><location>/404.html</location></error-page></web-app>2、applicationContext-common.xml配置:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="/schema/beans"xmlns:context="/schema/context"xmlns:xsi="/2001/XMLSchema-instance"xmlns:tx="/schema/tx"xmlns:aop="/schema/aop"xsi:schemaLocation="/schema/beans/schema/beans/spring-beans-4.0.xsd/schema/context/schema/context/spring-context-4.0.xsd/schema/aop/schema/aop/spring-aop-4.0.xsd/schema/tx/schema/tx/spring-tx-4.0.xsd"><!-- 加载资源文件其中包含变量信息,必须在Spring配置文件的最前面加载,即第一个加载--><context:property-placeholder location="classpath:application.properties"/><!—-扫描包路径选项,使用annotation 自动注册bean,并保证@Required,@Autowired的属性被注入,有了该配置,那么<context:annotation-config/>这个配置就可以省略(以下配置包含了<context:annotation-config/>配置)--><context:component-scan base-package="xxx.xxx.xxx"/><!-- 数据源配置,使用应用内的DBCP数据库连接池 --><bean id="dataSource" class="mons.dbcp.BasicDataSource"destroy-method="close"><!-- 定义数据库连接池数据源bean destroy-method="close"的作用是当数据库连接不使用的时候,就把该连接重新放到数据池中,方便下次使用调用--><property name="driverClassName" value="${jdbc.driverClassName}"/><property name="url" value="${jdbc.url}"/><property name="username" value="${ername}"/><property name="password" value="${jdbc.password}"/></bean><!—Hibernate的注解配置 --><bean id="sessionFactory"class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"><property name="dataSource" ref="dataSource"/><property name="hibernateProperties"><props><prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop><prop key="hibernate.dialect">${hibernate.dialect}</prop><prop key="hibernate.show_sql">${hibernate.show_sql}</prop></props></property><property name="packagesToScan" value="xxx.xxx.xxx.model" /></bean><!-- 配置Hibernate事务管理器 --><bean id="transactionManager"class="org.springframework.orm.hibernate4.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory"/></bean><!-- 配置事务异常封装 --><bean id="persistenceExceptionTranslationPostProcessor"class="org.springframework.dao.annotation.PersistenceExceptionTranslationPost Processor"/><!-- 声明式容器事务管理 ,transaction-manager指定事务管理器为transactionManager --> <tx:advice id="txAdvice" transaction-manager="transactionManager"><tx:attributes><tx:method name="add*" propagation="REQUIRED"/><tx:method name="get*" propagation="REQUIRED"/><tx:method name="*" read-only="true"/></tx:attributes></tx:advice><aop:config expose-proxy="true"><!-- 只对业务逻辑层实施事务 --><aop:pointcut id="txPointcut"expression="execution(*xxx.xxx.xxx.service..*.*(..))"/><!-- Advisor定义,切入点和通知分别为txPointcut、txAdvice --><aop:advisor pointcut-ref="txPointcut" advice-ref="txAdvice"/> </aop:config></beans>3、application.properties配置jdbc.driverClassName=org.postgresql.Driverjdbc.url=jdbc:postgresql://ip:5432/数据库名ername=postgresjdbc.password=123hibernate.dialect=org.hibernate.dialect.PostgreSQLDialecthibernate.show_sql=truehibernate.format_sql=false4、spring-mvc.xml配置<?xml version="1.0"encoding="UTF-8"?><beans xmlns="/schema/beans"xmlns:context="/schema/context"xmlns:mvc="/schema/mvc"xmlns:p="/schema/p"xmlns:xsi="/2001/XMLSchema-instance"xmlns:tx="/schema/tx"xsi:schemaLocation="/schema/beans/schema/beans/spring-beans-3.0.xsd/schema/context/schema/context/spring-context-3.0.xsd/schema/mvc/schema/mvc/spring-mvc-3.0.xsd/schema/tx/schema/tx/spring-tx-4.0.xsd"><!-- 启用spring mvc 注解 --><mvc:annotation-driven><!-- 自动扫描且只扫描@Controller --><context:component-scan base-package="xxx.xxx.xxx "use-default-filters="false"></context:component-scan><!-- 定义JSP文件的位置 --><beanclass="org.springframework.web.servlet.view.InternalResourceView Resolver"><property name="prefix"value="/jsp/"/><property name="suffix"value=".jsp"/></bean><!-- 容器默认的DefaultServletHandler处理所有静态内容与无RequestMapping处理的URL--> <mvc:default-servlet-handler/><!-- 定义无需Controller的url<->view直接映射 --><mvc:view-controller path="/"view-name="login"/></beans>。
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的相关配置。
MybatisGenerator最完整配置详解[mybatis代码自动生成配置]
MybatisGenerator最完整配置详解[mybatis代码⾃动⽣成配置] Mybatis Generator最完整配置详解[mybatis代码⾃动⽣成配置]1)说明 generator配置⽂件:1.1) 配置⽣成器 :<!-- 配置⽣成器 --><generatorConfiguration>....</generatorConfiguration>1.2) ${propertyKey}引⽤${propertyKey}的⽅式来引⽤配置项:例如resource:配置资源加载地址,使⽤resource,MBG从classpath开始找,⽐如com/myproject/generatorConfig.propertiesurl:配置资源加载地质,使⽤URL的⽅式,⽐如file:///C:/myfolder/generatorConfig.properties.注意,两个属性只能选址⼀个;另外,如果使⽤了mybatis-generator-maven-plugin,那么在pom.xml中定义的properties都可以直接在generatorConfig.xml中使⽤1.3 ) classPathEntry标签【添加依赖包】<!-- 在MBG⼯作的时候,需要额外加载的依赖包,location属性指明加载jar/zip包的全路径<classPathEntry location="/Program Files/IBM/SQLLIB/java/db2java.zip" />-->1.4 ) context 标签【⽣成⼀组对象的环境】<!--context:⽣成⼀组对象的环境id:必选,上下⽂id,⽤于在⽣成错误时提⽰defaultModelType:指定⽣成对象的样式1,conditional:类似hierarchical;2,flat:所有内容(主键,blob)等全部⽣成在⼀个对象中;3,hierarchical:主键⽣成⼀个XXKey对象(key class),Blob等单独⽣成⼀个对象,其他简单属性在⼀个对象中(record class)targetRuntime:1,MyBatis3:默认的值,⽣成基于MyBatis3.x以上版本的内容,包括XXXBySample;2,MyBatis3Simple:类似MyBatis3,只是不⽣成XXXBySample;introspectedColumnImpl:类全限定名,⽤于扩展MBG --><context id="mysql" defaultModelType="hierarchical" targetRuntime="MyBatis3Simple" >1.5) autoDelimitKeywords 标签【⾃动识别数据的关键字】<!--⾃动识别数据库关键字,默认false,如果设置为true,根据SqlReservedWords中定义的关键字列表;⼀般保留默认值,遇到数据库关键字(Java关键字),使⽤columnOverride覆盖--><property name="autoDelimitKeywords" value="false"/>1.6) javaFileEncoding 标签【字符编码】<!-- ⽣成的Java⽂件的编码 --><property name="javaFileEncoding" value="UTF-8"/>1.7) javaFormatter 标签【格式化java代码】<!-- 格式化java代码 --><property name="javaFormatter" value="org.mybatis.generator.api.dom.DefaultJavaFormatter"/>1.8) beginningDelimiter和endingDelimiter 标签【标记数据库对象名的符号】<!-- beginningDelimiter和endingDelimiter:指明数据库的⽤于标记数据库对象名的符号,⽐如ORACLE就是双引号,MYSQL默认是`反引号; --><property name="beginningDelimiter" value="`"/><property name="endingDelimiter" value="`"/><!-- 必须要有的,使⽤这个配置链接数据库@TODO:是否可以扩展--><jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql:///pss" userId="root" password="admin"><!-- 这⾥⾯可以设置property属性,每⼀个property属性都设置到配置的Driver上 --></jdbcConnection><!-- java类型处理器⽤于处理DB中的类型到Java中的类型,默认使⽤JavaTypeResolverDefaultImpl;注意⼀点,默认会先尝试使⽤Integer,Long,Short等来对应DECIMAL和 NUMERIC数据类型;--><javaTypeResolver type="org.mybatis.generator.internal.types.JavaTypeResolverDefaultImpl"><!--true:使⽤BigDecimal对应DECIMAL和 NUMERIC数据类型false:默认,scale>0;length>18:使⽤BigDecimal;scale=0;length[10,18]:使⽤Long;scale=0;length[5,9]:使⽤Integer;scale=0;length<5:使⽤Short;--><property name="forceBigDecimals" value="false"/></javaTypeResolver><!-- 在targetPackage的基础上,根据数据库的schema再⽣成⼀层package,最终⽣成的类放在这个package下,默认为false --><property name="enableSubPackages" value="true"/><!-- for MyBatis3 / MyBatis3Simple是否创建⼀个不可变的类,如果为true,那么MBG会创建⼀个没有setter⽅法的类,取⽽代之的是类似constructorBased的类--><property name="immutable" value="false"/><!-- 设置⼀个根对象,如果设置了这个根对象,那么⽣成的keyClass或者recordClass会继承这个类;在Table的rootClass属性中可以覆盖该选项注意:如果在key class或者record class中有root class相同的属性,MBG就不会重新⽣成这些属性了,包括:1,属性名相同,类型相同,有相同的getter/setter⽅法;--><property name="rootClass" value="com._520it.mybatis.domain.BaseDomain"/><!-- 设置是否在getter⽅法中,对String类型字段调⽤trim()⽅法 --><property name="trimStrings" value="true"/></javaModelGenerator><!-- 可以为所有⽣成的接⼝添加⼀个⽗接⼝,但是MBG只负责⽣成,不负责检查<property name="rootInterface" value=""/>--></javaClientGenerator><!-- 选择⼀个table来⽣成相关⽂件,可以有⼀个或多个table,必须要有table元素选择的table会⽣成⼀下⽂件:1,SQL map⽂件2,⽣成⼀个主键类;3,除了BLOB和主键的其他字段的类;4,包含BLOB的类;5,⼀个⽤户⽣成动态查询的条件类(selectByExample, deleteByExample),可选;6,Mapper接⼝(可选)tableName(必要):要⽣成对象的表名;注意:⼤⼩写敏感问题。
SpringBoot+Mybatis——适配支持各种各样数据库的方法
SpringBoot+Mybatis——适配⽀持各种各样数据库的⽅法使⽤mybatis的databaseId属性直接配置多数据库⽀持注意事项:1、本⽂针对的是多数据库切换,⽽⾮多数据源切换;2、本⽂所使⽤的⽅法是在配置⽂件中配置好需要使⽤的数据库,⽽不是在项⽬运⾏以后随时切换,若要切换数据库,需要修改配置⽂件并重启项⽬。
⼤家阅读本⽂前请注意以上两条事项,确定本⽂内容是否符合你的功能要求,再决定是否继续阅读本⽂。
接下来进⼊正题,⾸先是数据库配置,直接按照常规的配法就可以了,例如:spring.datasource.url=jdbc:mysql://localhost:3306/demoername=rootspring.datasource.password=rootspring.datasource.driver-class-name=com.mysql.jdbc.Driver⽽要想使⽤databaseId的话,需要增加⼀个bean的配置,如下:import java.util.Properties;import org.apache.ibatis.mapping.DatabaseIdProvider;import org.apache.ibatis.mapping.VendorDatabaseIdProvider;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;@Configurationpublic class BeanConfig {@Beanpublic DatabaseIdProvider getDatabaseIdProvider() {DatabaseIdProvider databaseIdProvider = new VendorDatabaseIdProvider();Properties p = new Properties();p.setProperty("DM DBMS", "dm7");p.setProperty("MySQL", "mysql");databaseIdProvider.setProperties(p);return databaseIdProvider;}}在这段代码中,给Properties设置了两个对象,对应着两种数据库,⼀个是达梦7,⼀个是mysql。
Mybatis的配置文件和映射文件详解
Mybatis的配置⽂件和映射⽂件详解⼀、Mybatis的全局配置⽂件1、SqlMapConfig.xml(名称可变)是mybatis的全局配置⽂件,配置内容如下:properties(属性)settings(全局配置参数)typeAliases(类型别名)typeHandlers(类型处理器)objectFactory(对象⼯⼚)plugins(插件)environments(环境集合属性对象)environment(环境⼦属性对象)transactionManager(事务管理)dataSource(数据源)mappers(映射器)2、properties将数据库连接参数单独配置在db.properties(名称可变)中,放在类路径下。
这样只需要在SqlMapConfig.xml中加载db.properties的属性值。
这样在SqlMapConfig.xml中就不需要对数据库连接参数硬编码。
将数据库连接参数只配置在db.properties中,原因:⽅便对参数进⾏统⼀管理,其它xml可以引⽤该db.properties例如:db.propertiesjdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/mybatisername=rootjdbc.password=root相应的SqlMapConfig.xml<properties resource="db.properties"/><environments default="development"><environment id="development"><transactionManager type="JDBC"/><dataSource type="POOLED"><property name="driver" value="${jdbc.driver}"/><property name="url" value="${jdbc.url}"/><property name="username" value="${ername}"/><property name="password" value="${jdbc.password}"/></dataSource></environment></environments>注意: MyBatis 将按照下⾯的顺序来加载属性:⾸先、在properties标签中指定的属性⽂件⾸先被读取。
SpringMVC目录结构配置
SpringMVC目录结构配置SpringMVC是一种常见的Java Web框架,它遵循MVC(Model-View-Controller)设计模式,用于构建灵活可扩展的Web应用程序。
SpringMVC的目录结构对于项目的开发和维护非常重要,下面会详细介绍SpringMVC的标准目录结构以及配置方式。
1.标准目录结构1.1 src/main/java:主要用于存放Java源代码。
1.2 src/main/resources:主要用于存放配置文件和资源文件。
1.3 src/main/webapp:主要用于存放Web应用的静态资源。
1.4 src/test/java:主要用于存放测试用例的Java源代码。
1.5 src/test/resources:主要用于存放测试用例的配置文件和资源文件。
2.详细解析2.1 src/main/java目录src/main/java目录是存放Java源代码的默认目录,它包括以下几个子目录:- config:用于存放Spring配置类,如配置数据库连接、配置事务管理等。
- interceptor:用于存放SpringMVC的拦截器。
- model:用于存放数据模型相关的实体类。
- util:用于存放工具类。
- web:用于存放SpringMVC的控制器。
2.2 src/main/resources目录src/main/resources目录是存放配置文件和资源文件的默认目录,它包括以下几个子目录:- static:用于存放静态资源文件,如CSS、JavaScript、图片等。
- templates:用于存放模板文件,如HTML、Thymeleaf模板等。
- application.properties:存放项目的配置信息,如数据库配置、端口配置等。
- logback.xml:存放日志配置,如日志级别、输出路径等。
- mapper:存放MyBatis的Mapper.xml文件。
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)是目前非常流行的Java Web开发框架,它结合了Spring框架、SpringMVC框架和MyBatis框架的优势,使得开发者可以更加高效地进行Web应用开发。
SSM框架的流程分为前端请求处理、后端分发处理和数据库操作三个步骤。
第一步是前端请求处理,当用户在浏览器中输入URL或者点击页面的链接时,请求会发送到服务器端。
SpringMVC框架的核心是DispatcherServlet,它是前端控制器,负责接收所有请求,并进行第一步的处理。
DispatcherServlet会根据请求的URL找到对应的处理器(Controller),并将请求数据封装成一个包含请求信息的对象。
Controller中的处理方法会处理该请求,并将处理结果封装成一个Model对象,并返回视图名。
第二步是后端分发处理,DispatcherServlet会将Model对象传递给ViewResolver(视图解析器),ViewResolver根据视图名找到对应的视图模板(JSP、HTML等),并将Model对象中的数据填充到视图模板中。
最终,服务器会将填充好数据的视图返回给用户的浏览器。
第三步是数据库操作,MyBatis框架是SSM框架中负责数据库操作的核心组件。
在Controller中,可以通过@Autowired注解注入MyBatis的Mapper接口,并调用接口中定义的方法来实现对数据库的操作。
Mapper接口中定义了增删改查等操作数据库的方法,而对应的SQL语句则是在MyBatis的XML文件中配置的。
MyBatis会读取XML文件,并根据接口方法的名称和参数类型来执行对应的SQL语句,最终将结果返回给Controller。
在整个流程中,Spring框架扮演了框架的骨架角色,它负责依赖注入、事务管理等底层功能。
SpringMVC框架实现了前端请求处理和后端分发处理的功能,它通过DispatcherServlet来接收和分发请求,并将处理结果返回给浏览器。
spring-mybatis.xml配置文件
spring-mybatis.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/bea ns/schema/beans/spri ng-beans-3.1.xsd/schema/context /schema/context/sp ring-context-3.1.xsd/schema/mvc/schema/mvc/spring -mvc-4.0.xsd"><!-- 自动扫描 --><context:component-scan base-package=".hnust" /><!-- 引入配置文件 --><bean id="propertyConfigurer"class="org.springframework.beans.factory.config.Prope rtyPlaceholderConfigurer"><property name="location" value="classpath:jdbc.prope rties" /></bean><bean id="dataSource" class="mons.dbcp.BasicDat aSource"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}"></pro perty><!-- 连接池最大空闲 --><property name="maxIdle" value="${maxIdle}"></propert y><!-- 连接池最小空闲 --><property name="minIdle" value="${minIdle}"></propert y><!-- 获取连接最大等待时间 --><property name="maxWait" value="${maxWait}"></propert y></bean><!-- spring和MyBatis完美整合,不需要mybatis的配置映射文件 --><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSes sionFactoryBean"><property name="dataSource" ref="dataSource" /><!-- 自动扫描mapping.xml文件 --><property name="mapperLocations" value="classpath:com /cn/hnust/mapping/*.xml"></property></bean><!-- DAO接口所在包名,Spring会自动查找其下的类 --><bean class="org.mybatis.spring.mapper.MapperScannerConfigure r"><property name="basePackage" value=".hnust.dao" /><property name="sqlSessionFactoryBeanName" value="sql SessionFactory"></property></bean><!-- (事务管理)transaction manager, use JtaTransactionManager f or global tx --><bean id="transactionManager"class="org.springframework.jdbc.datasource.DataSource TransactionManager"><property name="dataSource" ref="dataSource" /> </bean></beans>。
springMVC配置(XML配置详解)
springMVC配置(XML配置详解)原⽂出⾃:web.xml配置:servlet><servlet-name>dispatcher</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><description>加载/WEB-INF/spring-mvc/⽬录下的所有XML作为Spring MVC的配置⽂件</description><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/spring-mvc/*.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>dispatcher</servlet-name><url-pattern>*.htm</url-pattern></servlet-mapping>这样,所有的.htm的请求,都会被DispatcherServlet处理;初始化 DispatcherServlet 时,该框架在 web 应⽤程序WEB-INF ⽬录中寻找⼀个名为[servlet-名称]-servlet.xml的⽂件,并在那⾥定义相关的Beans,重写在全局中定义的任何Beans,像上⾯的web.xml中的代码,对应的是dispatcher-servlet.xml;当然也可以使⽤<init-param>元素,⼿动指定配置⽂件的路径;dispatcher-servlet.xml 配置:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xmlns:mvc="/schema/mvc"xmlns:p="/schema/p"xmlns:context="/schema/context"xmlns:aop="/schema/aop"xmlns:tx="/schema/tx"xsi:schemaLocation="/schema/beans/schema/beans/spring-beans-3.0.xsd/schema/context/schema/context/spring-context-3.0.xsd/schema/aop/schema/aop/spring-aop-3.0.xsd/schema/tx/schema/tx/spring-tx-3.0.xsd/schema/mvc/schema/mvc/spring-mvc-3.0.xsd/schema/context/schema/context/spring-context-3.0.xsd"><!--使Spring⽀持⾃动检测组件,如注解的Controller--><context:component-scan base-package="com.minx.crm.web.controller"/><bean id="viewResolver"class="org.springframework.web.servlet.view.InternalResourceViewResolver"p:prefix="/WEB-INF/jsp/"p:suffix=".jsp" /></beans>第⼀个Controller:package com.minx.crm.web.controller;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;@Controllerpublic class IndexController {@RequestMapping("/index")public String index() {return "index";}}@Controller注解标识⼀个控制器,@RequestMapping注解标记⼀个访问的路径(/index.htm),return "index"标记返回视图(index.jsp);注:如果@RequestMapping注解在类级别上,则表⽰⼀相对路径,在⽅法级别上,则标记访问的路径;从@RequestMapping注解标记的访问路径中获取参数:Spring MVC ⽀持RESTful风格的URL参数,如:@Controllerpublic class IndexController {@RequestMapping("/index/{username}")public String index(@PathVariable("username") String username) {System.out.print(username);return "index";}}在@RequestMapping中定义访问页⾯的URL模版,使⽤{}传⼊页⾯参数,使⽤@PathVariable 获取传⼊参数,即可通过地址:http://localhost:8080/crm/index/tanqimin.htm 访问;根据不同的Web请求⽅法,映射到不同的处理⽅法:使⽤登陆页⾯作⽰例,定义两个⽅法分辨对使⽤GET请求和使⽤POST请求访问login.htm时的响应。
SpringMVC+Mybatis+extjs4项目配置
SpringMVC+Mybatis+extjs4项目配置1)软件准备:1.Jdk6:这个需要统一一下,如果用高于jdk6得版本开发,到发布到tomcat服务器后可能运行不正常,在ide上的高版本到低版本的话,也可能出现编译错误的问题,这个要跟生产环境统一起来;2.Tomcat6(7):这个好像关系不太大,主要看生产环境,但如果页面使用了el表达式的话,则需要用高一点的tomcat服务器,低版本的tomcat对el表达式不支持;3.springsource-tool-suite:开发的ide,推荐使用zip安装包,版本2.9的吧,现在的3.1不是很稳定,占用内存很高,经常不响应2)springMVC相关库(jar)配置1.jar的引用主要配置在maven的pom.xml文件了,整个项目都是用pom.xml文件来组织的,如下图:实际项目的结果如:有点不同,所有的代码是放在src文件夹里的,main/webapp文件夹则对应于发布到tomcat 应用的文件夹,所有如果要提交svn,则只需要提交src里的代码,如果改动了非*.java代码,也只要更新webapp目录里改动文件至tomcat相应目录就行了;2.配置pom.xml可能用到的jar包:1)Mybatis:数据库持续层;<dependency><groupId>org.mybatis</groupId><version>1.1.1</version></dependency>2)Mysql:数据库的jdbc的jar包;<dependency><version>5.1.21</version></dependency>3)其他可能用得到的jar包:zip(org.apache.ant),json转换(com.alibaba),文件上传组件(commons-fileupload,commons-io)<dependency><groupId>com.alibaba</groupId><version>1.1.22</version></dependency><dependency></dependency><!-- File Upload --><dependency><version>1.2.2</version></dependency><dependency><version>2.0.1</version></dependency><dependency><groupId>org.codehaus.jackson</groupId><version>1.4.2</version></dependency>4)当改动pom.xml文件后,maven会自动更新项目的jar包,并更新至项目里的引用,如下图:3.项目里配置当把需要用到的jar包引用之后,spring框架里可以使用jar包里面的类,但有些jar包时需要spring的运行时自动加载到mvc运行环境中的,比如数据库持续层mybatis1)Mybatis配置:<bean id="dataSource"class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver" />rEncoding=UTF-8&useUnicode=true" /><property name="password" value="123456" /></bean><!-- 配置SqlSessionFactoryBean --><bean id="sqlSessionFactory"class="org.mybatis.spring.SqlSessionFactoryB ean"><property name="dataSource"ref="dataSource"/><property name="configLocation"value="classpath:mybatis.xml"/> </bean><!-- 配置事务管理器 --><bean id="transactionManager"class="org.springframework.jdbc.datasource. DataSourceTransactionManager"><property name="dataSource"ref="dataSource"/></bean><!-- 配置事务的传播特性 --><bean id="baseTransactionProxy"class="org.springframework.transaction.in terceptor.TransactionProxyFactoryBean"abstract="true"><property name="transactionManager"ref="transactionManager"/><property name="transactionAttributes"><props><prop key="add*">PROPAGATION_REQUIRED</prop><prop key="edit*">PROPAGATION_REQUIRED</prop><prop key="remove*">PROPAGATION_REQUIRED</prop><prop key="insert*">PROPAGATION_REQUIRED</prop><prop key="update*">PROPAGATION_REQUIRED</prop><prop key="del*">PROPAGATION_REQUIRED</prop><prop key="*">readOnly</prop></props></property></bean><!-- 通过扫描的模式,扫描目录 --><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage"value="com.spring.wlanmis.data.mapper"/></bean>上面的配置主要是:数据库连接,mybatis.xml,MapperScannerConfigurer(数据库Mapping扫描目录,项目的包结构如下:可以这样看,entity里的类一般要配置在mybatis.xml里,mapper里的文件是成对的,一个是xxx.xml文件,另一个是xxx.java(接口)文件,并mapper必须在配置root-content.xml 里的org.mybatis.spring.mapper.MapperScannerConfigurer中,不然mybatis组件就不能实例化2)其他的配置配置文件上传,详细代码可以查看FileUploadController.java<bean id="multipartResolver"class="monsMultipartResolv er"><property name="maxUploadSize"value="8000000"/></bean>剩下的就只是一些普通的javabean配置了,只是为了配置项目的全局参数,类似于ftpScanRunner3)前端extjs的配置:前端比较简单,只是在页面里设置引用,修改后也不用编译代码,发布时可以直接更新到服务器里相应目录进行覆盖,一般引用如下图项目里文件目录结构如下:具体的extjs4的前端mvc框架,还是参照官网/deploy/ext-4.1.0-gpl/examples/,可以先了解一下它的运行机制,项目的所有视图切换都在menu.json文件里。
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 。
springMVC配置文件详解
web.xml的配置web.xml应该是整个项目最重要的配置文件了,不过servlet3.0中已经支持注解配置方式了。
在servlet3.0以前每个servlet必须要在web.xml中配置servlet及其映射关系。
但是在spring框架中就不用了,因为Spring中是依赖注入(Dependency Injection)的也叫控制反转(Inversion of Control)。
但是也要配置一个重要的servlet,就是前端控制器(DispatcherServlet)。
配置方式与普通的servlet基本相似。
配置内容如下:<!-- 配置前端控制器--><servlet><servlet-name>spring</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><!-- ContextconfigLocation配置springmvc加载的配置文件适配器、处理映射器等--><param-name>contextConfigLocation</param-name><param-value>WEB-INF/classes/spring/springmvc.xml</param-value></init-param></servlet><servlet-mapping><servlet-name>spring</servlet-name><!-- 1、.action访问以.action结尾的由DispatcherServlet进行解析2、/,所有访问都由DispatcherServlet进行解析--><url-pattern>/</url-pattern></servlet-mapping>这里需要注意,springmvc.xml是spring配置文件,将在后面讨论。
SpringMVC的配置文件
SpringMVC的配置⽂件⼀、root标签跟spring配置⼀样,root标签是beans,毕竟springmvc是spring的⼀个模块在springmvc⾥,⾃动扫描主要是配置controller:⼆、⾃动扫描:⼆、⾃动扫描:在<context:component-scan base-package="com.xxx.controller"/>三、解析器Resolver:解析器有很多种,⽐较重要的是ViewResolverViewResolver也有很多种,其中⽐较重要和常⽤的是InternalResourceViewResolver(内部资源视图解析器)代码:<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/WEB-INF/jsp/" /><property name="suffix" value=".jsp" /></bean>如果没有视图解析器,我们在controller⾥⾯的代码是这样的:@Controllerpublic class LoginActionController {@RequestMapping("/index")public String toIndex(HttpServletRequest request, ModelMap map, HttpSession session) {return "/WEB-INF/jsp/index.jsp";}⽽使⽤了视图解析器,我们的代码是这样的:@Controllerpublic class LoginActionController {@RequestMapping("/index")public String toIndex(HttpServletRequest request, ModelMap map, HttpSession session) {return "index";}区别在最后⼀句,我们不需要给出⽬标视图的全路径了。
讲解ssm框架整合(最通俗易懂)
讲解ssm框架整合(最通俗易懂)⽬录环境1 Mybatis2 Spring 整合 Mybatis3 整合 SpringMVC4 Spring 配置整合⽂件结束环境MySQL 8.0.161 Mybatis1.1 数据库配置⽂件jdbc.driver=com.mysql.cj.jdbc.Driver# 如果使⽤mysql 6+,增加⼀个时区的配置jdbc.url=jdbc:mysql://localhost:3306/ssmbuild?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC&useSSL=falseername=rootjdbc.password=123456com.mysql.jdbc.Driver 与 com.mysql.cj.jdbc.Driver ?com.mysql.jdbc.Driver 是 mysql-connector-java 5 中的com.mysql.cj.jdbc.Driver 是 mysql-connector-java 6 中的JDBC 连接 mysql 5:url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&useSSL=falseJDBC 连接 mysql 6:url=jdbc:mysql://localhost:3306/test?serverTimezone=UTC&?useUnicode=true&characterEncoding=utf8&useSSL=false1.2 配置 Mybatis<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configurationPUBLIC "-////DTD Config 3.0//EN""/dtd/mybatis-3-config.dtd"><configuration><!--配置数据源,交给 spring 去做--><typeAliases><package name="com.fyy.pojo"/></typeAliases><mappers><mapper class="com.fyy.dao.BookMapper"/></mappers></configuration>typeAiases 标签作⽤?其中,<typeAiases>标签的作⽤只是为 Java 类型指定⼀个短的名字,它只和xml 配置有关,存在的意义仅在于⽤来减少类完全限定名的冗余。
MyBatis xml配置文件详解
MyBatis xml配置文件详解一、MyBatis 配置文件基本结构在使用mybatis框架时,首先导入其对应的jar包,并进行相应的配置,所以得对配置文件的每个参数都得了解。
一个完全的mybatis配置文件结构如下:[html] view plain copy<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configurationPUBLIC "-////DTD Config 3.0//EN""/dtd/mybatis-3-config.dtd"><!-- 配置文件的根元素--><configuration><!-- 属性:定义配置外在化--><properties></properties><!-- 设置:定义mybatis的一些全局性设置--><settings><!-- 具体的参数名和参数值--><setting name="" value=""/></settings><!-- 类型名称:为一些类定义别名--><typeAliases></typeAliases><!-- 类型处理器:定义Java类型与数据库中的数据类型之间的转换关系--><typeHandlers></typeHandlers><!-- 对象工厂--><objectFactory type=""></objectFactory><!-- 插件:mybatis的插件,插件可以修改mybatis的内部运行规则--><plugins><plugin interceptor=""></plugin></plugins><!-- 环境:配置mybatis的环境--><environments default=""><!-- 环境变量:可以配置多个环境变量,比如使用多数据源时,就需要配置多个环境变量--><environment id=""><!-- 事务管理器--><transactionManager type=""></transactionManager><!-- 数据源--><dataSource type=""></dataSource></environment></environments><!-- 数据库厂商标识--><databaseIdProvider type=""></databaseIdProvider><!-- 映射器:指定映射文件或者映射类--><mappers></mappers></configuration>propertiesproperties元素主要是用来定义配置外在化,比如数据库的连接属性等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Springmvc+mybatis框架配置(内含日志+多数据源配置+事务配置+maven配置)1spring-mvc.xml<?xml version="1.0" encoding="UTF-8"?><beans xmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xmlns:mvc="/schema/mvc"xmlns:context="/schema/context"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-3.1.xsd "><!-- 自动扫描该包,使SpringMVC认为包下用了@controller注解的类是控制器--> <context:component-scan base-package="com.andy.manager"/><!-- 启动SpringMVC的注解功能,完成请求和注解POJO的映射--><beanclass="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"></ bean><!-- 定义跳转的文件的前后缀,视图模式配置--><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <!-- 这里的配置我的理解是自动给后面action的方法return的字符串加上前缀和后缀,变成一个可用的url地址--><property name="prefix" value="/"/><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><mvc:interceptors><!-- 使用bean定义一个Interceptor,直接定义在mvc:interceptors根下面的Interceptor将拦截所有的请求--><bean class="monInterceptor"/> </mvc:interceptors></beans>2spring-mybatis.xml<?xml version="1.0" encoding="UTF-8"?><beans xmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xmlns:context="/schema/context"xmlns:util="/schema/util"xmlns:tx="/schema/tx"xmlns:aop="/schema/aop"xsi:schemaLocation="/schema/context/schema/context/spring-context-3.0.xsd/schema/beans/schema/beans/spring-beans-3.0.xsd/schema/util/schema/util/spring-util.xsd/schema/tx/schema/tx/spring-tx-3.0.xsd/schema/aop/schema/aop/spring-aop-3.0.xsd"><context:annotation-config /><!-- spring mvc 自动扫描注解的时候,不去扫描@Service --><context:component-scan base-package="com.andy.manager"><!--将Controller的注解排除掉--><context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" /></context:component-scan><util:properties id="app" location="classpath:app-${env}.properties"/><!--<bean id="dataSource_1" class="org.springframework.jndi.JndiObjectFactoryBean">--> <!--<property name="jndiName" value="#{app.jndiName_member}"/>--> <!--</bean>--><bean id="dataSource_1" class="boPooledDataSource"> <property name="driverClass" value="#{app.member_jdbcDriver}"/><property name="jdbcUrl" value="#{app.member_jdbcUrl}"/><property name="user" value="#{app.member_jdbcUsername}"/><property name="password" value="#{app.member_jdbcPassword}"/><property name="initialPoolSize" value="#{app.member_jdbcInitialPoolSize}"/><property name="minPoolSize" value="#{app.member_jdbcMinPoolSize}"/><property name="maxPoolSize" value="#{app.member_jdbcMaxPoolSize}"/><property name="acquireIncrement" value="#{app.member_jdbcAcquireIncrement}"/><property name="numHelperThreads" value="#{app.member_jdbcNumHelperThreads}"/><property name="maxIdleTime" value="#{app.member_jdbcMaxIdleTime}"/><property name="maxStatements" value="#{app.member_jdbcMaxStatements}"/><property name="maxStatementsPerConnection" value="#{app.member_jdbcMaxStatementsPerConnection}"/><property name="acquireRetryAttempts" value="#{app.member_jdbcAcquireRetryAttempts}"/><property name="idleConnectionTestPeriod" value="#{app.member_jdbcIdleConnectionTestPeriod}"/><property name="testConnectionOnCheckout" value="#{app.member_jdbcTestConnectionOnCheckout}"/></bean><!-- spring和MyBatis完美整合,不需要mybatis的配置映射文件--><bean id="sqlSessionFactory_1" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource_1"/><property name="configLocation" value="classpath:spring/vazh_mybatis.xml"/> </bean><!-- DAO接口所在包名,Spring会自动查找其下的类--><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="basePackage" value="com. andy.manager.basinfo.mapper"/><property name="sqlSessionFactoryBeanName"value="sqlSessionFactory_1"></property></bean><!-- DAO接口所在包名,Spring会自动查找其下的类--><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="basePackage" value="com. andy.manager.basinfo.vip.mapper"/><property name="sqlSessionFactoryBeanName" value="sqlSessionFactory_1"></property></bean><bean name="transactionManager_1" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="dataSource_1"></property></bean><tx:advice id="userTxAdvice_1" transaction-manager="transactionManager_1"> <tx:attributes><tx:method name="find*" propagation="SUPPORTS"/><tx:method name="get*" propagation="SUPPORTS"/><tx:method name="select*" propagation="SUPPORTS"/><tx:method name="add*" propagation="REQUIRED" rollback-for="ng.Exception" /><tx:method name="save*" propagation="REQUIRED" rollback-for="ng.RuntimeException" /><tx:method name="update*" propagation="REQUIRED" rollback-for="ng.Exception" /><tx:method name="modify*" propagation="REQUIRED" rollback-for="ng.Exception" /><tx:method name="edit*" propagation="REQUIRED" rollback-for="ng.Exception" /><tx:method name="validate*" propagation="REQUIRED" rollback-for="ng.Exception" /><tx:method name="del*" propagation="REQUIRED" rollback-for="ng.Exception" /><tx:method name="remove*" propagation="REQUIRED" rollback-for="ng.Exception" /><tx:method name="clear*" propagation="REQUIRED" rollback-for="ng.Exception" /><tx:method name="repair*" propagation="REQUIRED" rollback-for="ng.Exception" /><tx:method name="deleteAndRepair*" propagation="REQUIRED" rollback-for="ng.Exception" /><tx:method name="change*" propagation="REQUIRED" rollback-for="ng.Exception" /><tx:method name="do*" propagation="REQUIRED"rollback-for="ng.Exception" /><tx:method name="get*" propagation="NOT_SUPPORTED" read-only="true" /><tx:method name="find*" propagation="NOT_SUPPORTED" read-only="true" /><tx:method name="load*" propagation="NOT_SUPPORTED" read-only="true" /><tx:method name="search*" propagation="NOT_SUPPORTED" read-only="true" /><tx:method name="datagrid*" propagation="NOT_SUPPORTED" read-only="true" /><tx:method name="*" propagation="REQUIRED" read-only="false" /> </tx:attributes></tx:advice><aop:config><!--定义在service包里的任意方法的执行:--><aop:pointcut id="pc_1" expression="execution(public * com. andy.manager.basinfo.serviceimpl.*Impl.*(..))"/><aop:advisor pointcut-ref="pc_1" advice-ref="userTxAdvice_1"/></aop:config><!--<bean id="dataSource2" class="org.springframework.jndi.JndiObjectFactoryBean">--> <!--<property name="jndiName" value="#{app.jndiName_trans}"/>--> <!--</bean>--><bean id="dataSource2" class="boPooledDataSource"> <property name="driverClass" value="#{app.acccore_jdbcDriver}"/><property name="jdbcUrl" value="#{app.acccore_jdbcUrl}"/><property name="user" value="#{app.acccore_jdbcUsername}"/><property name="password" value="#{app.acccore_jdbcPassword}"/><property name="initialPoolSize" value="#{app.acccore_jdbcInitialPoolSize}"/><property name="minPoolSize" value="#{app.acccore_jdbcMinPoolSize}"/><property name="maxPoolSize" value="#{app.acccore_jdbcMaxPoolSize}"/><property name="acquireIncrement" value="#{app.acccore_jdbcAcquireIncrement}"/><property name="numHelperThreads" value="#{app.acccore_jdbcNumHelperThreads}"/><property name="maxIdleTime" value="#{app.acccore_jdbcMaxIdleTime}"/><property name="maxStatements" value="#{app.acccore_jdbcMaxStatements}"/><property name="maxStatementsPerConnection" value="#{app.acccore_jdbcMaxStatementsPerConnection}"/><property name="acquireRetryAttempts" value="#{app.acccore_jdbcAcquireRetryAttempts}"/><property name="idleConnectionTestPeriod" value="#{app.acccore_jdbcIdleConnectionTestPeriod}"/><property name="testConnectionOnCheckout" value="#{app.acccore_jdbcTestConnectionOnCheckout}"/></bean><!-- spring和MyBatis完美整合,不需要mybatis的配置映射文件--><bean id="sqlSessionFactory2" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource2"/><property name="configLocation" value="classpath:spring/vayw_mybatis.xml"/> </bean><!-- DAO接口所在包名,Spring会自动查找其下的类--><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="basePackage" value="com. andy.manager.work.*.mapper"/><property name="sqlSessionFactoryBeanName" value="sqlSessionFactory2"></property></bean><bean name="transactionManager_2" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="dataSource2"></property></bean><tx:advice id="userTxAdvice_2" transaction-manager="transactionManager_2"> <tx:attributes><tx:method name="find*" propagation="SUPPORTS"/><tx:method name="get*" propagation="SUPPORTS"/><tx:method name="select*" propagation="SUPPORTS"/><tx:method name="add*" propagation="REQUIRED" rollback-for="Exception" /><tx:method name="save*" propagation="REQUIRED" rollback-for="ng.Exception" /><tx:method name="update*" propagation="REQUIRED" rollback-for="ng.Exception" /><tx:method name="modify*" propagation="REQUIRED" rollback-for="ng.Exception" /><tx:method name="edit*" propagation="REQUIRED" rollback-for="ng.Exception" /><tx:method name="validate*" propagation="REQUIRED" rollback-for="Exception" /><tx:method name="del*" propagation="REQUIRED" rollback-for="ng.Exception" /><tx:method name="remove*" propagation="REQUIRED" rollback-for="ng.Exception" /><tx:method name="clear*" propagation="REQUIRED" rollback-for="ng.Exception" /><tx:method name="repair*" propagation="REQUIRED" rollback-for="ng.Exception" /><tx:method name="deleteAndRepair*" propagation="REQUIRED"rollback-for="ng.Exception" /><tx:method name="change*" propagation="REQUIRED" rollback-for="ng.Exception" /><tx:method name="do*" propagation="REQUIRED" rollback-for="ng.Exception" /><tx:method name="get*" propagation="NOT_SUPPORTED" read-only="true" /><tx:method name="find*" propagation="NOT_SUPPORTED" read-only="true" /><tx:method name="load*" propagation="NOT_SUPPORTED" read-only="true" /><tx:method name="search*" propagation="NOT_SUPPORTED" read-only="true" /><tx:method name="datagrid*" propagation="NOT_SUPPORTED" read-only="true" /><tx:method name="*" propagation="REQUIRED" read-only="false" /> </tx:attributes></tx:advice><aop:config><!--定义在service包里的任意方法的执行:--><aop:pointcut id="pc_2" expression="execution(public * com. andy.manager.work..serviceimpl..*Impl.*(..) )"/><aop:advisor pointcut-ref="pc_2" advice-ref="userTxAdvice_2"/></aop:config><tx:annotation-driven transaction-manager="transactionManager_1"/><tx:annotation-driven transaction-manager="transactionManager_2"/></beans>3logback.xml<?xml version="1.0" encoding="UTF-8"?><configuration><appender name="logfile" class="ch.qos.logback.core.rolling.RollingFileAppender"> <File>../logs/mempay_cms/mempay_cms.log</File><encoder><Pattern>[%date] [%-5level] %logger %line --%mdc{client} [%X{TRACE_LOG_ID}] %msg%n</Pattern><charset>UTF-8</charset></encoder><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>../logs/mempay_cms/mempay_cms.%d{yyyy-MM-dd}.%i.log</fileNamePatter n><maxHistory>30</maxHistory><TimeBasedFileNamingAndTriggeringPolicyclass="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"><maxFileSize>512MB</maxFileSize></TimeBasedFileNamingAndTriggeringPolicy></rollingPolicy></appender><appender name="console" class="ch.qos.logback.core.ConsoleAppender"><encoder><Pattern>[%date] [%-5level] %logger %line --%mdc{client} [%X{TRACE_LOG_ID}] %msg%n</Pattern></encoder></appender><logger name="com.ibatis" level="INFO"/><logger name="org.springframework" level="INFO"/><logger name="java.sql.PreparedStatement" level="INFO"/><logger name="org.springframework.web.servlet.DispatcherServlet" level="INFO"/><logger name="com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate" level="INFO"/><logger name="java.sql" level="INFO"/><logger name="mons" level="INFO"/><logger name="java.sql.Statement" level="INFO"/><logger name="org.springframework.web.context.support.XmlWebApplicationContext" level="INFO"/><logger name="mon.jdbc.SimpleDataSource" level="INFO"/><logger name="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping" level="INFO"/><logger name="java.sql.ResultSet" level="INFO"/><logger name="java.sql.Connection" level="INFO"/><logger name="mon.jdbc.ScriptRunner" level="INFO"/><root level="INFO" ><appender-ref ref="console"/><appender-ref ref="logfile"/></root></configuration>4web.xml<?xml version="1.0" encoding="UTF-8"?><web-app version="2.5"xmlns="/xml/ns/javaee"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/xml/ns/javaee/xml/ns/javaee/web-app_2_5.xsd"><!-- Spring和mybatis的配置文件--><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring-mybatis.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><!-- 防止Spring内存溢出监听器--><listener><listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class> </listener><servlet><servlet-name>SpringMVC</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-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><!-- 此处可以可以配置成*.do,对应struts的后缀习惯--><url-pattern>*.do</url-pattern ></servlet-mapping><jsp-config><taglib><taglib-uri>/diyTaglib</taglib-uri><taglib-location>/WEB-INF/tlds/diyTaglib.tld</taglib-location></taglib></jsp-config><welcome-file-list><welcome-file>login.jsp</welcome-file></welcome-file-list></web-app>5pom.xml<project xmlns="/POM/4.0.0" xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/POM/4.0.0/maven-v4_0_0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com. andy.manager</groupId><version>1.0-SNAPSHOT</version><artifactId>web</artifactId><packaging>war</packaging><name>Manager Project Web</name><properties><spring.version>3.1.1.RELEASE</spring.version><mybatis.version>3.2.0</mybatis.version><junit.version>4.8.2</junit.version><quartz.version>2.2.0</quartz.version><lombok.version>0.11.4</lombok.version><guava.version>15.0</guava.version><netty.version>4.0.10.Final</netty.version><ftp.version>1.5.3</ftp.version><jedis.version>2.4.1</jedis.version><memcach.version>2.6.3</memcach.version><spymemcach.version>2.9.1</spymemcach.version><axis.version>1.4</axis.version><slf4j.version>1.7.5</slf4j.version><jxl.version>2.6.10</jxl.version><!--平台各模块版本管理--><acc_utils.version>1.0-SNAPSHOT</acc_utils.version><outservapi_version>1.0-SNAPSHOT</outservapi_version><outserv_version>1.0-SNAPSHOT</outserv_version><entrybizfront_version>1.0-SNAPSHOT</entrybizfront_version><!--项目编码方式--><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties><dependencies><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>${lombok.version}</version></dependency><dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>${guava.version}</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>${junit.version}</version><scope>test</scope></dependency><!--log--><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>${slf4j.version}</version></dependency><!-- spring --><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-orm</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>${spring.version}</version><scope>test</scope></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-tx</artifactId><version>${spring.version}</version></dependency><dependency><groupId>mon</groupId><artifactId>hibernate-commons-annotations</artifactId> <version>4.0.4.Final</version></dependency><dependency><groupId>org.hibernate</groupId><artifactId>hibernate-core</artifactId><version>4.3.5.Final</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId><version>${spring.version}</version></dependency><dependency><groupId>cglib</groupId><artifactId>cglib-nodep</artifactId><version>2.2</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-aop</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.aspectj</groupId><artifactId>aspectjweaver</artifactId><version>1.6.9</version></dependency><dependency><groupId>com.google.code.findbugs</groupId> <artifactId>jsr305</artifactId><version>2.0.1</version></dependency><dependency><groupId>com.google.code.gson</groupId><artifactId>gson</artifactId><version>2.2.4</version></dependency><dependency><groupId>mons</groupId><artifactId>commons-collections4</artifactId><version>4.0</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.1.39</version></dependency><!-- logback --><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>1.1.2</version></dependency><dependency><groupId>ch.qos.logback</groupId><artifactId>logback-core</artifactId><version>1.1.2</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>log4j-over-slf4j</artifactId><version>1.7.5</version></dependency><dependency><groupId>commons-logging</groupId><artifactId>commons-logging</artifactId><version>1.1.3</version></dependency><dependency><groupId>com.oracle</groupId><artifactId>ojdbc14</artifactId><version>10.2.0.4.0</version></dependency><dependency><groupId>c3p0</groupId><artifactId>c3p0</artifactId><version>0.9.1.2</version></dependency><dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId> <version>1.3</version></dependency><dependency><groupId>javax.servlet</groupId><artifactId>servlet-api</artifactId><version>2.3</version></dependency><groupId>javax.servlet.jsp</groupId><artifactId>jsp-api</artifactId><version>2.2</version><scope>provided</scope></dependency><dependency><groupId>asm</groupId><artifactId>asm</artifactId><version>3.0</version></dependency><dependency><groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId><version>4.3</version></dependency><dependency><groupId>net.sf.json-lib</groupId><artifactId>json-lib</artifactId><version>2.3</version><classifier>jdk15</classifier></dependency><!--<dependency><groupId>org.springframework</groupId><artifactId>spring-asm</artifactId><version>3.1.0.M1</version></dependency>--><!-- mybatis --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>${mybatis.version}</version></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>1.2.2</version></dependency><dependency>。