Spring整合mybatis、springMVC總結(jié)
1.mybatis配置流程
- 實體類pojo類
- 編寫Dao層(UserMapper接口以及xml文件)
- 編寫Service接口以及實現(xiàn)類,通過Dao層對象進(jìn)行訪問數(shù)據(jù)庫
- 創(chuàng)建mybatis的核心配置文件mybatis-config.xml,并將UserMapper綁定到mybatis-config.xml中
- 之前的配置
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/mybatis? useSSL=true&useUnicode=true&characterEncoding=utf8"/> <property name="username" value="root"/> <property name="password" value="123456"/> </dataSource> </environment> </environments> <mappers> <mapper resource="com/kuang/dao/userMapper.xml"/> </mappers> </configuration>
- 引入到spring后的配置
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <!-- 原本是要去配置數(shù)據(jù)源信息的,但是和spring整合后,此步驟將交給spring去做--> <mappers> <mapper resource="com/kuang/dao/userMapper.xml"/> </mappers> </configuration>
- 編寫MyBatis工具類
import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import java.io.IOException; import java.io.InputStream; public class MybatisUtils { private static SqlSessionFactory sqlSessionFactory; static { try { String resource = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); } catch (IOException e) { e.printStackTrace(); } } //獲取SqlSession連接 public static SqlSession getSession(){ return sqlSessionFactory.openSession(); } }
2.spring配置流程
- 在xml文件中注冊bean對象(沒有用注解)
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <!--bean就是java對象 , 由Spring創(chuàng)建和管理--> <bean id="hello" class="com.kuang.pojo.Hello"> <property name="name" value="Spring"/> </bean> </beans>
- 或者在xml文件中使用掃描包(配合注解)
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <!--指定注解掃描包--> <context:component-scan base-package="com.kuang.pojo"/> </beans>
3.spring 整合Dao層
- 創(chuàng)建數(shù)據(jù)庫配置文件 database.properties
jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/mytest?useSSL=false&useUnicode=true&characterEncoding=utf8&serverTimezone=UTC jdbc.username=root jdbc.password=root
- 創(chuàng)建spring整個Dao層的配置文件spring-dao.xml,主要整合數(shù)據(jù)庫連接文件,連接池信息,sqlsessionFactory(需綁定Mybatis配置文件去讀取配置Mapper信息),dao層動態(tài)注入到Spring中
<?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:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd"> <!--1,關(guān)聯(lián)數(shù)據(jù)庫連接文件--> <context:property-placeholder location="classpath:database.properties"/> <!--2,連接池 c3p0--> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="driverClass" value="${jdbc.driver}"/> <property name="jdbcUrl" value="${jdbc.url}"/> <property name="user" value="${jdbc.username}"/> <property name="password" value="${jdbc.password}"/> <!-- c3p0連接池的私有屬性 --> <property name="maxPoolSize" value="30"/> <property name="minPoolSize" value="10"/> <!-- 關(guān)閉連接后不自動commit --> <property name="autoCommitOnClose" value="false"/> <!-- 獲取連接超時時間 --> <property name="checkoutTimeout" value="10000"/> <!-- 當(dāng)獲取連接失敗重試次數(shù) --> <property name="acquireRetryAttempts" value="2"/> </bean> <!-- 3,配置sqlSessionFactory--> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource"/> <!-- 綁定mybatis的配置文件--> <property name="configLocation" value="classpath:mybatis-config.xml"/> </bean> <!-- 4,配置dao層,動態(tài)實現(xiàn)了接口可以注入到Spring容器中--> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/> <property name="basePackage" value="com.kuangshen.dao"/> </bean> </beans>
分析:spring-dao.xml文件整合了mybatis的mybatis-config.xml文件中的數(shù)據(jù)庫配置信息以及工具類和dao層的bean信息。
4.spring整合Service層
創(chuàng)建spring整合service層的文件spring-service.xml
,主要配置讓spring去掃描service包的位置,配置impl中要注入的mapper信息,聲明事務(wù)的提交方式,以及AOP事務(wù)的支持。
<?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:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd"> <!--掃描service下的包 --> <context:component-scan base-package="com.swz.service"/> <!-- 2業(yè)務(wù)類注入到spring--> <bean id="UserServiceImpl" class="com.swz.service.UserServiceImpl"> <property name="userMapper" ref="userMapper"/> </bean> <!-- 3聲明事務(wù)提交方式--> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"/> </bean> <!-- 4AOP事務(wù)支持--> </beans>
注意:<context:component-scan base-package=“com.swz.service”/> 在xml配置了這個標(biāo)簽后,spring可以自動去掃描base-pack下面或者子包下面的Java文件,如果掃描到有@Component @Controller@Service等這些注解的類,則把這些類注冊為bean。
5.spring整合MVC層
創(chuàng)建spring整合mvc層的文件spring-mvc.xml,主要配置springMVC靜態(tài)資源過濾,開啟springMVC注解驅(qū)動
<?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:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/mvc https://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd"> <!--1.注解驅(qū)動--> <mvc:annotation-driven/> <!--2處理器映射器和處理器適配器--> <mvc:default-servlet-handler/> <!--3掃描包--> <context:component-scan base-package="com.leshangju.controller"/> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="internalResourceViewResolver"> <property name="prefix" value="/WEB-INF/jsp/"/> <property name="suffix" value=".jsp"/> </bean> </beans>
6. spring整合dao-service-mvc三層
將以上配置的spring-dao.xml,spring-service.xml,spring-mvc.xml整合到applicationContext.xml中,同一個spring文件中來,實現(xiàn)最終的整合。
注意:此步驟正確的方式是每配置完一個xml都注入整合進(jìn)來一次,而不是最終才整合。
以上就是Spring整合mybatis、springMVC總結(jié)的詳細(xì)內(nèi)容,更多關(guān)于Spring整合mybatis、springMVC的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
mybatis-plus?Wrapper條件構(gòu)造器updateForSet更新方式
這篇文章主要介紹了mybatis-plus?Wrapper條件構(gòu)造器updateForSet更新方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03startJVM錯誤Unable to load native library: libjvm.so解決方法
這篇文章主要介紹了startJVM錯誤Unable to load native library: libjvm.so解決方法,需要的朋友可以參考下2014-07-07詳解java中finalize的實現(xiàn)與相應(yīng)的執(zhí)行過程
在常規(guī)的java書籍中,即會描述 object的finalize方法是用于一些特殊的對象在回收之前再做一些掃尾的工作,但是并沒有說明此是如何實現(xiàn)的.本篇從java的角度(不涉及jvm以及c++),有需要的朋友們可以參考借鑒。2016-09-09SpringBoot項目中處理返回json的null值(springboot項目為例)
本文以spring boot項目為例給大家介紹SpringBoot項目中處理返回json的null值問題,本文通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友參考下2019-10-10