spring注解IOC

134 阅读2分钟

image-20200525102233383

spring中IOC的常用注解

注解配置与xml配置只是配置形式不一样,都是为了降低程序的耦合。

使用注解时一定要有aopjar包。

image-20200525103010669

且在xml文件中告诉spring在创建容器时要扫描的包;要完成这一步,需要使用context名称空间和约束,在resources下的bean.xml中导入:

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd">

image-20200525103437338

base-package会扫描所有com.itheima包及其子包上的注解。

用于创建对象的

​ 对应于在xml中编写一个bean标签的作用对应。

  1. @Component:

    1. 用于把当前类反射创建的对象存入spring容器。
    2. 属性:value:用于制定bean的id。当不写valude时,默认id是当前类名且首字母改小写。
  2. spring提供的对应三层结构的注解,只与@Component有一点差别,可以使我们三层对象更加清晰。

    1. Controller:表现层
    2. Service:业务层
    3. Repository:持久层
用于注入数据的。

​ 对应于在xml中的bean标签中的property对应。

  1. Autowored
    1. 作用:自动按照类型注入。spring容器中如果有唯一的一个bean对象与要注入的变量类型相同(考虑泛型),则直接注入。如果一个都没有就报错。如果有两个类型匹配的。那么就将要注入的变量与容器中匹配的对象的key作比较,以相同的为准。
    2. 可以出现在变量与方法上
    3. 注解注入时,无需set方法。
  2. @Qualifier
    1. 给类成员变量注入时必须与Autowored同时使用。
  3. @Resoure:直接按照bean的id注入
    1. 属性:name:制定bean的id
  4. @Value
    1. 用于给基本类型和String注入。
    2. 属性:value用于制定数据的值,支持spring的el表达式。
用于改变作用范围的

​ 与在bean标签中使用scope属性是一样的

​ @Scope

​ 作用:制定bean的作用范围

​ 属性 value 范围singleton(单例,默认)prototype(多例)

和生命周期相关的

​ 与在bean标签中使用init-method和destroy-method的作用相同

image-20200525115444381