栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

@PostConstruct结合例子说明

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

@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 roles;

    @Autowired
    private RoleMapper roleMapper;

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

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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/821684.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号