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

添加事务

在业务层上添加事务注解

最新文章

  1. 使用TextUtils.isEmpty简单化代码
  2. maven profile的使用
  3. nodejs与javascript中的aes加密
  4. jquery 选择器(name,属性,元素)大全
  5. hdu5219 Repeating
  6. tomcat(三)--基本安装配置
  7. Redis-cluster集群【第二篇】:redis持久化
  8. eclipse项目中关于导入的项目里提示HttpServletRequest 不能引用的解决办法
  9. 导出excel时,以form方式提交json数据
  10. iOS开发小技巧--字典和数组的中文输出
  11. asp.net mvc上传头像加剪裁功能介绍
  12. 起启航-华夏互联与杰华网络合体结盟打造本土IT利舰
  13. android multicast 多播(组播)问题
  14. gps数据转百度地图坐标
  15. Visual Studio 2017 : client version 1.22 is too old
  16. 消息队列mq的原理及实现方法
  17. Oracle12c中功能及性能新特点之with子句的增强
  18. python(pygame)滑稽大战(类似飞机大战) 教程
  19. 【洛谷P3960】列队题解
  20. apollo入门(一)

热门文章

  1. Computer Vision_33_SIFT:Fast Adaptive Bilateral Filtering——2018
  2. CPN tools 帮助文档资料和实例
  3. KVM虚拟化之嵌套虚拟化nested
  4. Mongodb的主从复制
  5. Kubernetes+Federation打造跨多云管理服务
  6. 远程桌面远程代码执行漏洞(CVE-2019-0708)Poc
  7. Count the Colors 线段树
  8. python算法与数据结构-快速排序算法(36)
  9. P1402 酒店之王[网络瘤(正解)/匈牙利(错解)]
  10. SQL 语句中关于 NULL 的那些坑