三大框架 之 SSH整合
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整合的更多相关文章
- Java - 框架之 SSH 整合
代码获取 十四. ssh 整合1 - 包 1. Struts jar 包 - Struts-2.xx\apps\stutrs2-blank\WEB-INF ...
- SSH三大框架的搭建整合(struts2+spring+hibernate)(转)
原文地址:http://blog.csdn.net/kyle0349/article/details/51751913 尊重原创,请访问原文地址 SSH说的上是javaweb经典框架,不能说100% ...
- SSH三大框架的基本整合以及常见错误的解决方法
一.新建项目 eclipse->file->new->other->Dynamic Web Project,project name为sshDemo 二.下载jar包 1.st ...
- SSH三大框架的搭建整合(struts2+spring+hibernate)
本文转载自:https://blog.csdn.net/kyle0349/article/details/51751913
- (转)hibernate-5.0.7+struts-2.3.24+spring-4.2.4三大框架整合
http://blog.csdn.net/yerenyuan_pku/article/details/70040220 SSH框架整合思想 三大框架应用在JavaEE三层结构,每一层都用到了不同的框架 ...
- 三大框架SSH整合
三大框架SSH整合 -------------------------------Spring整合Hibernate------------------------------- 一.为什么要整合Hi ...
- 三大框架SSH(struts2+spring+hibernate)整合时相关配置文件的模板
最近在学SSH三大框架的整合,在此对他们整合时相关配置文件做一简单的模板总结,方便以后复用! 首先是web.xml配置文件,这里面就配置一些简单的监听器.过滤器,包括spring核心配置文件appli ...
- SSH三大框架整合案例
SSH三大框架的整合 SSH三个框架的知识点 一.Hibernate框架 1. Hibernate的核心配置文件 1.1 数据库信息.连接池配置 1.2 Hibernate信息 1.3 映射配置 ...
- SSH三大框架的整合
SSH三个框架的知识点 一.Hibernate框架 1. Hibernate的核心配置文件 1.1 数据库信息.连接池配置 1.2 Hibernate信息 1.3 映射配置 1.4 Hibernate ...
随机推荐
- 安卓MediaPlayer框架之Binder机制
Binder简介 Binder是Android系统进程间通信的主要方式之一. 1.在ASOP中,Binder使用传统的C/S通信方式:即一个进程作为服务端提供诸如视音频解封装,解码渲染,地址查询等各种 ...
- Android Room 使用案例
本内容主要介绍 Android 中使用 Room 保存数据到本地数据库的方法. 以下是 Android Room 的官方介绍文档: Room Persistence Library(Room 库的简 ...
- org.apache.shiro.session.UnknownSessionException: There is no session with id [xxxx]的解决方案
org.apache.shiro.session.UnknownSessionException: There is no session with id [xxxx]的解决方案 背景描述 Sprin ...
- Java中数组的定义,初始化和使用
定义:数组是数据类型相同的,用一个标志符名称封装在一起的一个对象序列或基本类型数据序列(一组相同数据类型元素的集合,并且分配一块连续的内存来存储). 格式:int[] a1(常用) 或者 int a ...
- 修改ActiveMQ的内存大小
有时我们需要修改ActiveMQ的内存大小,防止内存溢出! 修改配置文件下-Xmx参数然后重启mq即可: /fs01/apache-activemq-5.15.0/bin/env ACTIVEMQ_O ...
- windows nginx
nginx.exe -s stop stop是快速停止nginx,可能并不保存相关信息: nginx.exe -s quit quit是完整有序的停止nginx,并保存相关信息. nginx.exe ...
- Flink原理(七)——动态表(Dynamic tables)
前言 本文是结合Flink官网,个人理解所得,若是有误欢迎留言指出,谢谢!文中图皆来自官网(链接[1]). 本文将随着下面这个问题展开,针对该问题更为生动的解释可以参见金竹老师的分享(链接[2]). ...
- IAR8.X安装教程
安装教程 1.下载 2.安装 3.和谐 1.下载 打开官网 找到要下载的版本3. 下载8.4下载地址 不支持中文路径,有点坑https://netstorage.iar.com/SuppDB/Pro ...
- 关于MQ的几件小事:消息队列的用途、优缺点、技术选型
原文:https://www.cnblogs.com/jack1995/p/10908789.html 1.为什么使用消息队列? (1)解耦:可以在多个系统之间进行解耦,将原本通过网络之间的调用的方式 ...
- ffmpeg常用命令-学习
文章标题:FFmpeg常用命令合集 文章地址:https://blog.csdn.net/lemon_tree12138/article/details/99719520