hooyantsing's Blog

P029-P043 Spring

字数统计: 317阅读时长: 1 min
2022/03/08

视频源:阿里P8爆肝2个月呕心整理,挑战30天打卡春招上岸!

P029 Spring 是如何创建一个Bean对象的

  1. UserService类
  2. 推断构造方法
  3. 普通对象
  4. 依赖注入
  5. 初始化前方法(@PostConstruct)[P032]
  6. 初始化方法(InitializingBean)[P033]
  7. 初始化后方法(AOP)
    1. 代理对象
  8. 放入Map单例池
  9. Bean对象

P032 @PostConstruct 注解是如何工作的

1
2
3
4
@PostConstruct 
public void pc() {
// more code ...
}

P033 Bean 的初始化是如何工作的

让 Bean 类实现 InitializingBean 接口,实现 afterPropertiesSet() 方法。

1
2
3
4
5
6
public class UserService implements InitializingBean {
@Override
public void afterPropertiesSet() throws Exception {
// more code ...
}
}

P035 什么是初始化后

初始化后由 AOP 实现,生成代理对象,后将代理对象放入 Map单例池。

P036 推断构造方法是什么意思

Bean 类里有多个构造方法,默认使用 无参构造方法

若要指定哪个构造方法,再构造方法上加 @Autowired 注解。

  • 构造方法可以带有“入参”,遵循依赖注入。

P037 什么是先 byType 再 byName

依赖注入时,在 Bean 单例池中先根据 type 查找 Bean,若有多个同类型的 Bean,再根据 name 查找 Bean。

1
2
@Autowired
private OrderService orderService; // 先查找 OrderService 类型的 Bean 。若有多个,再查找 name 为 orderService 的 Bean。
CATALOG
  1. 1. P029 Spring 是如何创建一个Bean对象的
  2. 2. P032 @PostConstruct 注解是如何工作的
  3. 3. P033 Bean 的初始化是如何工作的
  4. 4. P035 什么是初始化后
  5. 5. P036 推断构造方法是什么意思
  6. 6. P037 什么是先 byType 再 byName