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

相关推荐
Zzzzmo_11 分钟前
【JavaEE】文件操作和IO
java·java-ee·io·文件操作·file·流对象
NE_STOP24 分钟前
Redis-持久化之RDB
java
苍煜1 小时前
SpringBoot AOP切面编程精讲:实现方式、Spring区别及与自定义注解生产实战
java·spring boot·spring
zx2859634001 小时前
Laravel5.x版本革新特性全解析
mysql·gateway·智能路由器
胡小禾1 小时前
企业内部文件处理方案
java
无限进步_1 小时前
二叉搜索树完全解析:从概念到实现与应用场景
c语言·开发语言·数据结构·c++·算法·github·visual studio
常利兵2 小时前
Spring Boot:别再重复造轮子,这些内置功能香麻了
java·spring boot·后端
努力努力再努力FFF2 小时前
别再乱学PS、Python了,普通大学生该看懂的技能趋势
开发语言·python
天若有情6732 小时前
逆向玩家狂喜!用C++野生写法一键破解线性加密(不规范但巨好用)
开发语言·c++·算法
XiYang-DING2 小时前
JavaScript
开发语言·javascript·ecmascript