BeanPostProcessor接口的作用:
如果我们需要在Spring容器完成Bean的实例化前后添加一些逻辑处理,就定义一个或者多个BeanPostProcessor接口的实现,然后注册到容器中去。
接口的设计就两个方法实例化之前和之后处理,可以根据需要进行相应的处理
比如我们可以实现一下这个接口,这里我就想处理一下实现AccountRepository接口的,这里instanceof关键字一般我们用于类,也可以用于接口
这里为了展现初始化前后的逻辑,在AccountRepository实现中加入@PostConstruct注解,在初始化调用构造方法后执行
日志输出:
当然这里实现的BeanPostProcessor可以实现多个的,还可以继承Order接口来实现处理顺序!
我们还可以试试懒加载,在使用的类上加上@Lazy注解,这样在启动的时候是不会初始化的
以前我们用spring的时候,喜欢把配置写在xml文件中,然后使用ClassPathXmlApplicationContext,FileSystemXmlApplicationContext,FileSystemResource等,但是现在的开发方式就是简化了这些配置,都使用注解,所以这里用AppConfig
然后我们在获取配置的时候,使用的是AnnotationConfigApplicationContext,继承GenericApplicationContext这个通用应用上下文,这个后续好好看代码再写把。
未完待续!