zoukankan      html  css  js  c++  java
  • Spring学习笔记

    7.3 依赖注入

    • 设值注入:setter方法
    • 构造注入:构造器

    7.5 Spring 容器中的Bean

        Spring超级大工厂—生产Bean

    • 开发者:

            ①开发Bean

            ②配置Bean

    • Spring框架:

            ①根据配置文件创建Bean实例

            ②调用Bean实例方法完成“依赖注入”

         词汇:lazy:延迟;autowire:自动装配

    容器中Bean作用域 

         配置方法:scope=”prototype” 或者 @Scope("prototype") 修饰xxxAction

    • singleton:单例模式,只生成一个实例,每次请求该Bean都获得相同的实例。(默认)
    • prototype:每次请求该id的Bean都会新建一个Bean实例返回给程序。
    • request
    • session
    • global session

    7.6 Spring 3.0提供的Java配置管理

    Annotation(注释)

    @Configuration:修饰Java配置类

    @Bean:修饰一个方法,将该方法返回值定义成容器中的一个Bean

    @Value:修饰一个Field,用于为该Field配置一个值,相当于配置一个变量

    @Lazy:指定该Bean是否取消预初始化

    @DependsOn:常用强制初始化其指定的其他Bean

    7.7 创建Bean的三种方式    

    • 调用构造器创建Bean(大多数时候通过new关键字调用构造器创建);
    • 调用静态工厂方法创建Bean
    • 调用实例工厂方法创建Bean

    8.2 Spring“零配置”支持

    Spring提供标注Spring Bean的几个Annotation(均修饰在Bean类的前面)

    1. 自动搜索如下Annotation修饰的Bean类,并注册成实例

    @Component:标注一个普通的Spring Bean类

    @Controller("adminAction"):标注一个控制器组件类(一般修饰action)

    @Service("adminService"):标注一个业务逻辑组件类(一般修饰service)

    @Repository("adminDAO"):标注一个DAO组件类(一般修饰dao)

    2. 指定Bean的作用域,默认为Singleton

    @Scope("prototype")

    3. 配置依赖

    @Resource(name=”stoneAxe”),与<property…/>元素的ref属性效果相同

    4. Spring 4.0自动装配和精确装配

    @Autowired:修饰带多个参数的方法时,自动到容器中寻找匹配该方法参数类型的Bean,并以找到的Bean作为参数调用该方法;修饰实例变量时,Spring会把容器中与该类型匹配的Bean设置为该实例变量的值。

    8.4 SpringAOP

    AOP(Aspect Orient Programming),面向切面编程,理解原理P644

    基本概念

    • 切面 Aspect
    • 连接点 Joinpoint
    • 增强处理 Advice
    • 切入点 Pointcut

    8.6 Spring的事务

         参考:http://www.blogjava.net/robbie/archive/2009/04/05/264003.html

         Spring配置文件中关于事务配置总是由三个组成部分,分别是DataSource、TransactionManager和代理机制这三部分,无论哪种配置方式,一般变化的只是代理机制这部分。      DataSource、TransactionManager这两部分只是会根据数据访问方式有所变化,比如使用Hibernate进行数据访问时,DataSource实际为SessionFactoryTransactionManager的实现为HibernateTransactionManager

         

    8.7 Spring整合Struts 2

    8.8 Spring整合Hibernate

    Hibernate Template 和 HibernateDaoSupport

         1. Hibernate Template常用方法,可完成大多数DAO对象的 CRUD操作:

    • delete(Object entity): 删除指定持久化实例。
    • deleteAll(Collection entities): 删除集合内全部持久化类实例。
    • find(String queryString): 根据 HQL 查询字符串来返回实例集合。
    • findByNamedQuery(String queryName): 根据命名查询返回实例集合。
    • get(Classentity Class,Serializable id): 根据主键加载特定持久化类的实例。
    • save(Object entity): 保存新的实例。
    • saveOrUpdate(Object entity): 根据实例状态,选择保存或者更新。
    • update(Object entity): 更新实例的状态,要求entity 是持久状态。
    • setMaxResults(intmax Results): 设置分页的大小。

         2. HibernateDaoSupport常用方法:

    • public final HibernateTemplate getHibernateTemplate()
    • public final void setSessionFactory(SessionFactory sessionFactory)

    示例代码:

    public void deleteProjectById(Integer projectId) {
        // TODO Auto-generated method stub
        Project project = this.getHibernateTemplate().get(Project.class, projectId);
        this.getHibernateTemplate().delete(project);
        this.getHibernateTemplate().flush();
    }

    未完待续...

  • 相关阅读:
    python eval lmbda
    python函数--day14-03
    深浅拷贝--day14-02
    数据结构与算法--排序
    数据结构与算法--栈(stack)与队列(queue)
    完全背包的计数问题
    [题解] Codeforces Round #568 (Div. 2) C题题解
    [题解] Codeforces Round #640 (Div. 4) C题 题解
    数据结构——程序设计(一)单链表功能的操作与实现
    [题解] Codeforces Round #708 (Div. 2) C1 题解报告
  • 原文地址:https://www.cnblogs.com/nightowc/p/4720049.html
Copyright © 2011-2022 走看看