bean的作用域
1 2 3 4 5 6
| Spring的`scope` : `Singleton` 一个spring容器中、只有一个`bean` 的实例、spring默认配置 `Prototype` 每次调用新建一个bean `Request` web项目中、给每个http request请求一个bean实例 `Session` web项目中、给每个http session一个bean实例 `GlobalSession` 只有在Portal应用中有、给每个global http request一个bean实例
|
postConstructor
1 2 3 4 5 6 7 8 9 10
| @PostConstruct 在 construct之后执行、 相当于java配置方式的 @Bean(initMethod='xxx')、 相当于xml配置方式的 init-method
@PreDestroy 在bean销毁之前执行、 相当于java配置方式的 @Bean(deatroyMethod='xxx') 相当于xml配置方式的 destroy-method ```
#### profile
|
提供不同环境不同配置文件的支持
Spring的事件为Bean与Bean之间的通信提供了支持、
1) 自定义事件 继承ApplicationEvent
2) 定义事件监听器 实现 ApplicationListener
3) 使用容器发布事件
- 异步任务 @Async
- 规划任务 @Scheduled 每隔固定时间执行
主要用来存放函数调用所需要的数据(函数参数、返回地址及函数内部的局部变量)、但、返回值不在桟中、会有一个专门的返回值存储器、
- 函数中的参数和函数内定义的变量、都分配在桟上、在函数调用时被分配、调用结束释放
- 数组和对象 存放变量地址的空间是分配在桟上的、存放变量内容的空间是分配在堆上的
函数调用结束、存放变量地址的空间会被立即释放、而存放内容的空间不会、它会因为没有变量引用、而被垃圾回收机制回收掉
类加载进内存后、一般不会释放、直到程序结束、一般情况下、类只会加载1次、所以、静态变量在内存中只有一份
对象:每次new创建一个对象的时候、对象产生、在内存中、会存储这个对象的实例变量值、每new一次、对象就会产生一个、就会有一份独立的实例变量