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代码自动生成配置]](https://img.taocdn.com/s3/m/4e104f45ce84b9d528ea81c758f5f61fb7362846.png)
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文件。
- 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>。