Spring中Bean的生命周期是怎样的?spring中XXXAware接口的作用?java底层序列化步骤?使用 protobuf 进行数据序列化?线程池的执行流程

 

 

 spring中XXXAware接口的作用

Aware接口,是Spring中的一个根接口。Aware的中文含义,是“意识到,察觉到,发觉,发现”,所以该接口的目的,通过实现Aware的子接口,让类添加发觉信息的能力。

常见的Aware直接实现类:
ApplicationContextAware
实现该接口,可以访问Spring容器中缓存的的其他Bean。
获取的ApplicationContext,ApplicationContext接口继承了MessageSource, ApplicationEventPublisher, ResourcePatternResolver,可以实现 {@link ResourceLoaderAware},

{@link ApplicationEventPublisherAware} or {@link MessageSourceAware} 的功能。
//TODO file resources 相关
//TODO BeanFactoryPostProcessor

EnvironmentAware
实现该接口,项目启动时,可以获取环境变量配置。

BeanFactoryAware
获取加载该Bean的Bean工厂,可以动态加载Bean.

//TODO BeanFactory和ApplicationContext的区别

ApplicationEventPublisherAware
可以i获取ApplicationEventPublisher,ApplicationEventPublisher可以用来发布事件,结合ApplicationListener来共同使用,下文在介绍ApplicationListener时会详细提到。这个对象也可以通过spring注入的方式来获得

ResourceLoaderAware
可以获取ResourceLoader,ResourceLoader可以获取classpath内所有的资源对象。

BeanNameAware
注入Bean的名字。

ServletContextAware
可以获得ServletContext,ServletContext被称为域对象,是一个全局存储信息的空间。
服务器会为每一个工程创建一个ServletContext对象,工程内所有Servlet都会共享这个Servlet上下文。
应用被移除或服务器关闭时,才会被销毁,可以在整个应用过程中共享数据变量。

setAttribute(String name,Object value);  添加一个域属性

getAttribute(String name)  获取域属性

removeAttribute(String name)  删除域属性

ServletContext接口的初始化参数允许servlet访问与web应用相关的上下文初始化参数,这些由应用开发人员在部署描述符中指定:
getInitParameter
getInitParameterNames

java底层序列化步骤

 

 

 

 

 

 

 

 

使用 protobuf 进行数据序列化

 

 

 

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章