SSM框架整合總結


關於ssm整合的相關總結:

1.持久層--->mybatis:通過Spring 來管理持久層的 Mapper (相當於 dao 接口),來完成對數據庫的操作。
首先我們回顧一下,在單獨使用mybatis的時候,在其配置文件中有哪些必須的配置!
①mybatis.xml全局配置文件
由於該核心配置文件是用來操作底層數據庫的,故而必須會有一些登陸數據庫、事務控制等操作的相關配置。

a.配置連接數據庫的數據源DataSource--->(包括連接數據的url,driver,username,password等等)
b.配置操作數據庫的事務控制TransactionManager--->(例如: )
c.連接mapper.xml配置文件--->(例如: )
d.配置sqlSessionFactory---->(為何我要將sqlSessionFactory寫在這里呢?因為我們在單獨使用mybatis的時候,是單獨創建該對象的。
代碼如下所示:
String resource = "mapper.xml";
Reader reader = Resources.getResourceAsReader(resource);
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
SqlSessionFactory factory = builder.build(reader);
由 sqlSessionFactory 創建 sqlSession ,再有 sqlSession 操作數據庫發出SQL進行 CURD,但是我們知道,在進行 spring 與 mybatis 整合的時候,這種使用“new”來創建對象的方法將不再符合 spring 框架的思想了!)

②mapper.xml映射配置文件
該配置文件主要是配置SQL映射語句。其中包括簡單關系與復雜關系。
比較常用的關系配置如下:
a.簡單配置

//主鍵配置
//其它非主鍵配置

......

b.一對一關系:

//注意它使用的是“javaType”



......

b.一對多關系:

//注意它使用的是“ofType”



......

2.業務層--->spring:通過Spring 來管理業務層的 service (通過調用 mapper 接口),通過spring的IOC和DI來實現完全的面向接口編程,降低類之間的耦合,並且使用spring AOP來控制事務處理。
使用比較多的是包的自動掃描,與自動注入。配合@Autowired @Resource @component @Repository @Service @Controller注解的使用。

3.表現層--->springMVC:通過Spring 來管理表現層的 Handler (通過調用 Service 接口),來實現流程跳轉的控制。
由於springMVC是springframework 框架的組成部分,故而,只要配置其本身所需要的配置即可。那么springMVC有哪些本身需要的配置呢?
由springMVC 運行的流程控制圖中我們可以看到其中幾個比較重要的“器”,它是我們配置的關鍵。
①前端控制處理器--->DispatcherServlet
它是springMVC運行的中央控制器,在web.xml中配置。它的作用是指定springMVC配置文件的位置,並在serlet-mapping中指定過濾條件(一種是“/”,一種類似“.action”)
例如下:

dispatcher
org.springframework.web.servlet.DispatcherServlet

加載/WEB-INF/spring-mvc/目錄下的所有XML作為Spring MVC的配置文件
contextConfigLocation
/WEB-INF/spring-mvc/
.xml

</init-param>
<load-on-startup>1</load-on-startup>
dispatcher *.html

②處理器映射器--->HandlerMapping(處理器映射器的功用是根據請求的url查找Hanler)
之前使用的標簽為:
之后,HandlerMapping 與 HandlerAdapter合並為一個功能更為強大的標簽:
mvc注解驅動 mvc:annotation-driven</mvc:annotation-driven>。雖然他們兩個已經合並,可是我們需要知道,有些功能其實在本質上還是由HandlerMapping來實現的,譬如說在springMVC中實現攔截器。

③處理器適配器--->HandlerAdapter(處理器適配器的作用是按照特定的規則去執行Handler)
同處理器映射器一樣,處理器適配器總是與之一起配對出現。而如今它已經被“MVC注解驅動”mvc:annotation-driven</mvc:annotation-driven>標簽所替代,但是我們都知道,有關於”參數綁定“與“Validation校驗”這些功能的實現都與HandlerAdapter相關聯的。

④處理器--->Handler
@Controller注解 與 @RequestMapping() 注解
由於注解開發帶來越來越多的便利,大家都越來越習慣與這種簡介便利的開發方式。
使用注解開發,自然需要讓spring容器能掃描到該注解,這樣才能識別出相應的“Handler”。使用spring的包自動掃描標簽:
<context:component-scan base-package="com.minx.crm.web.controller"/>
有時候也可以在其中添加過濾條件,使其效率更高:
<context:component-scan base-package="com.controller" use-default-filters="false"/>

        <!-- annotation是對注解進行掃描 -->
        <context:include-filter type="annotation" expression="org.springframework.stereotype.Component"/> 
        <!-- assignable是對類或接口進行掃描 -->
        <context:include-filter type="assignable" expression="com.wjx.betalot.performer.Performer"/>
         <context:include-filter type="regex" expression="com.baobaotao.service..*"/> 
        <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
        <context:exclude-filter type="assignable" expression="com.wjx.betalot.performer.impl.RainPoem"/>
        <context:exclude-filter type="regex" expression=".service.*"/> 

</context:component-scan>

⑤視圖解析器--->ViewResolver
由於springmvc支持多種視圖(例如jsp、pdf、excel、freemark...)故而需要視圖解析器來根據邏輯視圖名來進行解析。
例如下配置可以實現對視圖名前綴后綴的自動解析:

——————————————————————————————————————————————————————
分析完上面各自獨立的部分,那么我們來看看哪些部分可以實現整合。
1.持久層--->mybatis:

2.業務層--->spring:

3.表現層--->springMVC:

////end


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM