Spring八股(完结,后续遇到新问题会补充)

一 、依赖

上层依赖下层 ,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="张三"
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值