zoukankan      html  css  js  c++  java
  • [spring] spring 装配Bean

    Bean的配置信息是Bean的元数据信息。包括1.Bean的实现类、2.Bean的属性信息。3.Bean的依赖关系。4.Bean的行为配置(比如控制Bean的生命周期中init,destory方法)。

    Bean的基本配置,id + 实现类全限定名。命名规范,不要稀奇古怪就好。

    ·依赖注入分别是构造函数注入和属性注入。属性注入通过属性的setter方法注入属性或者依赖对象。构造函数注入是将属性写入构造函数注入,需要注意的问题是构造函数的参数匹配(可以通过类型匹配和索引匹配、还可以是自身反射,不怎么使用)。工厂方法注入(不推荐使用)。

    注入参数详解:

    字面值(<value>),基本数据类型和String类型。注意特殊字符的转义。

    引用Bean(<ref>),三个属性:1.Bean,父子容器的Bean皆可引用;2.local,当前位置文件的Bean;3.parent,符容器中的Bean。

    内部Bean,Bean的内部配置的Bean,只供该外部Bean使用。

    null值(<null/>),为属性设置null值必须使用该标签。

    级联属性(.),以圆点(.)的方式定义级联属性。

    集合类型属性:

    list:

    Set:

    map:

    如果map的键值为对象:

    Properties:

    强集合类型:map的泛型为基本数据类型或者String类:

    集合合并:

    Bean之间的关系:

    继承 :父Bean一般声明为“abstract=true”,标识该Bean无需实例化。

     

    依赖:

    引用:

    整合多个配置文件:

    Bean作用域:

    其中request,session,globalSession作用域使用的时候,需要在web.xml文件中额外的配置(下面二者选其一):

    Bean的作用域中还有一个作用域的依赖问题,那就是非web作用域的Bean引用Web作用域的Bean时,需要使用aop技术为每次引用动态生成实例。此时在配置文件中加入aop支持

    FactoryBean: 自定义实现Bean的实例化逻辑,Bean可以通过实现这个接口。

    基于注解配置Bean:

    四个配置的注解:@Component、@Repository、@Service、@Controller 这四个注解本身没有区别,可以互换,但是为了见名知意,一般在特定的场合使用特定的注解。

    二者本身是等效的。

    在配置文件中声明需要扫描注解的包信息

    还可以配置只扫描包下特定的类,使用 resource-pattern属性配置。

    除此之外,还可以使用子标签声明需要包含和排除的信息。

    子标签中支持的表达式:

    还有一个重要的属性是 use-default-filters = true/ false.用以区别上面的四个注解,当使用 annotation 表达式的时候,需要将该属性设置为 true,否则白搭。

  • 相关阅读:
    Codeforces Round #647 (Div. 2) E Johnny and Grandmaster
    Codeforces1363E Tree Shuffling
    洛谷P6583 回首过去
    Codeforces 817D Imbalanced Array
    Codeforces 213E Two Permutations
    hdu6312 Game
    树算法笔记(三):Prim最小生成树
    基础数学(四):充分与必要条件
    树算法笔记(二):Kruskal最小生成树
    树算法笔记(一):并查集
  • 原文地址:https://www.cnblogs.com/ytuan996/p/10640088.html
Copyright © 2011-2022 走看看