Spring+Struts2/Hibernate 学习笔记
============Spring与Struts2整合============
(1)拷JAR包(Spring、Struts2)
(2)配置org.springframework.web.context.ContextLoaderLisener来加载Spring容器
默认以WEB-INF/applicationContext.xml作为配置文件
如果配置文件不叫该名称,或者没放在该路径下,那就应该配置contextConfigLocation参数
(3)配置Struts2的核心Filter
核心Filter要去加载Struts2的配置文件
(4)Stuts2与Spring整合之后的区别:
A. 调用业务逻辑组件方法之前,无需自己创建业务逻辑组件,要为它提供setter方法
B. 复制struts-spring-plugin.jar包到WEB-INF/lib目录下
该JAR包会把配置在struts-config.xml文件中的Action交给Spring去管理
C. Spring将根据自动装配的策略把Service组件注入到Action。
自动装配的策略:byName -根据setter方法的名字来注入
byType -根据setter方法的形参类型注入
=========自动装配=========
autowire - 指定自动装配策略
byName 如果是byName的自动装配策略,Spring会负责把setter方法名对应
的Bean注入
如果没有找到,就不执行注入(即不调用这个setter方法)
byType Spring会负责把容器类型为setter方法形参类型的Bean注入进来
如果没有找到,就不执行注入(即不调用这个setter方法)
如果找到了多个Bean,那就报错了,出现异常
autowire-candidate-true/false。如果为false,表明它不作为自动装配的候选人
=====================Spring与Hibernate=======================
Spring与Hibernate的整合
1. 直接在配置文件中配置SessionFactory,Spring容器负责管理SessionFactory
Spring容器就可以SessionFactory注入其他组件中
2. 有效的Session管理
3. 声明式的事务管理
4. 统一的异常包装
Spring为简化Hibernate操作提供了一个类:HibernateTemplate
门面模式:实际上,我们应该只要传入hq1、val1、val2、val3...程序就应该返回查询结果。
Spring的HibernateTemplate实现了这种门面模式:
- List find(hql)
- List find(String queryString,Object... values)
- List find(hql,Object value)
- get(String entityName,Serializable id)/load(String entityName,Serializable id)
- delete(Object entity)
- save(Object entity)/persist(Object entity)
- update/saveOrUpdate(Object entity)
/******************************************
在原来的Hibernate查询里:
Session sess=sf.openSession()
Transaction tx=sess.beginTranasction();
Query query=sess.creatQuery("from...");
query.setParameter(val1);
query.setParameter(val2);
query.setParameter(val3);
query.list();
如果用传统的Hibernate编程模式,需要有顺序地、依次调用3个API的方法。
******************************************/
Spring为简化Hibernate操作提供了一个类:HibernateTemplate
主要为HibernateTemplate传入一个SessionFactory,接下来的绝大部分持久化操作只要一行代码即可搞定。
Spring+Struts2/Hibernate 学习笔记的更多相关文章
- Intellij IDEA 2019 + Java Spring MVC + Hibernate学习笔记(1)
之前的技术栈一直是围绕.net 做的,现在.net 技术栈的使用越来越少,越来越窄.好多原来的同事都转Java开发了. 最近公司变动,自己需要重新找个坑,压力山大.好多要求Java技术栈的根本没机会进 ...
- Intellij IDEA 2019 + Java Spring MVC + Hibernate学习笔记(2)
书接上文 首先根据各种Spring MVC教程,建立了基础的结构,是否合理不知道,姑且先这样,有问题再解决问题.学习新东西,不能怕掉坑里... 查询网上别人的经历说需要把根目录下的lib目录下的所有包 ...
- Hibernate学习笔记(二)
2016/4/22 23:19:44 Hibernate学习笔记(二) 1.1 Hibernate的持久化类状态 1.1.1 Hibernate的持久化类状态 持久化:就是一个实体类与数据库表建立了映 ...
- [Java web]Spring+Struts2+Hibernate整合过程
摘要 最近一直在折腾java web相关内容,这里就把最近学习的spring+struts2+hibernate进行一个整合,也就是大家经常说的ssh. 环境 工具IDE :Idea 2018 数据库 ...
- Hibernate学习笔记(一)
2016/4/18 19:58:58 Hibernate学习笔记(一) 1.Hibernate框架的概述: 就是一个持久层的ORM框架. ORM:对象关系映射.将Java中实体对象与关系型数据库中表建 ...
- Hibernate 学习笔记一
Hibernate 学习笔记一 今天学习了hibernate的一点入门知识,主要是配置domain对象和表的关系映射,hibernate的一些常用的配置,以及对应的一个向数据库插入数据的小例子.期间碰 ...
- Hibernate学习笔记-Hibernate HQL查询
Session是持久层操作的基础,相当于JDBC中的Connection,通过Session会话来保存.更新.查找数据.session是Hibernate运作的中心,对象的生命周期.事务的管理.数据库 ...
- 简单Spring+Struts2+Hibernate框架搭建
使用Maven+Spring+Struts2+Hibernate整合 pom文件 <project xmlns="http://maven.apache.org/POM/4.0.0&q ...
- SSH(Spring Struts2 Hibernate)框架整合(注解版)
案例描述:使用SSH整合框架实现部门的添加功能 工程: Maven 数据库:Oracle 框架:Spring Struts2 Hibernate 案例架构: 1.依赖jar包 pom.xml < ...
随机推荐
- 堆外内存操作类ByteBuffer
本篇主要讲解如何使用直接内存(堆外内存),并按照下面的步骤进行说明: 1 相关背景-->读写操作-->关键属性-->读写实践-->扩展-->参考说明 希望对想使用直接内存 ...
- ubuntu16.04解决播放swf视频文件问题
使用下面 sudo apt-get install swfdec-gnome
- Struts2.3.4+Hibernate4.2.4+Mysql6.0整合
1.项目搭建过程: (1). 创建一个Web Project.导入Struts2和Hibernate的jar包.(如果不知道Struts2的jar包,可以在下载的struts的jar包中,找到apps ...
- apache 配置https
1.生成密钥# openssl genrsa 1024 > server.key这是用128位rsa算法生成密钥,并保存到server.key文件 2.生成证书请求文件# openssl req ...
- cocos2dx音乐与音效
// 预加载音乐和音效 SimpleAudioEngine::sharedEngine()->preloadBackgroundMusic(CCFileUtils::sharedFileUtil ...
- 10. Max Points on a Line
Given n points on a 2D plane, find the maximum number of points that lie on the same straight line. ...
- 在CentOS上搭建PHP服务器环境
您也可以使用一键自动部署环境的工具,请参见网友开发的这个工具 http://www.centos.bz/2013/08/ezhttp-tutorial/ 安装apache: yum insta ...
- javascript笔记:流程控制语句
一.条件语句 1.if语句 if 语句即条件判断语句,一共有三种格式: (1)if (条件表达式) 语句: var box = 100; if (box >50) { alert('box大于5 ...
- 用PHP获取系统时间时,时间比当前时间少8个小时
自PHP5.0开始,用PHP获取系统时间时,时间比当前时间少8个小时.原因是PHP.ini中没有设置timezone时,PHP是使用的UTC时间,所以在中国时间要少8小时. 解决办法: 1.在PHP. ...
- [转载]:fortran之format格式化输出总结
先贴一段别人总结好的: 格式化输出的控制字符非常的丰富,但常用的并不多,一般说来:" I .F.E.A.X "是最常使用的几个格式,最 好把它们都记下来. Iw[.m] 以w个字符 ...