@PostConstruct注解的使用

@PostConstruct注解的使用1 从 JavaEE5 规范开始 Servlet 中增加了两个影响 Servlet 生命周期的注解 PostConstruc 和 PreDestroy 这两个注解被用来修饰一个非静态的 void 方法 写法有如下两种方式 PostConstruc 或者 public PostConstruc

1、从Java EE5规范开始,Servlet中增加了两个影响Servlet生命周期的注解,@PostConstruct和@PreDestroy,这两个注解被用来修饰一个非静态的void()方法。写法有如下两种方式:

 

@PostConstruct

public void someMethod(){}

或者

public @PostConstruct void someMethod(){}

被@PostConstruct修饰的方法会在服务器加载Servlet的时候运行,并且只会被服务器执行一次。PostConstruct在构造函数之后执行,init()方法之前执行。PreDestroy()方法在destroy()方法知性之后执行

@PostConstruct注解的使用

执行顺序

另外,spring中Constructor、@Autowired、@PostConstruct的顺序

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

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

Constructor >> @Autowired >> @PostConstruct

举个栗子:

public Class AAA {

    @Autowired

    private BBB b;

 

    public AAA() {

        System.out.println(“此时b还未被注入: b = ” + b);

    }

    @PostConstruct

    private void init() {

        System.out.println(“@PostConstruct将在依赖注入完成后被自动调用: b = ” + b);

    }

}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/178489.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月26日 下午5:10
下一篇 2026年3月26日 下午5:11


相关推荐

  • Ubuntu 定时执行脚本

    Ubuntu 定时执行脚本一、关于crontabcron是一个Linux定时执行工具,可以在无需人工干预的情况下运行作业。在Ubuntu中,cron是被默认安装并启动的。二、例子直接上例子,来看看怎么用。需求:定时每天8点,自动执行保存在/root目录下hello.sh脚本1、方法很简单,只需编辑ect下crontab文件就行了,这个文件里存放的就是cron要执行的命令,以及定时执行的时间…

    2022年7月17日
    42
  • AI_Agents(十一)_AI智能体编写和执行代码作为工具

    AI_Agents(十一)_AI智能体编写和执行代码作为工具

    2026年3月16日
    3
  • Protel 99 SE 的坑

    Protel 99 SE 的坑作为一个电子爱好者,以前画电路图基本都是用笔在草稿纸上面直接画出电路图,然后焊板子~呵呵,有点简单粗暴,这样做的好处就是比较顺手,没那么多限制,但是EDA还是有必要学一下的,思来想去,还是学学Protel99se吧,第一次接触,各种懵比,还犯了许多低级错误,以及系统不兼容的坑,苦逼了…>>>坑1:添加元件库添加元件库:add/Remove选择sch路径点击ddb文件-add

    2022年5月30日
    60
  • vue项目实现路由按需加载(路由懒加载)的3种方式

    vue项目实现路由按需加载(路由懒加载)的3种方式为什么需要懒加载 像 vue 这种单页面应用 如果没有应用懒加载 运用 webpack 打包后的文件将会异常的大 造成进入首页时 需要加载的内容过多 时间过长 会出啊先长时间的白屏 即使做了 loading 也是不利于用户体验 而运用懒加载则可以将页面进行划分 需要的时候加载页面 可以有效的分担首页所承担的加载压力 减少首页加载用时 vue 异步组件 es 提案的 import webpack

    2026年3月20日
    2
  • 小明加密通道进入_门禁系统跟闸机通道的区分是什么?功能是一样吗

    小明加密通道进入_门禁系统跟闸机通道的区分是什么?功能是一样吗门禁系统属于一卡通系统的范畴。它是以中央处理器为核心,由控制器、信息采集器和电控锁组成的控制网络系统。通过系统的信息读取和处理,实现了各种门锁开关的自动控制。根据信息阅读的方式可以分为:插卡式、感应式、图像检测式、双眼虹膜识别式等。他们的技术含量和体系工程预算顺序先后提高。且融合三辊闸、摆闸、翼闸等多种入口处监管设施,保持更智能。门禁用到ID和IC两种卡片,IC门禁有加密功能,存贮容量也大,广泛用…

    2022年6月11日
    66
  • Eclipse自动补全设置(终极方案)

    Eclipse自动补全设置(终极方案)Eclipse自动补全、字体、护眼色、tomcat、导包1.设置字体2.设置护眼色3.设置自动补全4.配置Tomcat服务器5.配置默认JSP编码6.无法导包解决方案1.设置字体2.设置护眼色3.设置自动补全26字母和”.”均会提示:Java和Java类型补全建议+26字母异常强大的补全提示:4.配置Tomcat服务器5.配置默认JSP编码6.无法导包解决方案…

    2022年6月28日
    30

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号