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

  • 相关阅读:
    虚拟主机支持apk
    pc显示,手机隐藏
    manjaro个人配置
    docker-compose部署elk
    docker-compose部署zk和kafka
    docker-compose部署redis-cluster
    ActiveMQ与RocketMQ对比
    dropbox离线安装包--需FQ
    C++实现中缀表达式转前、后缀
    运算符优先级
  • 原文地址:https://www.cnblogs.com/otio/p/4098316.html
Copyright © 2011-2022 走看看