当前位置:网站首页>@PostConstruct注解详解
@PostConstruct注解详解
2022-08-02 07:29:00 【sebeefe】
初始化方式一:@PostConstruct注解
假设类UserController有个成员变量UserService被**@Autowired**修饰,那么UserService的注入是在UserController的构造方法之后执行的。
如果想在UserController对象生成时候完成某些初始化操作,而偏偏这些初始化操作又依赖于依赖注入的对象,那么就无法在构造函数中实现(ps:spring启动时初始化异常),例如:
public class UserController {
@Autowired
private UserService userService;
public UserController() {
// 调用userService的自定义初始化方法,此时userService为null,报错
userService.userServiceInit();
}
}
因此,可以使用@PostConstruct注解来完成初始化,@PostConstruct注解的方法将会在UserService注入完成后被自动调用。
public class UserController {
@Autowired
private UserService userService;
public UserController() {
}
// 初始化方法
@PostConstruct
public void init(){
userService.userServiceInit();
}
}
**总结:**类初始化调用顺序:
(1)构造方法Constructor
(2)@Autowired
(3)@PostConstruct
初始化方式二:实现InitializingBean接口
除了采用注解完成初始化,也可以通过实现InitializingBean完成类的初始化
public class UserController implements InitializingBean {
@Autowired
private UserService userService;
public UserController() {
}
// 初始化方法
@Override
public void afterPropertiesSet() throws Exception {
userService.userServiceInit();
}
}
比较常见的如SqlSessionFactoryBean,它就是通过实现InitializingBean完成初始化的。
@Override
public void afterPropertiesSet() throws Exception {
// buildSqlSessionFactory()是完成初始化的核心方法,必须在构造方法调用后执行
this.sqlSessionFactory = buildSqlSessionFactory();
}
先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦
边栏推荐
猜你喜欢
MySQL - Index Optimization and Query Optimization
多表的查询
MGRE综合实验
PanGu-Coder: A function-level code generation model
redis-advanced
Compact格式下MySQL的数据如何存储到磁盘
18、优化网站性能
MySQL error 1055 solution: [Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause and contains
PanGu-Coder:函数级的代码生成模型
2022-2023 十大应用开发趋势
随机推荐
基于PyTorch的flappy bird游戏
flutter在导航栏处实现对两个列表的点击事件
MySQL优化:从十几秒优化到三百毫秒
暂未找到具体原因但解决了的bug
How to export multiple query results at once in SQL server 2014?
postgres 水平分表,自动创建分区,按时间分表
Buried development process
HCIP 第六天
有点奇怪!访问目的网址,主机能容器却不行
uniapp 禁止默认返回事件
MySQL常见索引类型
spark 读取本地文件
HCIP 第十三天
Metasploit(MSF)基础超级详细版
17、生成长图,并上传至服务器
静态路由综合实验
ROS file system and related commands
postgres groupby 合并字符串
MySQL - slow query log
五款优秀免费的在线抠图工具