Spring IoC&DI

DI 介绍

DI: DependencyInjection(依赖注⼊)

要把某个对象交给IOC容器管理,需要在类上添加⼀个注解: ⽽Spring框架为了更好的服务web应⽤程序,提供了更丰富的注解. 共有两类注解类型可以实现:

  1. 类注解:@Controller、@Service、@Repository、@Component、@Configuration.

  2. ⽅法注解:@Bean.

如何观察这个对象已经存在Spring容器当中了呢? 接下来我们学习如何从Spring容器中获取对象

Bean命名约定
程序开发⼈员不需要为bean指定名称(BeanId),如果没有显式的提供名称(BeanId),Spring容器将为该 bean⽣成唯⼀的名称. 命名约定使⽤Java标准约定作为实例字段名.也就是说,bean名称以⼩写字⺟开头,然后使⽤驼峰式 ⼤⼩写.
也有⼀些特殊情况,当有多个字符并且第⼀个和第⼆个字符都是⼤写时,将保留原始的⼤⼩写.这些规则 与java.beans.Introspector.decapitalize (Spring在这⾥使⽤的)定义的规则相同.
⽅法注解@Bean 类注解是添加到某个类上的,但是存在两个问题: 1. 使⽤外部包⾥的类, 没办法添加类注解 2. ⼀个类,需要多个对象,⽐如多个数据源 这种场景, 我们就需要使⽤⽅法注解 @Bean
⽅法注解要配合类注解使⽤ 在Spring框架的设计中,⽅法注解 @Bean 要配合类注解才能将对象正常的存储到Spring容器中, 如下代码所⽰

关于依赖注⼊,Spring也给我们提供了三种⽅式:

1. 属性注⼊(FieldInjection)

2. 构造⽅法注⼊(ConstructorInjection)

3. Setter 注⼊(SetterInjection)

属性注⼊ 属性注⼊是使⽤ @Autowired 实现的

构造⽅法注⼊ 构造⽅法注⼊是在类的构造⽅法中实现注⼊,如下代码所⽰:

注意事项:如果类只有⼀个构造⽅法,那么@Autowired 注解可以省略;如果类中有多个构造⽅法, 那么需要添加上@Autowired 来明确指定到底使⽤哪个构造⽅法。

Setter 注⼊ Setter 注⼊和属性的Setter⽅法实现类似,只不过在设置set⽅法的时候需要加上@Autowired 注 解,如下代码所⽰:

相关推荐
Java小白笔记3 分钟前
Windows系统免软件命令激活
java·网络·人工智能·windows·ai·ai编程
爱敲键盘的猴子12 分钟前
深入理解 Java HashMap
java·hashmap
霸道流氓气质13 分钟前
Java开发者AI编程常用MCP、Skills、Rules全景汇总
java·开发语言·ai编程
天涯醉青楼25 分钟前
Spring Boot 接口返回 Bean 时字段名“变形”的深度剖析与解决方案
java
zoujiahui_201840 分钟前
Python 包与环境管理工具 uv
开发语言·python·uv
步行cgn42 分钟前
MyBatis 高级映射与延迟加载完全指南
java·tomcat·mybatis
thefool11226642 分钟前
从中序与后序遍历序列构造二叉树
java
吴声子夜歌1 小时前
Java面试题——JVM(二)
java·开发语言·jvm
CRMEB1 小时前
商城大促活动策划全流程:从定目标到复盘四阶段
java·开发语言·人工智能·ai·开源·php
denglinqings1 小时前
Java开发从入门到精通所有课程
java·开发语言