引用:InitializingBean
Spring Bean的生命周期
InitializingBean和ApplicationListener
InitializingBean接口
InitializingBean接口为bean提供了初始化方法的方式,它只包括afterPropertiesSet方法,凡是继承该接口的类,在初始化bean的时候会执行该方法。
问题:实现InitializingBean接口与在配置文件中指定init-method有什么不同?
在spring初始化bean的时候,如果该bean是实现了InitializingBean接口,并且同时在配置文件中指定了init-method,系统则是先调用afterPropertiesSet方法,然后再调用init-method中指定的方法。
在spring 初始化后,执行完所有属性设置方法(即setXxx)将自动调用 afterPropertiesSet(), 在配置文件中无须特别的配置
注:初始需要依赖的方法时如init()
可以使用这个方法,如果在构造方法中调用,根据Spring的加载顺序,依赖可能还没加载好,可能会报NullPointException
##ApplicationListener<>接口
这个<>
里面的内容是E extends ApplicationEvent
是一个继承了ApplicationEvent的类,一般是写ContextRefreshedEvent
,在Spring类加载完(不包含依赖)后执行,当一个ApplicationContext被初始化或刷新时触发。
注:初始需要依赖的方法时如init()
可以使用这个方法,如果在构造方法中调用,根据Spring的加载顺序,依赖可能还没加载好,可能会报NullPointException
如果在上下文中部署一个实现了ApplicationListener接口的bean, 那么每当在一个ApplicationEvent发布到
ApplicationContext时, 这个bean得到通知
1 |
|
结果如下:
1 | 无参构造方法执行! |
Spring Bean
参考:Spring Bean详解
Spring Bean的加载过程
JS
Window 对象属性
属性 | 描述 |
---|---|
closed | 返回窗口是否已被关闭。 |
defaultStatus | 设置或返回窗口状态栏中的默认文本。 |
document | 对 Document 对象的只读引用。请参阅 Document 对象。 |
history | 对 History 对象的只读引用。请参数 History 对象。 |
innerheight | 返回窗口的文档显示区的高度。 |
innerwidth | 返回窗口的文档显示区的宽度。 |
length | 设置或返回窗口中的框架数量。 |
location | 用于窗口或框架的 Location 对象。请参阅 Location 对象。 |
name | 设置或返回窗口的名称。 |
Navigator | 对 Navigator 对象的只读引用。请参数 Navigator 对象。 |
opener | 返回对创建此窗口的窗口的引用。 |
outerheight | 返回窗口的外部高度。 |
outerwidth | 返回窗口的外部宽度。 |
pageXOffset | 设置或返回当前页面相对于窗口显示区左上角的 X 位置。 |
pageYOffset | 设置或返回当前页面相对于窗口显示区左上角的 Y 位置。 |
parent | 返回父窗口。 |
Screen | 对 Screen 对象的只读引用。请参数 Screen 对象。 |
self | 返回对当前窗口的引用。等价于 Window 属性。 |
status | 设置窗口状态栏的文本。 |
top | 返回最顶层的先辈窗口。 |
window | window 属性等价于 self 属性,它包含了对窗口自身的引用。 |
|
只读整数。声明了窗口的左上角在屏幕上的的 x 坐标和 y 坐标。IE、Safari 和 Opera 支持 screenLeft 和 screenTop,而 Firefox 和 Safari 支持 screenX 和 screenY。 |
1 | window.location = "https://www.baidu.com" //跳转到百度 |