问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

@PostConstruct 注解的作用和使用

创作时间:
作者:
@小白创作中心

@PostConstruct 注解的作用和使用

引用
CSDN
1.
https://m.blog.csdn.net/iku_n/article/details/143182391

@PostConstruct注解是javax.annotation包下的一个注解,它用于标记一个方法,在对象创建完成依赖注入完成之后执行。

作用

  1. 初始化时机:被
    @PostConstruct
    注解的方法会在构造函数之后、初始化方法(例如
    @Autowired
    )之后被自动调用。
  2. 依赖注入后执行:确保在该方法执行时,所有的依赖都已经被注入,可以安全地使用。
  3. 只执行一次:在整个 Bean 生命周期中,该方法只会被执行一次。
  4. 无参数要求:被注解的方法不能有任何参数。
  5. 异常处理:如果方法抛出异常,则 Bean 的实例化将会失败。

使用方法

在 Spring Bean 中使用

import javax.annotation.PostConstruct;
import org.springframework.stereotype.Component;

@Component
public class MyBean {
    
    @PostConstruct
    public void init() {
        // 初始化逻辑
        System.out.println("Bean is initialized");
    }
}  

与其他注解结合

@Service
public class DataService {
    
    @Autowired
    private DataRepository repository;
    
    @PostConstruct
    public void init() {
        // 使用已注入的依赖进行初始化
        repository.initializeData();
    }
}  

在非 Spring 环境中使用

import javax.annotation.PostConstruct;

public class MyClass {
    
    @PostConstruct
    public void init() {
        // 初始化逻辑
    }
}  

注意事项

  1. **
    @PostConstruct
    **方法应该是非静态的,void 返回类型的方法。
  2. 在一个类中可以有多个**
    @PostConstruct
    ** 方法,但不建议这样做,因为执行顺序不能保证。
  3. 父类的 **
    @PostConstruct
    方法会在子类的
    @PostConstruct
    ** 方法之前执行。
  4. 从 Java 9 开始,
    @PostConstruct
    被移到了
    javax.annotation-api
    包中,需要单独添加依赖。
  5. 在 Spring 框架中,**
    @PostConstruct
    的功能可以通过实现
    InitializingBean
    接口或使用
    @Bean(initMethod="init")
    来实现,但
    @PostConstruct
    **通常更简洁和推荐。

使用场景

  1. 初始化缓存
  2. 建立数据库连接
  3. 读取配置文件
  4. 注册监听器
  5. 启动后台线程

**
@PostConstruct
**提供了一种简洁、标准化的方式来执行 Bean 的初始化逻辑,特别适合那些需要在所有依赖注入完成后执行的初始化操作。

本文原文来自CSDN

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号