三大框架 之 SSH整合
阿新 • • 發佈:2019-04-20
業務層 服務器 設置 cati ppi 解決 ace ade rda
? 2.配置監聽器
?
?
目錄
- SSH整合
- Spring整合web項目
- 在Servlet當中直接加載配置文件,獲取對象
- 存在問題
- 解決方案
- SSH整合
- 引入Jar包
- 引入配置文件
- 創建包結構
- 創建相關類
- 創建Customer業務層,把業務層交給spring管理
- spring整合struts
- 創建CustomerDao,交給spring管理
- 在業務當中註入dao
- Spring整合Hibernate框架
- Spring整合web項目
SSH整合
Spring整合web項目
在Servlet當中直接加載配置文件,獲取對象
存在問題
- 每次請求都會創建一個Spring的工廠,這樣浪費服務器資源,應該一個項目只有一個Spring的工廠。
- 在服務器啟動的時候,創建一個Spring的工廠。
- 創建完工廠,將這個工廠類保存到ServletContext中。
- 每次使用的時候都從ServletContext中獲取。
解決方案
? 使用spring核心監聽器ContextLoaderListener
? 1.引入jar包 spring-web.jar
?
?
<!-- 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整合