Spring(springboot)

SpringDI依赖注入
功能
在IoC容器中将不同层之间bean与bean进行关系绑定。
方式
setter注入 要求实体类在操作以前必须得有 setter 方法 ; 代码实现: <?xml version\"1.0\"

DI依赖注入

功能

IoC 容器跨不同层绑定bean 以及它们之间的关系。

方式

setter注入

您的实体类需要:

二传手

方法

;

代码:

?xml 版本=\’1.0\’ 编码=\’UTF-8\’?

豆xmlns=\’http://www.springframework.org/schema/beans\’

xmlns:xsi=\’http://www.w3.org/2001/XMLSchema-instance\’

xsi:schemaLocation=\’http://www.springframework.org/schema/beans

https://www.springframework.org/schema/beans/spring-beans.xsd\’

bean id=\’u\’ class=\’cn.ry.pojo.User\’

属性名称=\’id\’值=\’100\’/属性

属性名称=\’名称\’值=\’张三\’/属性

/豆子

/豆子

引用类型简单类型

在您的bean 上定义引用类型属性并提供可访问的设置方法。使用属性标记的value 属性将简单类型编号插入到配置中。

构造器注入

引用类型简单类型

在您的bean 上定义引用类型属性并提供可访问的构造函数。在配置中使用constructor-arg 标记的ref 属性来插入引用类型对象。

使用配置中constructor-arg标签的type属性设置,根据形参的类型进行插入。

配置时,使用constructor-arg标签的index属性,根据形参的位置来配置注入。

?xml 版本=\’1.0\’ 编码=\’UTF-8\’?

豆xmlns=\’http://www.springframework.org/schema/beans\’

xmlns:xsi=\’http://www.w3.org/2001/XMLSchema-instance\’

xsi:schemaLocation=\’http://www.springframework.org/schema/beans

https://www.springframework.org/schema/beans/spring-beans.xsd\’

bean id=\’u\’ class=\’cn.ry.pojo.User\’

!–

Index:第一个参数从0开始。

名称: 参数名称:

ref: 自定义类型参考。引用是bean 的ID 或名称。

type: 参数类型。与索引一起使用。

value: 简单类型的值。

构造函数参数索引=\’0\’ 类型=\’java.lang.Integer\’ 值=\’1\’

/构造函数参数

constructor-arg name=\’name\’ value=\’李四\’/constructor-arg

/豆子

/豆子

集合类型注入(使用较少)

设置集合注入列表注入映射注入数组注入属性注入

?xml 版本=\’1.0\’ 编码=\’UTF-8\’?

豆xmlns=\’http://www.springframework.org/schema/beans\’

xmlns:xsi=\’http://www.w3.org/2001/XMLSchema-instance\’

xmlns:p=\’http://www.springframework.org/schema/p\’

xsi:schemaLocation=\’http://www.springframework.org/schema/beans

https://www.springframework.org/schema/beans/spring-beans.xsd\’

bean id=\’r\’ class=\’cn.ry.pojo.Role\’ p:id=\’2\’ p:name=\’管理员\’/bean

bean id=\’u\’ class=\’cn.ry.pojo.User\’

注释设置

@价值

属性、方法、参数级别的注解用于直接给属性赋值。要操作的类型是简单数据类型。方法级别

我们需要向setter 方法添加其他注释。

@资源

属性、方法和类级注释用于自定义类型注入。

用法:@Resource(name=\’\’|type=自定义类型类对象);

这里name的值存储的是传递给Spring容器的bean的名称或ID,如果name=\’value\’并且beanName。

如果有任何差异,将会报告错误。

按类型注入时,Spring容器中不能出现多个相同类型的bean。

如果@Resource直接写在注入的属性上,则会根据类型自动搜索并注入。

属性名称=\’id\’值=\’1\’/属性

属性名称=\’名称\’值=\’用户1\’/属性

属性名称=\’角色\’ ref=\’r\’/属性

!– 设置类型注入–

属性名称=\’设置\’

值1/值

值小林/值

/放

/财产

!– 列表类型注入–

属性名称=\’列表\’

列表

值列表1/值

值列表2/值

/列表

/财产

!– 插入地图类型–

属性名称=\’地图\’

地图

输入键=\’k1\’值=\’m1\’/输入

输入键=\’k2\’值=\’m2\’/输入

/地图

/财产

!– 数组类型注入–

属性名称=\’数组\’

大批

值数组1/值

值数组2/值

/大批

/财产

!– 插入属性–

属性名称=\’pro\’

道具

prop key=\’用户名\’root/prop

prop key=\’密码\’root/prop

/道具

/财产

/豆子

/豆子

依赖注入方式选择

强制依赖项是使用构造函数创建的。当使用setter注入时,注入可能不会产生nu11对象。这是因为大多数Spring 框架建议使用构造函数。该框架对于构造函数注入比较严格。如果需要,可以将两者一起使用来完成所需的依赖注入,并使用setter注入来完成可选的依赖注入。在实际开发过程中,应根据实际情况进行分析。对于setter方法,您必须使用构造函数来注入您自己开发的模块。我们建议使用setter 注入。

注解配置

@Value

属性、方法、参数级别的注解用于直接给属性赋值。要操作的类型是简单数据类型。方法级别

需要添加其他注释

二传手

方法同上。

@Resource

属性、方法和类级注释用于自定义类型注入。 用法: @Resource(name=\’\’|type=自定义类型类对象); 这里name的值存储的是传递给Spring容器的bean。如果\’value\’与beanName不匹配,则会报错。按类型注入时,Spring 容器中不会出现多个相同类型的bean。如果直接将@Resource写入注入的属性中,则会自动搜索并相应注入。输入。

@Autowired

构造函数、方法、属性和参数级别注释与自定义类型注入相同。属性不需要setter 方法。 Spring 容器中必须有一个相同类型的bean。此注释中包含所需的类型。如果默认为true,是否应该引用强制插入——,如果为false,则当前值为null,不会报错。

@Qualifier

组合注解可以与@Autowired一起使用,以允许两个注解同时修改一个类。

@Autowired

@修饰符

《刀2》

私人的

用户哒哒

;

总结

简单和自定义数据类型使用注释插入,集合数据类型使用XML 插入。可以使用@Value 插入简单数据类型。我们建议使用@Autowired 插入自定义数据类型。

以上#spring相关内容来源仅供参考。相关信息请参见官方公告。

原创文章,作者:CSDN,如若转载,请注明出处:https://www.sudun.com/ask/92381.html

(0)
CSDN的头像CSDN
上一篇 2024年6月26日
下一篇 2024年6月26日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注