啊立的Spring框架学习笔记(三)

今天来回顾一下Spring中的DI(依赖注入),通过学习了解到了能够被注入的数据分为三类:基本类型和String类型、其他bean类型和复杂类型/集合类型。

一、基于xml配置文件的依赖注入

  • 1、使用构造函数注入(使用constructor-arg标签)

name:指定参数赋值

value:提供基本类型和String类型数据

ref:指定其他bean对象,例如图中的Date属性的now在这里插入图片描述
– 优点:在获取bean对象时,注入数据是必须的操作,否则无法创建对象

– 弊端:实例化对象时,即使不需要用到对象的某个属性,也要提供,不然无法创建对象在这里插入图片描述

  • 2、使用set方法注入(使用property标签)

(优缺点与使用构造函数注入相反)

– 优点:创建对象没有明确限制,可以使用默认构造函数

– 弊端:如果某个成员必须有值,则获取对象时可能set方法是没有执行的(怎么理解呢? 就是因为没有明确限制,可以直接使用默认构造函数创建对象,可能一调用默认构造,对象就用完了,所必须要的成员也就没有被赋值了)在这里插入图片描述

  • 3、使用复杂类型/集合类型注入
  • (使用property标签,嵌入array、list、set、map和props标签)

List:在这里插入图片描述
Map:在这里插入图片描述

二、Spring的IOC注解

  • 1、用于创建对象的注解

– @Component 把当前对象注入到Spring IOC容器中

以下三个与Component作用一致,用于三层架构

– @Controller 用于表现层

– @Service 用于业务层

– @Repository 用于持久层在这里插入图片描述

  • 2、用于注入数据的注解 (集合类型的注入只能通过XML实现)
    注入数据
    (1)用于其他bean类型数据,无法注入基本类型和String类型的数据

– @Autowired (常用,自动注入)

– @Qualifier(给类成员注入时不能单独使用,需配合@Autowired; 给方法参数注入时可单独使用)

– @Resource(需指定要注入的bean的id)

包
(2)用于基本类型和String类型的注入

– @Value(value用于指定数据的值)在这里插入图片描述

  • 3、用于改变作用范围

– @Scope(singleton(单例)和prototype(多例))在这里插入图片描述

  • 4、有关生命周期的(作用与xml中bean标签下的init-method和destroy-method作用一致)

– @PostConstruct(初始化)

– @PreDestroy(销毁)在这里插入图片描述
关于依赖注入、对象和数据注入的注解就先记录到这里,回顾了一下,又看到了一些不是很了解的地方,值得再去深入了解一下。加油

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值