APPLICATIONCONTEXT.XML与SPRING-MYBATIS.XML
之前使用的ssm框架时,配置的是spring-mybatis.xml这个文件,今天在网上搜ssm框架整合时,发现了applicationContext.xml 这个文件(对于Spring和mybatis两个框架的整合),然后又查了下spring-mybatis.xml的配置,发现applicationContext.xml 与spring-mybatis.xml的配置内容都差不多,所以,我觉得这两个文件虽然名称不同,但是要做的内容都是相同的,整合Spring与MyBatis这两个框架
Spring
Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架
MyBatis
MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。MyBatis是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAO)MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的XML或注解用于配置和原始映射,将接口和Java 的POJOs(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录
文件配置(Spring与MyBatis整合)
以下大部分内容转自:https://www.cnblogs.com/zipon/p/5773735.html
applicationContext.xml模板
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <?xml version= "1.0" encoding= "UTF-8" ?> <beans xmlns= "http://www.springframework.org/schema/beans" xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" xmlns:aop= "http://www.springframework.org/schema/aop" xmlns:tx= "http://www.springframework.org/schema/tx" xmlns:context= "http://www.springframework.org/schema/context" xsi:schemaLocation=" http: //www.springframework.org/schema/beans http: //www.springframework.org/schema/beans/spring-beans-3.0.xsd http: //www.springframework.org/schema/tx http: //www.springframework.org/schema/tx/spring-tx-3.0.xsd http: //www.springframework.org/schema/context http: //www.springframework.org/schema/context/spring-context-3.0.xsd http: //www.springframework.org/schema/aop http: //www.springframework.org/schema/aop/spring-aop-3.0.xsd"> </beans> |
applicationContext.xml配置内容((在web.xml文件需要加<listener>))
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 | <?xml version= "1.0" encoding= "UTF-8" ?> <beans xmlns= "http://www.springframework.org/schema/beans" xmlns:context= "http://www.springframework.org/schema/context" xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" xmlns:aop= "http://www.springframework.org/schema/aop" xmlns:tx= "http://www.springframework.org/schema/tx" xmlns:p= "http://www.springframework.org/schema/p" xmlns:util= "http://www.springframework.org/schema/util" xmlns:jdbc= "http://www.springframework.org/schema/jdbc" xmlns:cache= "http://www.springframework.org/schema/cache" xsi:schemaLocation=" http: //www.springframework.org/schema/context http: //www.springframework.org/schema/context/spring-context.xsd http: //www.springframework.org/schema/beans http: //www.springframework.org/schema/beans/spring-beans.xsd http: //www.springframework.org/schema/tx http: //www.springframework.org/schema/tx/spring-tx.xsd http: //www.springframework.org/schema/jdbc http: //www.springframework.org/schema/jdbc/spring-jdbc-3.1.xsd http: //www.springframework.org/schema/cache http: //www.springframework.org/schema/cache/spring-cache-3.1.xsd http: //www.springframework.org/schema/aop http: //www.springframework.org/schema/aop/spring-aop.xsd http: //www.springframework.org/schema/util http: //www.springframework.org/schema/util/spring-util.xsd"> <<span style= "color:#ff0000;" >!-- 自动扫描web包 ,将带有注解的类 纳入spring容器管理 --></span> <context:component-scan base- package = "com.eduoinfo.finances.bank.web" ></context:component-scan> <!-- 引入jdbc配置文件 --> <bean id= "propertyConfigurer" class = "org.springframework.beans.factory.config.PropertyPlaceholderConfigurer" > <property name= "locations" > <list> <value>classpath*:jdbc.properties</value> </list> </property> </bean> <!-- dataSource 配置 --> <bean id= "dataSource" class = "com.alibaba.druid.pool.DruidDataSource" init-method= "init" destroy-method= "close" > <!-- 基本属性 url、user、password --> <property name= "url" value= "${jdbc.url}" /> <property name= "username" value= "${jdbc.username}" /> <property name= "password" value= "${jdbc.password}" /> <!-- 配置初始化大小、最小、最大 --> <property name= "initialSize" value= "1" /> <property name= "minIdle" value= "1" /> <property name= "maxActive" value= "20" /> <!-- 配置获取连接等待超时的时间 --> <property name= "maxWait" value= "60000" /> <!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 --> <property name= "timeBetweenEvictionRunsMillis" value= "60000" /> <!-- 配置一个连接在池中最小生存的时间,单位是毫秒 --> <property name= "minEvictableIdleTimeMillis" value= "300000" /> <property name= "validationQuery" value= "SELECT 'x'" /> <property name= "testWhileIdle" value= "true" /> <property name= "testOnBorrow" value= "false" /> <property name= "testOnReturn" value= "false" /> <!-- 打开PSCache,并且指定每个连接上PSCache的大小 --> <property name= "poolPreparedStatements" value= "false" /> <property name= "maxPoolPreparedStatementPerConnectionSize" value= "20" /> <!-- 配置监控统计拦截的filters --> <property name= "filters" value= "stat" /> </bean> <!-- mybatis文件配置,扫描所有mapper文件 --> <bean id= "sqlSessionFactory" class = "org.mybatis.spring.SqlSessionFactoryBean" p:dataSource-ref= "dataSource" p:configLocation= "classpath:mybatis-config.xml" p:mapperLocations= "classpath:com/eduoinfo/finances/bank/web/dao/*.xml" /> <span style= "color:#ff0000;" ><!-- spring与mybatis整合配置,扫描所有dao --></span> <bean class = "org.mybatis.spring.mapper.MapperScannerConfigurer" p:basePackage= "com.eduoinfo.finances.bank.web.dao" p:sqlSessionFactoryBeanName= "sqlSessionFactory" /> <!-- 对dataSource 数据源进行事务管理 --> <bean id= "transactionManager" class = "org.springframework.jdbc.datasource.DataSourceTransactionManager" p:dataSource-ref= "dataSource" /> <span style= "color:#ff0000;" ><!-- 配置使Spring采用CGLIB代理 --></span> <aop:aspectj-autoproxy proxy-target- class = "true" /> <span style= "color:#ff0000;" > <!-- 启用对事务注解的支持 --></span> <tx:annotation-driven transaction-manager= "transactionManager" /> <span style= "color:#ff0000;" > <!-- Cache配置 --></span> <cache:annotation-driven cache-manager= "cacheManager" /> <bean id= "ehCacheManagerFactory" class = "org.springframework.cache.ehcache.EhCacheManagerFactoryBean" p:configLocation= "classpath:ehcache.xml" /> <bean id= "cacheManager" class = "org.springframework.cache.ehcache.EhCacheCacheManager" p:cacheManager-ref= "ehCacheManagerFactory" /> </beans> |
对于pojo(entity)层之前我都是单独配置一个mybatis-config.xml,然后进行引入,而以下的配置是直接将pojo配在了Session的配置里,省去了一个配置,值得学习:此段代码参考链接:https://blog.csdn.net/u010067848/article/details/78985444
1 2 3 4 5 | <!--Mybatis的SessionFactory配置 --> <bean id= "sqlSession" class = "org.mybatis.spring.SqlSessionFactoryBean" > <property name= "typeAliasesPackage" value= "com.azimiao.tmall.pojo" /> <property name= "dataSource" ref= "dataSource" /> <property name= "mapperLocations" value= "classpath:mapper/*.xml" /> |
1、<context:component-scan base-package=”com.eduoinfo.finances.bank.web”></context:component-scan> 作用Spring 容器初始化的时候,会扫描 com.eduoinfo.finances.bank.web下 标有 (@Component,@Service,@Controller,@Repository) 注解的 类 纳入spring容器管理
在类上 ,使用以下注解,实现bean 的声明
@Component 泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。
@Service 用于标注业务层组件
@Controller 用于标注控制层组件(如srping mvc的controller,struts中的action)
@Repository 用于标注数据访问组件,即DAO组件
示例:
@Controller
@RequestMapping(value = “/test”)
public class TestController {}
在类的成员变量上,使用以下注解,实现属性的自动装配
@Autowired : 按类 的 类型进行装配
@Resource (推荐) : 1 如果同时指定了name和type,则从Spring上下文中找到唯一匹配的bean进行装配,找不到则抛出异常
2. 如果指定了name,则从上下文中查找名称(id)匹配的bean进行装配,找不到则抛出异常
3.如果指定了type,则从上下文中找到类型匹配的唯一bean进行装配,找不到或者找到多个,都会抛出异常
4.如果既没有指定name,又没有指定type,则自动按照byName方式进行装配;如果没有匹配,则回退为一个原始类型进行匹配,如果匹配则自动装配;
@Resource注解在字段上,这样就不用写setter方法了,并且这个注解是属于J2EE的,减少了与spring的耦合。
示例:
@Resource
private TestServiceImpl testServiceImpl;
spring-mvc.xml 和 application-context.xml的配置与深入理解链接:https://blog.csdn.net/qq_35571554/article/details/82453684
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步