1、 使用 @PostConstruct 注解
2、 @Bean(initMethod = "initMethod") 及 xml 中配置 init-method = "initMethod" 标签
3、实现 InitializingBean 接口中的 afterPropertiesSet 方法
@Configuration
public class SpringBeanInitDemo {
public static void main(String[] args) {
AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext();
// 注册配置文件
applicationContext.register(SpringBeanInitDemo.class);
// 启动 applicationContext 上下文
applicationContext.refresh();
User user = applicationContext.getBean(User.class);
// 关闭 applicationContext 上下文
applicationContext.close();
}
/**
* 默认 true,配置该注解实现了延迟加载,
* bean的实例化及初始化在第一次获取bean的时候实现,
* 容器启动时不加载,减少了容器启动时间
*/
@Lazy
@Bean(initMethod = "initMethod")
public User user(){
return new User();
}
}
public class User implements InitializingBean {
@PostConstruct
public void init(){
System.out.println("user @PostConstruct 初始化方法......");
}
public void initMethod(){
System.out.println("user initMethod 初始化方法......");
}
@Override
public void afterPropertiesSet() throws Exception {
System.out.println("user afterPropertiesSet 初始化方法......");
}
}
备注:三种初始化方法有顺序 @PostConstruct > afterPropertiesSet > initMethod
这篇博客介绍了在Spring框架中初始化Bean的三种方式:@PostConstruct注解、InitializingBean接口的afterPropertiesSet方法以及通过@Bean的initMethod属性和XML配置的init-method。详细阐述了它们的使用场景和执行顺序,帮助读者理解如何在Spring应用中控制Bean的初始化过程。
571

被折叠的 条评论
为什么被折叠?



