Spring框架学习

1、什么是控制反转?控制反转能做什么 或者说为什么要用控制反转?

答:
控制反转是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。
我们在获取对象的时候,都是采用new来创建,是主动的,两个类之间的耦合性很高。
如果要更改代码非常麻烦,解耦采用ioc,采用容器的话来创建这个对象,容器帮我们
查找以及注入依赖的对象。是被动的。
就是我不给你打电话,也会有人给我打电话。

2、依赖注入 DI
​ 能注入的数据: 有三类
基本类型和String
其他bean类型(在配置文件中活着注解配置过的bean)
复杂类型/集合类型


注入的方式:有三种
​ 第一种:使用构造函数提供
​ 第二种:使用set方法提供
​ 第三种:使用注解提供

使用构造函数提供
对应的构造函数

public AccountServiceImpl(String name,Data birthday)

{
	this.name = name;
	this.birthday = birthday;
}

构造函数注入:

​ 使用的标签:constructor-arg

​ 标签出现的位置:bean标签的内部

​ 标签中的属性:

​ type:用于指定要注入的数据的数据类型,该数据类型也是构造函数中某个或某些参数的类型

​ index:用于指定要注入的数据给构造函数中指定索引位置的参数赋值。索引的位置是从0开始

​ name:用于指定给构造函数中指定名称的参数赋值

以上三个用于指定给构造函数中哪个参数赋值

​ value:用于提供基本类型和String类型的数据

​ ref:用于指定其他的bean类型数据 它指的就是在spring的ioc核心容器中出现过的bean对象
1、这种方式使用的是默认构造函数

<bean id="accountService" class="com.service.impl.AccountServiceImpl">

2、

<bean id="accountService" class="com.service.impl.AccountServiceImpl">
      <constructor-arg   name="name"  value="Akmf" ></constructor-arg>
      <constructor-arg   name="birthday"  ref="now" ></constructor-arg>
</bean>
<bean id="now" class="java.util.Date"> </bean>

特点优势:

在获取bean对象时,注入数据是必须的操作,否则对象无法创建成功

弊端:

改变了bean对象的实例化方式,使我们在创建对象时,如果用不到这些数据,也必须提供。

posted @ 2020-08-08 23:07  Akmf's_blog  阅读(65)  评论(0)    收藏  举报