SSH集成(Struts+Spring+Hibernate)
环境:
struts2.3.X
spring4.0.0
hibernate4.2
思路:从下开始往上集成;层与层之间没有关系;在集成的时候,只关注当前集成的那个层的内容;
1,创建一个空的web项目;重新定位class文件编译路径
2,设置项目的编码;
3,完成domain;
4,完成映射文件;
5,写DAO接口;
6,写DAO实现
1),拷包(hiberante/required,数据库驱动,springcore/test/bean/context);
2),spring配置文件:
1),配置datasource;
2),添加db.properties文件;
3),引入db.properties文件;
3),配置sessionFactory
1),导入spring jdbc/tx/orm;
2),使用LocalSessionFactoryBean来创建SessionFactory;
1),配置dataSource;
2),配置hibernate的其他相关配置:直接在classpath下面创建一个hibernate.proeprties文件,在这里面加上show_sql,dailect,hbm2ddl.auto等hibernate配置;(spring会自动的加载和读入);
3),配置映射文件:使用的是扫描hbm.xml文件所在的文件夹路径来引入的(mappingDirectoryLocations,这个配置后面的内容可以使用classpath:前缀,注意是文件路径)
4),完成DAO:
1),直接在dao中注入一个SessionFactory;
2),在DAO中直接使用SessionFactory.getCurrentSession()来得到我们需要的session;
3),千万不要开启事务;
4),千万不要手贱关session;
5),在spring中配置DAO;
1),抽象一个baseDAO;<bean id="baseDAO" abstract="true" />
2),让employeeDAO继承BaseDAO;<bean id="employeeDAO" parent="baseDAO" />
7,写Service:
1),完成service接口和实现;
2),在spring中配置servicebean;
3),配置事务:
1),配置transcationMaanager,使用HibernateTransactionManager,并传入一个sessionFactory;
2),配置事务属性;
3),配置事务切面;
8,集成Struts2
1),拷贝相关内容(struts2.xml,struts2的jar包,web.xml)
2),完成Action;
3),在Spring中配置Action;注意,action的scope需要是prototype的;
4),完成struts的配置文件:
注意,在action的class属性,不能再写Action的类限定名;只能写这个Action在spring中配置的bean的id值;
5),导入spring-web.jar,struts2-spring-plugin.jar;
6),在web.xml中添加<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
7),在web.xml中添加spring框架启动的加载的配置文件路径:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
struts集成spring原理
在struts2-spring-plugin.jar中:
<!--配置了一个名字叫做spring的StrutsSpringObjectFactory -->
<bean type="com.opensymphony.xwork2.ObjectFactory" name="spring" class="org.apache.struts2.spring.StrutsSpringObjectFactory" />
<!-- struts.objectFactory代表,在struts中,使用哪个类来作为工厂类,生产struts需要的bean(包括action,interceptor) -->
<constant name="struts.objectFactory" value="spring" />
SSH集成(Struts+Spring+Hibernate)的更多相关文章
- SSH(struts+spring+hibernate)常用配置整理
SSH(struts+spring+hibernate)常用配置整理 web.xml配置 <?xml version="1.0" encoding="UTF-8&q ...
- 用eclipse搭建SSH(struts+spring+hibernate)框架
声明: 本文是个人对ssh框架的学习.理解而编辑出来的,可能有不足之处,请大家谅解,但希望能帮助到大家,一起探讨,一起学习! Struts + Spring + Hibernate三者各自的特点都是什 ...
- SSH(Struts+spring+hibernate)配置
1.spring和struts 1)web.xml 配置spring的ContextLoaderListener(监听器) 配置Struts的StrutsPrepareAndExecuteFilter ...
- SSH(Struts Spring Hibernate开发框架)
Spring(Model) Spring的核心思想是IoC和AOP,Spring使得管理对象更加方便,极大的降低组件之间的耦合度,实现了软件各层之间的解耦. Struts(View) 使用Struts ...
- Spring学习8-用MyEclipse搭建SSH框架 Struts Spring Hibernate
1.new一个web project. 2.右键项目,为项目添加Struts支持. 点击Finish.src目录下多了struts.xml配置文件. 3.使用MyEclipse DataBase Ex ...
- 【SSH进阶之路】Struts + Spring + Hibernate 进阶开端(一)
[SSH进阶之路]Struts + Spring + Hibernate 进阶开端(一) 标签: hibernatespringstrutsssh开源框架 2014-08-29 07:56 9229人 ...
- Struts + Spring + Hibernate 进阶开端(一)
Long Long ago,就听说过SSH,起初还以为是一个东东,具体内容更是不详,总觉得高端大气上档次,经过学习之后才发现,不仅仅是高大上,更是低调奢华有内涵,经过一段时间的研究和学习SSH框架的基 ...
- Struts+Spring+Hibernate进阶开端(一)
入行就听说SSH,起初还以为是一个东西,具体内容就更加不详细了,总觉得高端大气上档次,经过学习之后才发现,不仅仅是高大上,更是低调奢华有内涵,经过一段时间的研究和学习SSH框架的基本原理与思想,总算接 ...
- Struts,spring,hibernate三大框架的面试
Struts,spring,hibernate三大框架的面试 1.Hibernate工作原理及为什么要用? 原理: 1.读取并解析配置文件 2.读取并解析映射信息,创建SessionFactory 3 ...
- Struts+Spring+Hibernate整合入门详解
Java 5.0 Struts 2.0.9 Spring 2.0.6 Hibernate 3.2.4 作者: Liu Liu 转载请注明出处 基本概念和典型实用例子. 一.基本概念 St ...
随机推荐
- C#获取应用程序路径
string s = Environment.CurrentDirectory; //需添加Forms.DLL s = System.Windows.Forms.Application.Startup ...
- 爬虫工程师JD归纳
核心能力归纳 负责:多平台信息的抓取,清洗和分析工作 要求: 熟悉常用开源爬虫框架,如 scrapy / pyspider 了解基于Cookie的登录原理,熟悉常用的信息抽取技术,如正则表达式.XP ...
- SecureCRT的安装与破解(过程很详细!!!)
SecureCRT的安装与破解(过程很详细!!!) 使用SecureCRT可以方便用户在windows环境下对linux主机进行管理,这里为大家讲一下SecureCRT的破解方法,仅供大家参考学习: ...
- 2018-2019-1 20189208《Linux内核原理与分析》第八周作业
学习笔记 1.ELF目标文件格式 编译器生成目标文件,目标文件与目标平台二进制兼容. ELF:可执行或可链接的格式,是目标文件格式标准. ELF类型: 可重定位文件:编译器汇编器创建的 .o 文件,最 ...
- Max Area of Island
Given a non-empty 2D array grid of 0's and 1's, an island is a group of 1's (representing land) conn ...
- nmap简介和使用
文章链接:https://blog.csdn.net/m1585761297/article/details/80015726 参考链接:https://www.cnblogs.com/nmap/p/ ...
- POJ 3104 Drying
最让HSQ学长头疼的就是洗衣服了.洗完之后,每件衣服都有一定单位水分,在不使用烘干器的情况下,每件衣服每分钟自然流失1个单位水分,但如果使用了烘干机则每分钟流失K个单位水分.令人遗憾是HSQ所在的宿舍 ...
- Linux extmail的邮件服务器搭建
注:本文来源于<extmail搭建> 一.背景介绍 ExtMail Solution 是一个基于优秀开源软件的电子邮件系统解决方案,核心部件包括了Postfix.Amavisd-new.C ...
- ng2-translate 国际化中 配置文件添加变量
1. <li> {{ 'Withdrawmoney.tipsP1' | translate:{value:assets} }} </li> 2. "Withdrawm ...
- niagara Workbench module import IntelliJ
1. 在整个网络布线中使用一种布线方式,但是两端都有RJ-45 plug 的网络连线,无论是采用方式A还是方式B 端接的方式都是试用的.网络都是通用的,双绞线的顺序与RJ-45偶的引脚序号一一对应, ...