/Summer

Hand painted version of Spring.

Primary LanguageJavaMIT LicenseMIT

思路

本版本增加对于Bean实例化之后和Bean销毁之前一些功能。希望zhichi@PostConstruct和@PreDestroy注解的支持。

实现

  • 修改BeanDefinition,增加initMethoddestroyMethod字段
  • 增加InitializingBean接口,抽象出afterPropertiesSet`函数
  • DefaultInitialingBean实现InitializingBean接口,增加对于@PostConstrctinitMethod和实现InitializingBean接口的Bean的处理
  • 增加DisposableBean接口,抽象出destroy函数
  • DefaultDisposableBean实现DisposableBean接口,增加对于@PredestroydestroyMethod和实现DisposableBean接口Bean的处理
  • createBean的之后调用InitializingBean.afterPropertiesSet
  • 在初始化ApplicationContext的时候,增加一个ShutDownhook去调用DefaultDisposableBean.destroy