spring基于注解的ioc

使用spring基于注解的ioc需要在xml配置文件中增加导入context名称空间和约束(在spring官方文档—>core中搜索xmlns:context)。
并告知spring在创建容器时要扫描的包(配置所需要的标签不是在beans的约束中,而是名称为context的名称空间和约束中),即以下这行代码。其中包名是java文件夹的第一个包名。

<context:component-scan base-package="com.itmao"></context:component-scan>
  • 用于创建对象的注解:Component,和在xml文件中写bean标签实现的功能是一样的。

  • 创建对象的注解使用方法

  •  作用:用于把当前类对象存入一个map容器中。
    
  •  属性:value,用于指定bean的id,我们不写时,默认值是当前类名,但首字母小写。
    

*Component有三个子注解:Controller、Service、Repository,他们的作用和属性跟Component是一模一样的,是spring框架为我们提供的明确给三层使用的注解,可以使我们的三层对象更加清晰。

  • Controller:一般用在表现层

  • Service:一般用在业务层

  • Repository:一般用在持久层
    *==========================

  • 用于注入数据的注解:他们的作用就和在xml文件的bean标签中写property标签的作用是一样的,在使用注解注入数据时,就不需要set方法了。

  • 注入数据的注解使用方法

  • Autowired:自动按照类型注入。

  •  机制:只要ioc容器中有唯一的一个bean对象类型和要注入的变量类型匹配,则注入成功。
    
  •        如果ioc容器中没有bean对象类型和要注入的变量类型匹配,则注入失败。
    
  •        如果ioc容器中有多个bean对象类型匹配时,若有bean对象的id与要注入的变量名相同则注入成功,否则注入失败。
    
  • Qualifier:在按照类型注入的基础上再按照名称注入,它在给类成员注入时必须与Autowired一起使用,在给方法参数注入时可以单独使用(直接在方法形参之前加上@Qualifier(“id”)即可)。

  •  属性:value,用于指定注入bean的id。
    
  • Resource:直接按照bean的id注入,且可以单独使用。

  •  属性:name,用于指定注入bean的id。
    
  • 以上三个注解都只能注入其他bean类型的数据,而基本类型和String类型无法通过上述注解实现。

  • 另外,集合类型的注入只能通过xml来实现。

  • Value:用于注入基本类型和String类型的数据。

  •  属性:value,用于指定数据的值,它可以使用SpEl(即spring中的el表达式,格式也是:${表达式})
    

*==========================

  • 用于改变作用范围的注解:Scope,作用和在bean标签中使用scope属性的作用是一样的。使用方法与创建对象的注解相同。
  •  作用:用于指定bean的作用范围。
    
  •  属性:value,指定范围的取值,常用的有singleton、prototype等。
    

*==========================

  • 和生命周期相关的注解(了解):作用和在bean标签中使用init-method和destroy-method属性的作用是一样的。在方法名上使用。
  • PostConstruct:用于指定初始化方法。
  • PreDestroy:用于指定销毁方法。
    以上可知,注解和xml配置文件能实现的功能是对应的,故只使用注解或者只使用xml配置文件,都可以做到控制反转。但我们应该二者结合使用,即对自己写的类使用注解,而别人写的类(jar包中的)使用xml文件配置显然更方便。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值