亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

講解ssm框架整合(最通俗易懂)

 更新時(shí)間:2020年09月20日 09:35:58   作者:沸羊羊_  
這篇文章主要介紹了講解ssm框架整合(最通俗易懂),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

環(huán)境

MySQL 8.0.16

1 Mybatis

 1.1 數(shù)據(jù)庫(kù)配置文件

jdbc.driver=com.mysql.cj.jdbc.Driver
# 如果使用mysql 6+,增加一個(gè)時(shí)區(qū)的配置
jdbc.url=jdbc:mysql://localhost:3306/ssmbuild?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC&useSSL=false
jdbc.username=root
jdbc.password=123456

com.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=false

JDBC 連接 mysql 6:

url=jdbc:mysql://localhost:3306/test?serverTimezone=UTC&?useUnicode=true&characterEncoding=utf8&useSSL=false

1.2 配置 Mybatis

<?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.fyy.pojo"/>
 </typeAliases>

 <mappers>
  <mapper class="com.fyy.dao.BookMapper"/>
 </mappers>
</configuration>

typeAiases 標(biāo)簽作用?

其中,<typeAiases>標(biāo)簽的作用只是為 Java 類型指定一個(gè)短的名字,它只和xml 配置有關(guān),存在的意義僅在于用來(lái)減少類完全限定名的冗余。

指定一個(gè)包名,Mybatis 會(huì)在此包名下搜索需要的 Java Bean,每一個(gè)在此包下的 Java Bean,在沒(méi)有注解的情況下,會(huì)使用 Bean 的首字母小寫的非限定類名作為它的別名,比如:com.fyy.pojo.User 的別名為:user ,若有注解,則別名為其注解值。如下例子:

@Alias("hello")
public class Hello(){}

mappers標(biāo)簽作用?

Mybatis 是基于 Sql 映射配置的框架,Sql 語(yǔ)句在Mapper 配置文件中,當(dāng)構(gòu)建 SqlSession 類之后,就需要去讀取 Mapper 配置文件中的 sql 配置。

mappers : 映射器,以最佳的方式告訴 Mybatis 去哪里找映射文件,就是用來(lái)配置需要加載的 sql 映射配置文件路徑的。

mappers 下的每一個(gè) mapper 都是一個(gè)mapper,配置的都是一個(gè)獨(dú)立的映射配置文件的路徑,配置方式有以下幾種。

1、接口所在包

<mappers>
	<!-- mapper接口所在的包名 -->
	 <package name="com.fyy.mapper"/>
</mappers>

# package標(biāo)簽,通過(guò) name 屬性指定 mapper 接口所在的包名,此時(shí)對(duì)應(yīng)的映射文件必須
與接口位于同一路徑下,并且名稱相同。

2、相對(duì)路徑配置

<mappers>
 	<mapper resource="com/fyy/mapper/FlowerMapper.xml"/>
</mappers>


# mapper標(biāo)簽,通過(guò) resource 屬性引入 classpath 路徑的相對(duì)資源

3、類注冊(cè)引入

<mappers>
 	<mapper class="com.fyy.mapper.FlowerMapper"/>
</mappers>

# mapper 標(biāo)簽,通過(guò) class 屬性指定 mapper 接口名稱,此時(shí)對(duì)應(yīng)的映射文件必須與接口位于同一路徑
下,并且名稱相同

4、使用 url 絕對(duì)路徑方式引入(不推薦)

<mappers>
	<mapper url="file:///var/mappers/UserMapper.xml"/>
</mappers>

# mapper 標(biāo)簽,通過(guò) url 引入網(wǎng)絡(luò)資源或者本地磁盤資源

總結(jié)

只有配置了 mappers 信息,Mybatis 才知道去哪里加載 Mapper 配置文件,開(kāi)發(fā)中,根據(jù)項(xiàng)目中 Mapper 的配置偏好,選擇整合配置文件的配置方式。

2 Spring 整合 Mybatis

 2.1 Spring 整合 dao 層

<?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
  https://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">

<!-- 配置整合Mybatis-->
 <!--1、關(guān)聯(lián)數(shù)據(jù)庫(kù)配置文件-->
 <context:property-placeholder location="classpath:database.properties"/>

 <!--2、連接池-->
 <!--數(shù)據(jù)庫(kù)連接池
 dbcp 半自動(dòng)化操作 不能自動(dòng)連接
 c3p0 自動(dòng)化操作(自動(dòng)的加載配置文件 并且設(shè)置到對(duì)象里面)-->
 <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)閉連接后不自動(dòng)commit -->
  <property name="autoCommitOnClose" value="false"/>
  <!-- 獲取連接超時(shí)時(shí)間 -->
  <property name="checkoutTimeout" value="10000"/>
  <!-- 當(dāng)獲取連接失敗重試次數(shù) -->
  <property name="acquireRetryAttempts" value="2"/>
 </bean>

 <!-- 3.配置SqlSessionFactory對(duì)象 -->
 <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
  <!-- 注入數(shù)據(jù)庫(kù)連接池 -->
  <property name="dataSource" ref="dataSource"/>
  <!-- 配置MyBaties全局配置文件:mybatis-config.xml -->
  <property name="configLocation" value="classpath:mybatis-config.xml"/>
 </bean>

 <!-- 4.配置掃描Dao接口包,動(dòng)態(tài)實(shí)現(xiàn)Dao接口注入到spring容器中 -->
 <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
  <!-- 注入sqlSessionFactory -->
  <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
  <!-- 給出需要掃描Dao接口包 -->
  <property name="basePackage" value="com.fyy.dao"/>
 </bean>
</beans>

2.1.1 context:property-placeholder標(biāo)簽作用?

在開(kāi)發(fā)中有些參數(shù)是常量,比如:連接數(shù)據(jù)庫(kù)的 url,password,username 等信息,不需要常變化,但在不同階段又需要變化,有沒(méi)有有一種方案方便我們?cè)谝粋€(gè)階段內(nèi)不需要頻繁寫一個(gè)參數(shù)的值,但在不同階段間又可以方便的切換參數(shù)的配置信息。

解決方案:Spring 3 中提供了一種簡(jiǎn)便的方式就是 content:property-placeholder元素,即可解決上述問(wèn)題。

在 content:property-placeholder 標(biāo)簽中 利用屬性 localtion ,值為文件路徑,可以使用 classpath: 指定文件名即可。這里我們關(guān)聯(lián)上數(shù)據(jù)庫(kù)配置信息。

Spring 容器中僅允許最多定義一個(gè) context:property-placeholder ,其余的會(huì)被忽略。

2.1.2 數(shù)據(jù)庫(kù)連接池

每次創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)連接都是一次極大的資源消費(fèi),所以連接復(fù)用,通過(guò)建立一個(gè)數(shù)據(jù)庫(kù)連接池以及一套連接使用管理策略,可以使一個(gè)數(shù)據(jù)庫(kù)連接可以得到高效、安全的復(fù)用,能避免了數(shù)據(jù)庫(kù)連接池頻繁建立、關(guān)閉的開(kāi)銷。

連接池的本質(zhì):介于 Java 和 JDBC 之間的 Java jar 包!

第1步中,我們關(guān)聯(lián)了數(shù)據(jù)庫(kù)配置信息,利用 bean 標(biāo)簽可獲取其中的配置信息。

可根據(jù)項(xiàng)目實(shí)際開(kāi)發(fā)中,配置連接池的最大數(shù)量、最小數(shù)量、關(guān)閉連接后是否自動(dòng) commit、獲取連接超時(shí)時(shí)間、獲取連接失敗重試次數(shù)等,很多屬性,在這不一 一贅述了。

2.1.3 配置 SqlSessionFactory 對(duì)象

SqlSessionFacoty 的作用就是創(chuàng)建 SqlSession,SqlSession 就是一個(gè)會(huì)話,相當(dāng)于 JDBC 中的 Connection 對(duì)象,每次應(yīng)用訪問(wèn)數(shù)據(jù)庫(kù),就要通過(guò) SqlSessionFactory 創(chuàng)建 SqlSession ,所以 SqlSessionFacoty 應(yīng)該在 Mybatis 整個(gè)生命周期中,每一個(gè)數(shù)據(jù)庫(kù)只應(yīng)該對(duì)應(yīng)一個(gè) SqlSessionFacoty.

SqlSessionFacoty 在整個(gè) Mybatis 運(yùn)行流程中的作用如下圖。

在這里插入圖片描述

配置 SqlSessionFactory 對(duì)象時(shí),將數(shù)據(jù)庫(kù)連接池注入到其中,再配置 mybatis 全局配置文件 。
我的理解是:在 SqlSessionFactory 創(chuàng)建 SqlSession 連接數(shù)據(jù)庫(kù)時(shí),需要知道數(shù)據(jù)庫(kù)連接池的信息,以及數(shù)據(jù)源。

2.1.4 配置掃描dao接口包

MapperScannerConfigurer 自動(dòng)掃描將 Mapper 接口生成代理注入到 Spring容器,Mybatis 在與 Spring 整合的時(shí)候配置 MapperFactoryBean 來(lái)生成 Mapper 接口的代理。 basePackage 屬性是讓你為映射器接口文件設(shè)置基本的包路徑,你可以使用分號(hào)或者逗號(hào)作為分隔符設(shè)置多余一個(gè)包的路徑,每個(gè)映射器將會(huì)在指定的包路徑中遞歸的被搜索到。 注意,沒(méi)有必要去指定 SqlSessionFactory 或 SqlSessionTemplate,因?yàn)?MapperScannerConfigurer 將會(huì)創(chuàng)建 MapperFactoryBean,之后自動(dòng)裝配,但如果使用了一個(gè)以上的 DataSource,那么自動(dòng)裝配可能會(huì)失效。這種情況下,可以使用 sqlSessionFactoryBeanName 或 sqlSessionTemplateBeanName 屬性來(lái)設(shè)置正確的 bean 名稱來(lái)使用。

大白話理解:掃描dao層的接口,MapperScannerConfigurer 會(huì)自動(dòng)為每個(gè)接口生成一個(gè) 接口代理,這個(gè)接口代理是接口的實(shí)現(xiàn)類,并注入到Spring容器中。

 2.2 Spring 整合 service 層

<?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
 http://www.springframework.org/schema/context/spring-context.xsd">

 <!-- 掃描service相關(guān)的bean -->
 <context:component-scan base-package="com.fyy.service" />

 <!--BookServiceImpl注入到IOC容器中-->
 <bean id="BookServiceImpl" class="com.fyy.service.BookServiceImpl">
  <property name="bookMapper" ref="bookMapper"/>
 </bean>

 <!-- 配置事務(wù)管理器 -->
 <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
  <!-- 注入數(shù)據(jù)庫(kù)連接池 -->
  <property name="dataSource" ref="dataSource" />
 </bean>
</beans>

事務(wù)管理器:DataSourceTransactionManager

事務(wù)管理是應(yīng)用系統(tǒng)開(kāi)發(fā)中必不可少的一部分。Spring 為事務(wù)管理提供了豐富的功能支持。Spring 事務(wù)管理分為編碼式和聲明式的兩種方式。編程式事務(wù)指的是通過(guò)編碼方式實(shí)現(xiàn)事務(wù);聲明式事務(wù)基于 AOP,將具體業(yè)務(wù)邏輯與事務(wù)處理解耦。聲明式事務(wù)管理使業(yè)務(wù)代碼邏輯不受污染, 因此在實(shí)際使用中聲明式事務(wù)用的比較多。聲明式事務(wù)有兩種方式,一種是在配置文件(xml)中做相關(guān)的事務(wù)規(guī)則聲明,另一種是基于 @Transactional 注解的方式。

其中 配置文件聲明事務(wù),是將數(shù)據(jù)庫(kù)連接池注入到 事務(wù)管理器中。關(guān)于注解方式聲明事務(wù),就不在這里做過(guò)多介紹,后期會(huì)單獨(dú)拿出來(lái)分享Spring事務(wù)。

3 整合 SpringMVC

web.xml 配置文件

3.1 web.xml 文件是如何執(zhí)行的?

3.1.1 執(zhí)行順序

訪問(wèn)順序?yàn)椋?code>1->2->3->4,其中 2 和 3 的值必須相同。

url-pattern標(biāo)簽代表當(dāng)一個(gè)請(qǐng)求發(fā)送到 servlet 容器時(shí),容器會(huì)先將請(qǐng)求的 url 減去 當(dāng)前應(yīng)用上下文的路徑作為 servlet 的映射 url,比如我訪問(wèn)的是 http://localhost/test/aaa.html,我的應(yīng)用上下文是 test,容器會(huì)將 http://localhost/test 去掉,剩下的 /aaa.html 部分拿來(lái)做 servlet 映射匹配。如果與 設(shè)置的 url-pattern 映射匹配成功,請(qǐng)求才會(huì)被 DispatcherServlet 處理。圖中的 <url-pattern> 中的值為:/,代表所有請(qǐng)求都會(huì)被處理。

而被DispatcherServlet 處理前,還會(huì)經(jīng)過(guò) 2 ,3 步驟,url 匹配成功后,這個(gè) url 訪問(wèn)名為 servlet-name 中值的 servlet,兩個(gè) servlet-name 值必須相同,因?yàn)?servlet 標(biāo)簽中的 servlet-name 標(biāo)簽映射到 servlet-class 標(biāo)簽中的值,最終訪問(wèn) servlet-class 標(biāo)簽中的 DispatcherServlet 類,此時(shí),請(qǐng)求才會(huì)被 DispatcherServlet 處理。

3.1.2 init-param標(biāo)簽

圖中 \標(biāo)簽中的 \標(biāo)簽作用是,設(shè)置 springmvc 配置文件位置以及名稱,springmvc配置文件不設(shè)置默認(rèn)位置是:webapp,可以使用 classpath 設(shè)置文件的名稱為:spring-mvc.xml ,代表 springmvc 配置文件名必須為 spring-mvc.xml,如不使用 classpath 設(shè)置其路徑及名稱,默認(rèn)在 webapp下,名稱為:\標(biāo)簽中的值 + "-servlet.xml",例如:如 標(biāo)簽中值為:springmvc,則默認(rèn)的 springmvc 配置文件名為:springmvc-servlet.xml

3.1.3 load-on-startup標(biāo)簽

 圖中 \標(biāo)簽作用是,設(shè)置 servlet加載時(shí)間,如不設(shè)置默認(rèn)在第一次請(qǐng)求訪問(wèn)時(shí)加載 servlet,若設(shè)置此標(biāo)簽值為正整數(shù),會(huì)將 servlet 的加載時(shí)間提前到項(xiàng)目啟動(dòng)時(shí),此標(biāo)簽中可以寫整數(shù),但寫負(fù)整數(shù)和0和沒(méi)有設(shè)置是一樣的效果,只有設(shè)置為正整數(shù)才會(huì)將 servlet 的加載時(shí)間提前到項(xiàng)目啟動(dòng)時(shí),也就是 tomcat 啟動(dòng)時(shí),值越小,代表優(yōu)先級(jí)越高。

 3.2 springmvc 配置文件是如何執(zhí)行的?

spring-mvc.xml 配置文件

3.2.1 mvc:annotation-driven作用?

springmvc注解驅(qū)動(dòng)會(huì)自動(dòng)注冊(cè):DefaultAnnotationHandlerMapping 與 AnnotationMethodHandlerAdapter 兩個(gè)bean,這兩個(gè) bean 是 SpringMVC 為 @Controller 分發(fā)請(qǐng)求所必須的,解決了使用 @Controller 注解的前提配置。

在 Spring MVC 3.1 以上:

  • DefaultAnnotationHandlerMapping 變更為:RequestMappingHandlerMapping
  • AnnotationMethodHandlerAdapter 變更為:RequestMappingHandlerAdapter

通常如果我們希望通過(guò)注解的方式來(lái)進(jìn)行 SpringMVC開(kāi)發(fā),我們會(huì)在 springmvc 配置文件中使用 注解驅(qū)動(dòng):\,那這個(gè)標(biāo)簽做了什么?通過(guò)尋找源碼,找到注解驅(qū)動(dòng)的實(shí)現(xiàn)類是:org.springframework.web.servlet.config.AnnotationDrivenBeanDefinitionParser

我們來(lái)看看這個(gè)類主要做了什么工作?

AnnotationDrivenBeanDefinitionParser類向工廠中注冊(cè)了幾個(gè) bean 實(shí)例,其中包括:

  1. RequestMappingHandlerMapping
  2. BeanNameUrlHandlerMapping
  3. RequestMappingHandlerAdapter
  4. HttpRequestHandlerAdapter
  5. SimpleControllerHandlerAdapter
  6. ExceptionHandlerExceptionResolver
  7. ResponseStatusExceptionResolver
  8. DefaultHandlerExceptionResolver

上面的bean實(shí)例都是做什么的呢?

前兩個(gè) bean 是 HandlerMapping 接口的實(shí)現(xiàn)類,用來(lái)處理請(qǐng)求映射的。其中第一個(gè)處理是 @RequestMapping 注解的,第二個(gè)是將 controller 類的名字映射為 請(qǐng)求 url,中間三個(gè) adpter 是用來(lái)處理請(qǐng)求的,具體說(shuō)就是確定調(diào)用哪個(gè) controller 的哪個(gè)方法來(lái)處理當(dāng)前請(qǐng)求,第一個(gè)處理 @Controller 注解的處理器,支持自定義方法參數(shù)和返回值,第二個(gè)是處理繼承 HttpRequestHandler 的處理器,第三個(gè)處理繼承自 Controller 接口的處理器,后面三個(gè)是用來(lái)處理異常的解析器。

結(jié)論

如果使用@Controller 注解,沒(méi)有配置注解驅(qū)動(dòng): <mvc:annotation-driven> 的話,那么所有的請(qǐng)求都無(wú)法找到 DispatcherServlet ,并無(wú)法把請(qǐng)求分發(fā)至控制器。添加注解驅(qū)動(dòng)后,才會(huì)掃描所有帶有 @Controller 注解的類,由 spring 管理并維護(hù)。

3.2.2 mvc:default-servlet-handler作用?

還記得我們?cè)?web.xml 中配置了 url-pattern,用來(lái)過(guò)濾請(qǐng)求,SpringMVC 將接收到的所有請(qǐng)求都看做是一個(gè)普通請(qǐng)求,包括對(duì)于靜態(tài)資源的請(qǐng)求,這樣一來(lái),所有對(duì)于靜態(tài)資源的請(qǐng)求都會(huì)被看做是一個(gè)普通的后臺(tái)控制器請(qǐng)求,而靜態(tài)資源的請(qǐng)求會(huì)因?yàn)檎也坏劫Y源而報(bào)404異常。查看 tomcat 日志就可以看到會(huì)有警告。

在這里插入圖片描述

對(duì)于此問(wèn)題 SpringMVC 在全局配置文件中提供了一個(gè) <mvc:default-servlet-handler>標(biāo)簽,在 web 容器啟動(dòng)的時(shí)候會(huì)在上下文中定義一個(gè) DefaultServletHttpRequestHandler ,它會(huì)對(duì) DispatcherServlet 請(qǐng)求進(jìn)行處理,如果該請(qǐng)求已經(jīng)做了映射,那么會(huì)接著交給后臺(tái)對(duì)應(yīng)的處理程序,如果沒(méi)有映射,就交給 web 應(yīng)用服務(wù)器默認(rèn)的 servlet 處理,從而找到對(duì)應(yīng)的靜態(tài)資源,只有找不到靜態(tài)資源時(shí)會(huì)報(bào)錯(cuò)。

如果默認(rèn)的 Servlet 容器不用默認(rèn)的 default ,用不同名稱進(jìn)行自定義配置,或者在缺省 Servlet 名稱未知的情況下使用了不同的 Servlet 容器,則必須顯示提供默認(rèn) Servlet 的名稱。

<mvc:default-servlet-handler default-servlet-name="myCustomDefaultServlet"/>

3.2.3 context:component-scan 作用?

掃描組件,將所有使用 @Controller 注解的類作為 SpringMVC 的控制層。其中 base-package 屬性是指定掃描的包。

3.2.4 視圖解析器 作用?

 視圖解析器,是將 prefix + 視圖名稱 + suffix = 確定最終要跳轉(zhuǎn)的頁(yè)面,其中視圖名稱是什么?? 處理請(qǐng)求的方法會(huì)返回一個(gè)字符串,這個(gè)字符串即視圖名稱,最終會(huì)通過(guò)配置文件中配置的視圖解析器實(shí)現(xiàn)頁(yè)面的跳轉(zhuǎn)。例如:

@Controller
public class TestController {
 @RequestMapping("hello")
 public String hello() {
  System.out.println("success");
  return "success";
 }
}

# 其中返回字符串為:success,所以處理此請(qǐng)求最終要跳轉(zhuǎn)的頁(yè)面為:/WEB-INF/view/success.jsp

關(guān)于 SpringMVC的講解可以查看小編的另一篇文章。SpringMVC從基礎(chǔ)到源碼

4 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"
  xsi:schemaLocation="http://www.springframework.org/schema/beans
  http://www.springframework.org/schema/beans/spring-beans.xsd">

 <import resource="classpath:spirng/spring-dao.xml"/>
 <import resource="classpath:spirng/spring-service.xml"/>
 <import resource="classpath:spirng/spring-mvc.xml"/>
</beans>

applicationContext.xml,Spring 的核心配置文件,也可以通過(guò)配置文件修改名稱。 什么時(shí)候讀取配置文件,當(dāng)我們?cè)诳蛻舳诵陆?ApplicationContext 實(shí)例時(shí),會(huì)加載此配置文件,其中常用的 ApplicationContext 實(shí)現(xiàn)類有:

  • ClassPathXmlApplicationContext
  • ClassPathResource
  • XmlWebApplicationContext
  • FileSystemXmlApplicationContext

其中 \ 是將多個(gè)配置文件通過(guò)導(dǎo)入的方式整合,讓配置信息更清晰,達(dá)到了解耦的效果。

結(jié)束

以上就是本人學(xué)習(xí)ssm框架配置的總結(jié),有的地方不夠深入,但對(duì)于初學(xué)者來(lái)說(shuō)應(yīng)該也會(huì)收獲頗豐,如有錯(cuò)誤,還請(qǐng)大佬們指正!更多相關(guān)ssm框架整合內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論