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,接下来的绝大部分持久化操作只要一行代码即可搞定。

 

posted on 2014-11-14 22:24  小忙  阅读(197)  评论(0编辑  收藏  举报

导航