1. 程式人生 > >三大框架 之 SSH整合

三大框架 之 SSH整合

業務層 服務器 設置 cati ppi 解決 ace ade rda

目錄

  • SSH整合
    • Spring整合web項目
      • 在Servlet當中直接加載配置文件,獲取對象
      • 存在問題
      • 解決方案
    • SSH整合
      • 引入Jar包
      • 引入配置文件
      • 創建包結構
      • 創建相關類
      • 創建Customer業務層,把業務層交給spring管理
      • spring整合struts
      • 創建CustomerDao,交給spring管理
      • 在業務當中註入dao
      • Spring整合Hibernate框架

SSH整合

Spring整合web項目

在Servlet當中直接加載配置文件,獲取對象

技術分享圖片

存在問題

  • 每次請求都會創建一個Spring的工廠,這樣浪費服務器資源,應該一個項目只有一個Spring的工廠。
  • 在服務器啟動的時候,創建一個Spring的工廠。
  • 創建完工廠,將這個工廠類保存到ServletContext中。
  • 每次使用的時候都從ServletContext中獲取。

解決方案

? 使用spring核心監聽器ContextLoaderListener
? 1.引入jar包 spring-web.jar

? 2.配置監聽器
?
?

<!-- Spring的核心監聽器 -->
<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

<!-- 加載Spring的配置文件的路徑的,默認加載的/WEB-INF/applicationContext.xml -->
<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:applicationContext.xml</param-value>
</context-param>

? 3.直接在Action當中獲取工廠

技術分享圖片

SSH整合

引入Jar包

引入配置文件

struts

? 創建配置文件
技術分享圖片

? 添加核心過濾器
技術分享圖片

hibernate

? 創建配置文件
技術分享圖片

spring

? 添加核心配置文件
技術分享圖片

? 在web.xml當中添加spring核心監聽器
技術分享圖片

創建包結構

創建相關類

創建domain,建立關系映射

技術分享圖片

技術分享圖片

創建CustomerAction,配置Struts

技術分享圖片

技術分享圖片

JSP當中input標簽添加name跳轉到action

技術分享圖片

創建Customer業務層,把業務層交給spring管理

技術分享圖片

技術分享圖片

技術分享圖片

?

spring整合struts

Action由struts自身創建

  • 到struts中找到struts-spring-plugin.jar導入

  • 讓Action按照名稱自動註入Service

技術分享圖片

Action由spring創建

  • 將Action交給spring來管理 ,並設置為多例

技術分享圖片

  • 在struts.xml當中配置action的class為spring中action的id

技術分享圖片

創建CustomerDao,交給spring管理

技術分享圖片

技術分享圖片

技術分享圖片

?

在業務當中註入dao

技術分享圖片

技術分享圖片

Spring整合Hibernate框架

在Spring的配置文件中,引入Hibernate的配置的信息

<!--引入屬性文件-->
<context:property-placeholder location="classpath:jdbc.properties"/>
<!--連接池-->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
    <property name="driverClassName" value="${jdbc.driverclass}" />
    <!--屬性文件當中的名稱不能和name名稱一樣-->
    <property name="url" value="${jdbc.url}" />
    <property name="username" value="${jdbc.username}" />
    <property name="password" value="${jdbc.password}" />
</bean>
<!-- Spring整合Hibernate -->
<!-- 引入Hibernate的配置的信息=============== -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
    <!-- 註入連接池 -->
    <property name="dataSource" ref="dataSource"/>
    <!-- 配置Hibernate的相關屬性 -->
    <property name="hibernateProperties">
        <props>
            <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop>
            <prop key="hibernate.show_sql">true</prop>
            <prop key="hibernate.format_sql">true</prop>
            <prop key="hibernate.hbm2ddl.auto">update</prop>
        </props>
    </property>
    <!-- 設置映射文件 -->
    <property name="mappingResources">
        <list>
            <value>com/itlike/domain/Account.hbm.xml</value>
        </list>
    </property>
</bean>

改寫DAO繼承HibernateDaoSupport

技術分享圖片

在DAO中直接註入SessionFactory

技術分享圖片

添加事務

技術分享圖片

在業務層上添加事務註解

技術分享圖片

三大框架 之 SSH整合