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();
    }

    未完待续...

  • 相关阅读:
    标签的讲解
    属性分类
    LeetCode 003. 无重复字符的最长子串 双指针
    Leetcode 136. 只出现一次的数字 异或性质
    Leetcode 231. 2的幂 数学
    LeetCode 21. 合并两个有序链表
    象棋博弈资源
    acwing 343. 排序 topsort floyd 传播闭包
    Leetcode 945 使数组唯一的最小增量 贪心
    Leetcode 785 判断二分图 BFS 二分染色
  • 原文地址:https://www.cnblogs.com/nightowc/p/4720049.html
Copyright © 2011-2022 走看看