`
hongzhguan
  • 浏览: 272777 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

SSH整合

阅读更多
1.SSH整合的知识点(struts-hibernate-spring)

a.新建web-project
2.设置项目属性:右键(项目名称)-->属性-->java编译器-->版本设置为5.0
3.建立包结构
dao--->数据库操作的接口
hqldb--->数据库的实现类
domain--->放业务实体对象,如果使用hibernate放pojo和hbm.xml
service---->放业务逻辑类
util------->公共类
action,form,filter

4.配置Log4j属性文件(src目录下)
注意:当系统出错是,将info改为debug,摆出错误后改为info

5.初始化数据库,并在DB Browse中建立数据库连接

6.导入struts框架(并测试)
7.导入Spring框架
AOP:包含了面向切面的所有类库
Core:包含了使用IOC的所有类库
Persistence Core:包含了持久化的核心包
Persistence JDBC:包含了封装JDBC操作的类库,数据源,连接池等类库
Web:包含了Web开发以及Web框架集成的类库

注意:web项目,配置文件必须都放在WEB-INF下

I.避免每个class中编码载入Spring配置文件,可以在 Web.xml中集成Spring。两种方法: ContextLoaderListener和ContextLoaderServlet
注意:ContextLoaderListener不能在与Servlet 2.2兼 容的web容器中使用。servlet context listener要在 web应用程序的servlet context建立后立即执行。

//读取配置:将sessionFactory初始化的工作交给了web服务器
<!--ApplicationContext在WEB应用中的实例-->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB- INF/applicationContext.xml</param-value>
或者:<param-value>classpath:applicationContext.xml</param-value>
</context-param>
注意:下边a.b两种方式都需要上边的配置
      2.当有多个配置xml时,<param-value>classpath:applicationContext*.xml</param-value>

a.使用监听器ContextLoaderListener(web.xml中配置):在服务器启动时初始化spring配置文件的信息
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>

b.使用ContextLoaderServlet(web.xml中配置)------->spring-web.jar中
<servlet>
     <servlet-name>context</servlet-name>
     <servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>
     <load-on-startup>1</load-on-startup>
  </servlet>

注意:三种方式都需要在struts配置中配置控制器
<controller processorClass="org.springframework.web.struts.DelegatingRequestProcessor"/>


c.在struts中配置插件载入Spring的关于Action的配置文件
  <plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
  <set-property value="/WEB-INF/classes/applicationContext.xml" property="contextConfigLocation"/>
  </plug-in>

8.导入hibernate框架
  I.注意:在配置时若使用(hibernate.cfg.xml时),要在该文件中配置“事务提交”
<property name="connection.autocommit">true</property>

II.sessionFactory ID:sessionFactory
    Bean Id:dataSource


9.定义dao时继承HibernateDaoSupport类来实现HibernateTemplate对象的注入,也可以自己声明定义这个对象。
<!--自己定义HibernateTemplate对象-->
<bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
<!--dao中引用该对象-->
<bean id="userdao" class="完全限定名">
<property name="hibernateTemplate">
<ref bean="hibernateTemplate"/>
</property>
</bean>


I.<!-- 配置过滤器防止乱码 -->
<filter>
<filter-name>encoding</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>gb2312</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>



10.在action中注入dao:
  I.将struts中Action的type属性:type="org.springframework.web.struts.DelegatingActionProxy"
  II.在bean元素中配置时用name属性:<bean name="/student" class="完全限定名"/>
  注意:若配置了<controller/>元素,可以不需要type属性。

11.SSH框架中的注入:
IDAO:-------------->定义操作的接口(1个或多个=====>一般大于等于实现类)
IDAOImp:----------->接口的实现类,还要继承HibernateDaoSupport类
entityDAO:
Iservice:---------->定义业务处理的接口
IserviceImp:------->业务处理的实现类,在其中注入Idao接口对象
entitySerivce:
BaseAction:--------->在其中注入Iservice接口的对象,并实现DispatchAction类
Action:------------>继承BaseAction,进行业务处理操作


12.解决"延迟加载"
I.数据量较少:
  a.立即加载:Lazy="false" 
  b.预先抓取:fetch="join"---->迫切左外连接

II.数据量较多:
  a.延长生命周期========>过滤器

1.配置OpenSessionInView过滤器:解决hibernate中的懒加载。
注意:dao层的类必须都要继承HibernateDaoSupport,由spring来控制Hibernate的Session开启和关闭。

方法:在Web.xml中配置
<!---spring的OpenSessionInView实现---->
<filter>
<filter-name>openSessionInViewFilter</filter-name>
<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>openSessionInViewFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

注意:此时会造成"增删改"操作不能进行。
修改:例如:在调用删除时添加:
  this.getHibernateTemplate().setFlushMode(2);
  this.getHibernateTemplate().delete(obj);

   I. 也可以获取单个值:int --------getFetchSize();

a.若项目中有多个sessionFactory实例(即sessionFactory的名字不是"sessionFactory")时,配置过滤器的同
时要同时配置SessionFactory的名称.
   <init-param>
   <param-name>sessionFactoryBeanName</param-name>
   <param-value>sessionFactory的name属性名称</param-value>
  </init-param>
分享到:
评论

相关推荐

    SSH整合Jar包

    SSH整合在JavaWeb开发中是一项重要的技术组合,它包含了三个主要的开源框架:Spring、Struts和Hibernate。这些框架分别负责应用的业务逻辑管理、视图层控制和数据持久化。接下来,我们将深入探讨SSH整合的关键知识点...

    SSH整合jar包

    SSH整合jar包是一个集合了所有在Java开发中用于Spring、Struts和Hibernate(SSH)集成应用所需的库文件的压缩包。SSH是Java企业级开发中非常流行的一种框架组合,它能够帮助开发者快速构建高效、可维护的企业级Web...

    ssh整合jar包

    SSH整合是Java Web开发中的一种常见模式,它结合了Struts2、Spring和Hibernate三个开源框架,以实现高效、灵活的MVC(Model-View-Controller)架构。在这个"ssh整合jar包"中,包含了这三个框架的核心库和其他必要的...

    ssh整合所需要的jar包

    SSH整合,全称为Struts2、Spring和Hibernate的整合,是Java Web开发中常见的技术栈。这三种框架分别负责表现层、业务层和持久层的管理,通过合理的整合,可以构建出高效、灵活且易于维护的Web应用。下面将详细介绍...

    ssh整合所需所有架包

    SSH整合是Java开发中一种常见的框架集成方式,它结合了Struts2、Spring和Hibernate三个开源框架,以实现高效、灵活的企业级应用开发。这里提到的"ssh整合所需所有架包"是一个包含这三个框架相应版本的集合,确保它们...

    SSH整合增删改查全部

    SSH整合是Java Web开发中常见的一个技术组合,指的是Spring、Struts和Hibernate三个开源框架的集成。Spring提供了依赖注入和面向切面编程的能力,Struts则处理MVC(Model-View-Controller)架构中的控制器部分,而...

    SSH整合经典实例

    SSH整合经典实例主要涉及到的是Java开发中的三大框架:Spring、Struts和Hibernate的集成应用,这些框架在J2EE体系中被广泛使用,为开发者提供了高效、便捷的开发环境。SSH整合是Java企业级开发中一种常见的解决方案...

    SSH整合 银行管理系统

    SSH整合在IT行业中通常指的是Struts、Hibernate和Spring三大框架的集成应用,它们是Java Web开发中的重要组件,尤其在企业级应用系统中广泛应用。银行管理系统是一个典型的业务复杂、安全性要求高的应用场景,SSH...

    SSH整合的jar包.zip

    SSH整合是指Spring、Struts和Hibernate这三大开源框架的集成应用。这三种框架分别负责不同的职责:Spring作为应用的管理核心,提供依赖注入(DI)和面向切面编程(AOP);Struts则主要处理MVC(模型-视图-控制器)...

    SSH整合的一个案例

    SSH整合在IT行业中通常指的是Spring、Struts和Hibernate这三个开源框架的集成应用。Spring作为核心容器,负责管理对象(依赖注入DI)和事务处理;Struts则是MVC(Model-View-Controller)设计模式的实现,处理用户...

    SSH整合例子(SSH例子)

    SSH整合是Java开发中一种常见的框架组合,包括Spring、Struts和Hibernate三个核心组件。Spring提供了依赖注入(DI)和面向切面编程(AOP),Struts负责MVC模式的实现,而Hibernate则是用于对象关系映射(ORM)。在这...

    SSH整合小案例,实用性比较强

    SSH整合是软件开发中一种常见的技术实践,主要指的是Spring、Struts和Hibernate这三大开源框架的集成应用。这个小案例提供了SSH整合的具体实现,对于项目研发具有很高的实用价值。下面我们将详细探讨SSH整合的关键...

    ssh整合所需jar包

    SSH整合是指将Struts、Spring和Hibernate这三个Java开源框架结合在一起,用于构建高效、可维护的企业级Web应用程序。Struts提供了MVC(Model-View-Controller)架构,Spring强化了依赖注入和事务管理,而Hibernate则...

    SSH整合小项目

    SSH整合是Java Web开发中的一种常见技术栈,主要包括Spring、Struts和Hibernate这三个框架的集成。这个名为"SSH整合小项目"的资源提供了一个实践示例,帮助开发者理解和掌握这三大框架协同工作的机制。 首先,...

    SSH整合实例源码

    SSH整合是Java Web开发中的一个常见实践,它指的是Struts 2、Hibernate和Spring这三大框架的集成。这个"SSH整合实例源码"提供了一种实际应用这些框架的方法,帮助开发者理解如何在项目中有效地结合它们。以下是关于...

    ssh整合 jar包

    SSH整合是指在Java Web开发中,将Spring、Struts2和Hibernate这三大开源框架进行集成,以实现高效、灵活和可扩展的业务应用。这些框架分别负责不同的职责:Spring作为核心容器,管理对象的依赖注入;Struts2是MVC...

    SSH整合原理以及步骤详解

    SSH整合是软件开发中的一种常见技术,主要用于Spring、Struts和Hibernate这三大开源框架的集成。这篇文章将深入探讨SSH整合的原理以及实现步骤,帮助初学者掌握这一关键技能。 **一、SSH框架简介** 1. **Spring...

Global site tag (gtag.js) - Google Analytics