@PostConstruct结合例子说明

参考博客:@PostConstruct详解

用法:

		@PostConstruct
    public void initMsg(){
        msg = "======初始化msg======";
        System.out.println(msg);
    }

作用:

@PostConstruct注解的方法在项目启动的时候执行这个方法,也可以理解为在spring容器启动的时候执行,可作为一些数据的常规化加载,比如初始化成员变量之类的。

执行顺序:

​ 其实从依赖注入的字面意思就可以知道,要将对象p注入到对象a,那么首先就必须得生成对象a和对象p,才能执行注入。所以,如果一个类A中有个成员变量p被@Autowried注解,那么@Autowired注入是发生在A的构造方法执行完之后的。

​ 如果想在生成对象时完成某些初始化操作,而偏偏这些初始化操作又依赖于依赖注入,那么就无法在类A构造函数中实现。为此,可以使用@PostConstruct注解一个方法来完成初始化,@PostConstruct注解的方法将会在依赖注入完成后被自动调用。

Constructor >> @Autowired >> @PostConstruct

验证Constructor在PostConstruct之前

Ex:

@Component
public class A {

    private static List<Role> roles;

    @Autowired
    private RoleMapper roleMapper;

    @PostConstruct
    private void initRoles(){
        roles = roleMapper.findAllRoles();
    }
}

说明:roles的初始化需要通过roleMapper完成,又因为@autowired在类A的构造器生命周期之后,故roles不能在类A的构造器中完成初始化,只能通过@PostConstruct完成初始化。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值