天天看点

Sring Ioc 配置使用大全(基于注解)

Sping 2.5的时候,还是不能抛弃主配置的xml文件的。很多基本的属性配置还是需要写在这个主配置文件中。

包扫描

    即告诉spring 要去扫描哪些包下面类中的注解。如过某个类不在扫描范围了,就是配置了注解也不会被加载到spring容器中。

设置扫描表的方式,在spring主配置文件中配置:Context:component-scan, 同时导入context命名空间

Sring Ioc 配置使用大全(基于注解)

<context:component-san base-package =”cn.tulingxueyan” >

<context:exclude-filter type=”” expression= “”

<context:include-filter type=”” expression= “”

</context:component >

Type的5种类型:即有五种方式来定义哪些包需要被扫描, 一般就Annotation和Assignable用得比较多。

  • Annotation 根据注解的名字包含或排除
Sring Ioc 配置使用大全(基于注解)
  • Assignable 根据类的完整性名字:
Sring Ioc 配置使用大全(基于注解)

其他三种:

  • aspecj 根据切面表达式描述哪些包需要被扫描到或不被书扫描的。
  • regex 根据正则表达式描述哪些包需要被扫描到或不被书扫描的。
  • custom 根据自定义类MyTypeFilter来定义哪些包需要被扫描到或不被书扫描的。
    Sring Ioc 配置使用大全(基于注解)

所以如何将一个bean用注解的方式加入到容器。

1. 将该类所在的包包含在以上包扫描的路径下。

2. 在对应的类名上加注解。

如何为类属性注入默认值:

即用 @value为属性赋值

 1. Hardcode为属性赋值.

@Value("admin")

private String name;
           

2. 用${}为属性赋外部属性文件中的值, 步骤如下:

1). Class 文件中加入@value注解

Sring Ioc 配置使用大全(基于注解)

2). 添加一个配置文件到resources文件夹下。

Sring Ioc 配置使用大全(基于注解)

3).  在主配置文件中添加配置资源文件路径

Sring Ioc 配置使用大全(基于注解)

3. 用#{} Spel为属性赋值,引用其他类的属性值.

1)被引用的类已经有默认值了。

Sring Ioc 配置使用大全(基于注解)

2)在属性上通过@value的SEel语句应用类中属性的值。

Sring Ioc 配置使用大全(基于注解)

自动装配 @Autowired

@Autowired 加在属性上面

只要在你要装配的属性上面加上这个注解,就会自动在容器中匹配合适的值为该属性赋上默认值。

Sring Ioc 配置使用大全(基于注解)

匹配规则:

  1. 首先根据类型去匹配
  2. 类型匹配多个的时候,在根据名字取匹配。这是如果名字匹配失败,就会报错。

当名字不匹配是可以通过以下方式解决:

1. 直接修改属性名字。

Sring Ioc 配置使用大全(基于注解)

2. 在bean的设置名字。

@Component(“userService”),

@Service(“userService”)

Sring Ioc 配置使用大全(基于注解)

3. 用Qualifier(“userServiceImpl”),设置属性名字。

Sring Ioc 配置使用大全(基于注解)

4. 使用@Primary来设置主自动注入bean。当有多个同一类型的bean存在多个时,优先选择该bean而不是报错。

Sring Ioc 配置使用大全(基于注解)

5. 当存在多个同一类型,但是有泛型限定符不一样的情况,会自动根据泛型限定中匹配的进行匹配。

Sring Ioc 配置使用大全(基于注解)

Autowired 也可以住在方法上面,意思是把参数当中一个属性。就和前面用法一样。

和属性上的自动装配一样,首先安装参数的类型匹配,然后安装参数的名字匹配。

Sring Ioc 配置使用大全(基于注解)

@DependsOn()控制bean的加载顺序, 即人为为bean设置dependency关系。默认spring会自己找出bean的依赖关系。

Sring Ioc 配置使用大全(基于注解)

@Lazy,用到的时候才会加载实例化该bean。

Sring Ioc 配置使用大全(基于注解)

@Scope 作用域

默认是单例。

Sring Ioc 配置使用大全(基于注解)
Sring Ioc 配置使用大全(基于注解)

生命周期回调的三种方式:

Sring Ioc 配置使用大全(基于注解)

销毁回调:

Sring Ioc 配置使用大全(基于注解)

初始化回调:

Sring Ioc 配置使用大全(基于注解)