目录
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>