什么是spring Bean?
在 Spring 中,构成应用程序主干并由Spring IoC容器管理的对象称为bean。bean是一个由Spring IoC容器实例化、组装和管理的对象。
Spring bean的生命周期
class---->构造方法(推断构造方法)---->实例化---->对象---->属性填充populateBean---->初始化afterPropertiesSet---->AOP(代理对象:如果实现了的话)---->放入单例池---->(单例)Bean
AOP
1.要不要使用AOP
- 从容器里面拿到所有的切面Bean---->Map
- 匹配切点
2.怎样实现AOP cglib----->代理对象
代理类----->代理对象
class UserServiceProxy extend UserService{
private UserService target;
public void test(){
//1.执行代理逻辑方法
//2.执行业务逻辑方法
target.test();
}
}
代理类----->代理对象
//Spring事务
class UserServiceProxy extend UserService{
private UserService target;
public void test(){
//建立数据库连接Conn
//事务管理器的DataSource Conn.autocommit = false;
target.test();
//提交commit
}
}
判断对象是否实现了InitializingBean接口,实现了Spring会自动调用afterPropertiesSet方法。是Spring提供的一种扩展机制,主要用于默认值赋值以及属性验证。
单例池 ConcurrentHashMap<beanName,单例Bean对象>
Spring创建对象
- new
- 构造方法,反射
单例Bean:通过相同的名字,拿到相同的对象。