文章目录
一 、依赖
上层依赖下层 ,service类属性中 (业务逻辑层) 中有 dao类 (持久层) 对象。
依赖倒置原则(DIP):上层不再依赖下层。
二、控制反转IoC
控制反转的核心是:将对象的创建权交出去,将对象和对象之间关系的管理权交出去,由第三方容器来负责创建与维护。
对象和对象之间关系的管理权: 给上层对象中的属性(下层对象)赋值。
控制反转常见的实现方式:依赖注入(Dependency Injection,简称DI)。
依赖注入的实现又包括两种方式:set方法注入 和 构造注入。
三、创建对象的方式
默认是利用反射机制通过无参构造方法创建对象(其他后续再说),但是我发现当类中没有无参构造方法,当然也没有有参构造方法,也是可以的,这是为什么呢?
原因如下:
当一个类中没有显式定义任何构造方法(无论是无参还是有参)时,Java编译器会在编译时自动为该类生成一个默认的无参构造方法。
当你显式定义了任意一个有参构造方法,但没有显式定义无参构造方法时,Java编译器不会再自动生成默认的无参构造方法。此时如果Spring尝试通过无参构造方法创建对象,会抛出异常。
所以,为了可读性,尽量定义无参构造方法。
四、创建对象存储的位置
放到 HashMap<String,Object>中
String: bean的id
Object:创建的对象
五、Spring对IoC的实现
依赖注入实现了控制反转的思想。
Spring通过依赖注入的方式来完成Bean管理的。
Bean管理说的是:Bean对象的创建,以及Bean对象中属性的赋值(或者叫做Bean对象之间关系的维护)。
赋值有2种方式:构造方法与set方法。
再来理解依赖注入:
- 依赖指的是对象和对象之间的关联关系。
- 注入指的是一种数据传递行为,通过注入行为来让对象和对象产生关系。
重点:
强调一个东西,为什么说这个,后面用注解,现在养成好习惯,以后干什么事就很快,也不会乱。
bean id 该怎么写 类名第一个字母小写
property name 该怎么写 和属性名保持一致
以set注入为例(常用)
<bean id = "userDao" class="com.zhenbang.spring6.dao.UserDao"/>
<bean id = "userService" class="com.zhenbang.spring6.service.UserService">
<property name="userDao" ref="userDao"/>
<property name ="userName" vlaue="张三"

最低0.47元/天 解锁文章
1453

被折叠的 条评论
为什么被折叠?



