spring bean 生命周期和 ? 作用域? spirng bean 相互依赖? jvm oom ? jvm 监控工具? ThreadLocal 原理
1. spring bean 生命周期
1. 实例化一个bean ,即new
2. 初始化bean 的属性
3. 如果实现接口 BeanNameAware ,调用 setBeanName
4. BeanFactoryAware 调用 setBeanFactory
5. ApplicationContextAware 调用 setApplicationContext
6. BeanPostProcesser 调用 postProcesserBeforeInitialization
7. 调用 init-method
8 BeanPostProcesser 调用 postProcesserAfterInitialization
9. 在容器关闭时,如果继承了 DisposableBean 接口 ,调用 destory 方法
10. 调用 destory-method
oom?
java.lang.OutOfMemoryError: java head space 堆内存溢出
java.lang.OutOfMemoryError: Permgen space java永生代溢出, 即方法去溢出,一般是因为出现大量的Class和jsp ,或者采用cglib 反射机制的情况,
此种情况可以通过更改方法区的大小来解决,使用类似-XX:PermSize=64m -XX:MaxPermSize=256m的形式修改。另外,过多的常量尤其是字符串也会导致方法区溢出。