好久没写博客了,前几天在项目中用到了在系统启动时候用redis 加载数据,我就在思考,启动的时候加载数据,那就应该是配置一个bean,至于spring的bean是单例模式,不在本次的讨论范围之内,我记得是spring启动的实例化的bean都是单例的,只是单纯的记忆而已。
回归正题,既然是系统启动的时候加载数据,那么必须是配置一个配置类的bean在系统启动的时候去做一些事情,那么,这个时候就是要用到spring boot的一个注解----》@Configuration,这个注解用于类上面,作用是将该类作为一个配置注入到spring的容器里面,当该类使用了该注解以后,在系统启动的时候,容器就会去扫描该类,并做相关的事情。
前面说到,需要在系统初始化的时候去做一些事情,把相关的东西系缓存到Redis中,那么就是说,在系统启动的时候需要去读取一些配置,也就是说,在启动的时候,需要初始化一些bean,也就是说,在初始化bean的时候,需要调用初始化的方法,即实现IntializingBean接口,重写afterProertiesSet方法,在这个方法里面去做一些加载的操作,这便是bean的初始化方法,在bean的初始化的时候我们需要干的一些事情。
当然了,如果你有林外的一些需求,比如说,我在初始化之后,想干掉一些数据,那么这个时候就可以实现林外一个接口--->DisposableBean,这个接口的含义是在bean被spring消灭之前,你可以干的一些事情,实现该接口,重写destroy方法,在该方法当中,可以对bean的销毁做一些操作,比如当内存快爆炸的时候,把不相关的操作放在这里。主动去销毁bean。
如下图,上代码
@Configuration public class Synchrodata4House extends AbstractApiService implements InitializingBean , DisposableBean { @Override public void afterPropertiesSet() throws Exception { //TODO } @Override public void destroy() throws Exception { //TODO }