Java開發(fā)之ssm三大框架整合
1.springmvc
和只有spring-mvc時(shí)一樣,web.xml spring-mvc.xml
spring-mvc.xml
<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"
xmlns:mvc="http://www.springframework.org/schema/cache"
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 http://www.springframework.org/schema/cache http://www.springframework.org/schema/cache/spring-cache.xsd">
<!-- 注解驅(qū)動-->
<mvc:annotation-driven/>
<!-- 靜態(tài)資源過濾-->
<!-- 開啟jsp專用的視圖控制器 internalresourceresoler-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- 設(shè)置前綴-->
<property name="prefix" value="/WEB-INF/templates/"></property>
<!-- 設(shè)置后綴-->
<property name="suffix" value=".jsp"></property>
</bean>
<!-- 掃描 controller注解-->
<context:component-scan base-package="com.hxut.rj1192.zyk.Controller"></context:component-scan>
</beans>web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<!-- 設(shè)置攔截器,解決參數(shù)亂碼,一定要在設(shè)置HiddenHttpMethodFilter請求前,要在其他攔截器和servlet執(zhí)行前設(shè)置編碼-->
<filter>
<filter-name>paramencoding</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>
<!-- 解決返回的請求數(shù)亂碼 response-->
<init-param>
<param-name>forceResponseEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<!--攔截所有頁面-->
<filter-mapping>
<filter-name>paramencoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!--servlet 將所有除了jsp的頁面攔截,交給dispatcherservlet視圖控制器,并設(shè)置dispatcherservlet的xml文件的位置-->
<servlet-mapping>
<servlet-name>all</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>all</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:Spring-springmvc.xml</param-value>
</init-param>
</servlet>
<!-- 攔截所有請求,并交給hiddenhttpmethodfilter 檢測否是post請求,且_method不為空,如果是,就將請求類型改為_method的值-->
<filter>
<filter-name>hiddenHttpMethodFilter</filter-name>
<filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>hiddenHttpMethodFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>2.spring-dao.xml與mybatis-config.xml
主要就是spring整合mybatis
在上面的基礎(chǔ)上,去掉成接口的實(shí)現(xiàn)類了,需要配置dao接口掃描包,我的理解是這個(gè)dao接口掃描包中有datasource,有mapper的掃描范圍, 它會自動生成這些接口對應(yīng)的mapper,并將接口的mapper放到xml文件中,所以在spring-service中,直接
<property name="bookmapper" ref="bookmapper"></property>
引用即可
<?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.springframwork.org/schema/context/spring-context.xsd">
<!-- 讀取數(shù)據(jù)庫配置文件-->
<context:property-placeholder location="classpath:database.properties"></context:property-placeholder>
<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}"/>
<property name="maxPoolSize" value="30"/>
<property name="minPoolSize" value="10"/>
<!-- 關(guān)閉連接后不自動commit -->
<property name="autoCommitOnClose" value="false"/>
<!-- 獲取連接超時(shí)時(shí)間 -->
<property name="checkoutTimeout" value="10000"/>
<!-- 當(dāng)獲取連接失敗重試次數(shù) -->
<property name="acquireRetryAttempts" value="2"/>
</bean>
<bean id="sqlsessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<property name="configLocation" value="classpath:mybatis-config.xml"></property>
</bean>
<!--配置dao接口掃描包 ,動態(tài)的實(shí)現(xiàn)了dao接口可以注入到spring容器中
就是用來代替BookMapperImpl類 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<!-- 注入sqlsessionfactory-->
<!--個(gè)人理解,這個(gè)dao接口掃描包中有datasource,有mapper的掃描范圍,
它會自動生成這些接口對應(yīng)的mapper,并將接口的mapper放到xml文件中,所以在spring-service中,直接
<property name="bookmapper" ref="bookmapper"></property> 引用即可-->
<property name="sqlSessionFactoryBeanName" value="sqlsessionFactory"></property>
<!-- 要掃描的dao包, 會自動生成包下的類的接口的實(shí)現(xiàn)類-->
<property name="basePackage" value="com.hxut.rj1192.zyk"></property>
</bean>
</beans>mybatis-config.xml 詳細(xì)在上面的mybatis整合spring的文章中,它做兩件事,配置映射文件路徑,配置接口掃描范圍,它被import到 spring-dao.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>
<!-- 配置數(shù)據(jù)源交給spring了-->
<!-- 給類起別名-->
<typeAliases>
<package name="com.hxut.rj1192.zyk.mapper"/>
</typeAliases>
<!-- 設(shè)置映射文件路徑-->
<mappers>
<mapper resource="com/hxut/rj1192/zyk/mapper/Bookmapper.xml"></mapper>
</mappers>
</configuration>3.spring-service.xml
在這個(gè)文件中要進(jìn)行事務(wù)的處理(事務(wù)本來就應(yīng)該是在service層),要將service層的類全部放到ioc容器中,然后這些類中因?yàn)檎{(diào)用了dao層的類,然后因?yàn)閯偛诺诙颗渲昧私涌趻呙璋苯觬ef獲取mapper即可
<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.springframwork.org/schema/context/spring-context.xsd">
<!-- 開啟注解驅(qū)動-->
<context:component-scan base-package="com.hxut.rj1192.zyk.service"></context:component-scan>
<bean id="booksServiceimpl" class="com.hxut.rj1192.zyk.service.BooksServiceimpl">
<property name="bookmapper" ref="bookmapper"></property>
</bean>
<!-- 聲明式事務(wù)-->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<!-- 注入數(shù)據(jù)源 -->
<property name="dataSource" ref="dataSource"></property>
</bean>
</beans>4.引用
將這些文件的引用放到一個(gè)大的xml文件中,這個(gè)文件只放引用,這樣就很容易看
<?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">
<import resource="applicationContext.xml"></import>
<import resource="spring-dao.xml"></import>
<import resource="Spring-Service.xml"></import>
<import resource="Spring-springmvc.xml"></import>
</beans>或者在project structure中設(shè)置 spring application context,效果是一樣的

到此這篇關(guān)于Java開發(fā)之ssm三大框架整合的文章就介紹到這了,更多相關(guān)Java ssm框架整合內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Java通過SSM完成水果商城批發(fā)平臺流程
- java ssm框架的controller實(shí)現(xiàn)向頁面?zhèn)鬟f參數(shù)
- 基于Java+SSM實(shí)現(xiàn)電影院購票系統(tǒng)
- 基于Java SSM實(shí)現(xiàn)在線點(diǎn)餐系統(tǒng)
- 基于Java SSM框架實(shí)現(xiàn)簡易的評教系統(tǒng)
- 基于Java SSM實(shí)現(xiàn)Excel數(shù)據(jù)批量導(dǎo)入
- 基于Java SSM的健康管理小程序的實(shí)現(xiàn)
- Java SMM框架關(guān)聯(lián)關(guān)系映射示例講解
相關(guān)文章
Java 將文件轉(zhuǎn)為字節(jié)數(shù)組知識總結(jié)及實(shí)例詳解
這篇文章主要介紹了Java 將文件轉(zhuǎn)為字節(jié)數(shù)組實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2016-12-12
詳解基于SpringBoot使用AOP技術(shù)實(shí)現(xiàn)操作日志管理
這篇文章主要介紹了詳解基于SpringBoot使用AOP技術(shù)實(shí)現(xiàn)操作日志管理,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11
myeclipse導(dǎo)出可運(yùn)行jar包簡介
這篇文章主要介紹了myeclipse導(dǎo)出可運(yùn)行jar包簡介,具有一定參考價(jià)值,需要的朋友可以了解下。2017-11-11
SpringBoot應(yīng)用啟動慢的原因分析及優(yōu)化方法
在使用Spring Boot進(jìn)行開發(fā)時(shí),快速啟動應(yīng)用程序是一個(gè)非常重要的需求,然而,在某些情況下,我們會遇到Spring Boot應(yīng)用啟動緩慢的問題,本文將分析Spring Boot應(yīng)用啟動慢的常見原因,并提供一些優(yōu)化方法,需要的朋友可以參考下2024-08-08
Java進(jìn)行Appium自動化測試的實(shí)現(xiàn)
這篇文章主要介紹了Java進(jìn)行Appium自動化測試的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01
JMeter自定義日志與日志分析的實(shí)現(xiàn)
JMeter與Java程序一樣,會記錄事件日志,本文就介紹一下JMeter自定義日志與日志分析的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-12-12

