首页 > 代码库 > Spring+Struts2/Hibernate 学习笔记

Spring+Struts2/Hibernate 学习笔记

=========自动装配=========

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 学习笔记