Spring5【学习笔记】

IOC控制反转:使用set注入后从程序控制转为给用户控制,本质上不用程序员去管理对象的创建,系统的耦合性大大降低。

其是一种通过描述(XML或者注解)并通过第三方去生产或获取特定对象的方式。在Spring中实现控制反转的是IOC容器,其实现方法就是依赖注入(Dependency Injection,DI)

Bean标签中:

id即最后getBean获取对象使用的标识

class对应的创建对象的类

property是该类中的成员变量,一定要有set,根据set对成员变量进行赋值创建对象。

--ref引用Spring容器中创建好的对象

--value:具体的值,基本数据类型

IOC创建对象

默认情况下,在Spring容器启动时候创建对象,但是如果bean中存放大量数据,初始化发生在创建对象的时候,数据会过早的驻留在内存中

 

如果在Spring配置文件中bean配置中有懒加载(lazy-init=“true”),那么bean在调用getBean方法时创建对象。

  1. 默认使用无参构造创建对象
  2. 使用有参构造创建对象,无需set(根据下标、类型、名字)

--根据参数下标,index

--根据参数类型,type。不推荐使用,不可类型重复,引用类型一定要使用全限定类型,基本类型可以直接使用

--根据参数名字,name

DI依赖注入

  1. 构造器注入
  2. Set注入

--依赖:bean对象的创建依赖于容器

--注入:bean对象中的所有属性由容器来注入

  1. 拓展方式:c命名空间和p命名空间注入

 

 

c命名空间和p命名空间注入

不能直接使用,要引入约束:

xmlns:p="http://www.springframework.org/schema/p"
xmlns:c="http://www.springframework.org/schema/c"

p命名空间:set注入

c命名空间:构造器注入

Bean scope属性

默认单例模式,共享一个对象,scope=“singleton”

原型模式,每次从容器中get时都会创建新对象 scope=“prototype”

Bean的自动装配

Spring会在上下文中自动寻找,并自动给bean装配属性

三种装配方式:

  1. xml显示配置
  2. 在Java中显示配合
  3. 隐式的自动装配bean(重点)

--xml文件

--autowire:”byName”:需要保证所有的bean唯一,并且bean需要和自动注入的属性的set方法一致。

实际上name对应的是实体类恶set方法名

所以,当id的cat和Person类中setCat2不一致时,无法自动注入。需要将id改成cat2,与set方法保持一致

--autowire:”byType”:需要保证bean的class唯一,并且bean需要和自动注入的属性的类型一致。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值