三大框架 之 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 ...
随机推荐
- Oracle 子查询(复杂select语句)
在执行数据操作时,如果某个操作需要依赖于另外一个 select语句的查询结果,那么就可以把 select 语句迁入到该操作语句中,这样就形成了一个子查询.实际应用中,表与表之间相互关联,相互依存,这样 ...
- Matlab title正确显示下划线
前言 使用matlab中title语句,直接敲下划线无法正确显示. title('MSB_data'); 流程 使用如下语句即可:直接字符串转译 title('MSB_data','Interpret ...
- ABAP开发者上云的时候到了 - 现在大家可以免费使用SAP云平台ABAP环境的试用版了
之前Jerry已经写了一系列SAP Cloud Platform ABAP编程环境的文章,当时使用的环境,是SAP专门为SAP社区导师们创建的. 当时也有朋友留言,询问大家何时才能使用到免费的SAP云 ...
- 编译安装php服务报错问题:configure: error: Cannot find libmysqlclient under /usr.
在编译安装php服务时报错: checking for MSSQL support via FreeTDS... nochecking for MySQL support... yeschecking ...
- [S32K144]多通道ADC使用
1. 基本特性 问:多通道是否可以采用continuous模式,然后定时器中断读取:或者直接ADC连续采样,ADC中断赋值Buffer,然后采样处理线程负责使用,因为中断可以保证值最新? 答:从手册下 ...
- kubectl 命令自动补全
kubectl 命令自动补全 在linux上 # yum install -y bash-completion # source /usr/share/bash-completion/bash_com ...
- UniChat-软件工程小组-第一次作业-选题
软件工程小组项目文档 小组成员:赵有为.张天善.宋春雨.郭凯璐.孙楠.冯韵瑶 Uni-Chat项目文档 需求分析Need 日常生活中我们在使用Ubuntu等系统时都会因为QQ等聊天工具对基于Lin ...
- redis问题解决 Caused by: io.lettuce.core.RedisException: io.lettuce.core.RedisConnectionException: DENIED Redis is running in protected mode because protected mode is enabled, no bind address was specifie
1找到redis的配置文件 redis.conf vim redis.conf 修改 protected-mode yes 改为 protected-mode no 注释掉 #bin 127.0.0 ...
- 【ocata】计算节点的 neutron 报错
挂起/关闭实例时,/var/log/neutron/linuxbridge-agent.log中报错,但不影响使用 -- :: INFO neutron.plugins.ml2.drivers.age ...
- vue 关于props 父组件传值
swiper.vue 子组件 info.vue 父组件 swiper.vue<template> <div class="swiper-wrap" @mouse ...