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 注 解,如下代码所⽰:

相关推荐
ChoSeitaku3 分钟前
NO.2|proto3语法|消息类型|通讯录|文件读取|enum类型
java·服务器·前端
weixin_387534229 分钟前
Ownership - Rust Hardcore Head to Toe
开发语言·后端·算法·rust
庞轩px15 分钟前
MinorGC的完整流程与复制算法深度解析
java·jvm·算法·性能优化
zhouping@17 分钟前
JAVA学习笔记day06
java·笔记·学习
毕设源码-郭学长35 分钟前
【开题答辩全过程】以 某某协会管理与展示平台为例,包含答辩的问题和答案
java
csdn_zhangchunfeng38 分钟前
Qt之slots和Q_SLOTS的区别
开发语言·qt
计算机安禾39 分钟前
【C语言程序设计】第35篇:文件的打开、关闭与读写操作
c语言·开发语言·c++·vscode·算法·visual studio code·visual studio
多云的夏天41 分钟前
docker容器部署-windows-ubuntu
java·docker·容器
庞轩px1 小时前
内存区域的演进与直接内存——JVM性能优化的权衡艺术
java·jvm·笔记·性能优化
FirstFrost --sy1 小时前
MySQL复合查询
数据库·mysql