Java项目初始化的方式
在开发中我们经常会遇到需要随着项目启动而加载的一些初始化参数或者数据,很多时候是需要我们控制执行顺序的,如需要将配置文件载入到内存中,加载数据库中的黑名单到内存中。这种需要预先加载数据到内存的一般都是需要做成单例模式的。
下面就来具体介绍几种启动加载的方式:
1:static代码块的方式:
注意:static代码块是在类加载到内存后便执行了,不依赖于任何的容器,所以static代码块中不能注入由spring容器或者其他容器管理的对象。使用static代码块的场景多是需要在内存中保留单例的模式。
2:以来于spring容器的方式:
1):@PostConstruct方式,这是Java的一个注解,但是实现我们需要的功能需要以来于spring容器。这种方式实现如下:
@PostConstruct
public void init(){
System.out.println("this is the init method!!");
}
2):使用InitializingBean的方式来实现,这种方式是spring容器启动的时候进行初始化加载,实现了这样的类表明该类是交给spring管理的;
具体的代码实现如下,在afterPropertiesSet中实现你需要的的初始化逻辑即可:
@Override
public void afterPropertiesSet() throws Exception {
redisTemplate.opsForValue().set("name1","beppe1");
String name1 = redisUtil.getStringValue("name1");
System.out.println("afterPropertiesSet初始化方法执行了:"+name1);
}
3):init-method的方式:
在spring的配置文件中有关于bean 的声明,在bean 的声明中对该bean指明 init-method 方法即可。这种方式比较原始,在这里就不写出具体的代码实现了
网友评论