zoukankan      html  css  js  c++  java
  • @PostConstruct使用总结

    https://blog.csdn.net/qq_37636695/article/details/84791468

    https://www.jianshu.com/p/aba99a49a459

    @PostConstruct
    从Java
    EE5规范开始,Servlet增加了两个影响Servlet生命周期的注解(Annotation):@PostConstruct和@PreConstruct。这两个注解被用来修饰一个非静态的void()方法.而且这个方法不能有抛出异常声明。
    @PostContruct是spring框架的注解,在方法上加该注解会在项目启动的时候执行该方法,也可以理解为在spring容器初始化的时候执行该方法。
    PreConstruct还未用到,PostConstruct最近做项目用到了2次,在这里做一个总结
    @PostConstruct在项目中的用处
    1.spring项目加载数据字典
    @PostConstruct注解的方法在项目启动的时候执行这个方法,也可以理解为在spring容器启动的时候执行,可作为一些数据的常规化加载,比如数据字典之类的。

    2.spring项目的定时任务
    spring自带的@schedule,没有开关,项目启动总会启动一个线程;
    做项目的时候就使用Java的timer,这个设置开关即可自由的控制,关闭的时候,不会启动线程;
    Java的timer也需要找到一个启动类,可以放到main函数里面启动,这样的话,代码的耦合性太高了,而使用PostConstruct是很干净的。

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

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

    Constructor >> @Autowired >> @PostConstruct
    ---------------------
    作者:等有一天成了大神。。。
    来源:CSDN
    原文:https://blog.csdn.net/qq_37636695/article/details/84791468
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    POJ1125 Stockbroker Grapevine(spfa枚举)
    20160402javaweb 开发模式
    20160331javaweb之JSP 标签技术
    20160331javaweb之JSP include 指令&&九大隐式对象
    20160330javaweb之session 小练习
    20160329javaweb之JSP -session入门
    20160329javaweb之JSP -cookie入门
    20160328 javaweb Cookie 小练习
    20160327javaweb 之JSP入门
    HttpServlet was not found on the Java
  • 原文地址:https://www.cnblogs.com/kelelipeng/p/11309591.html
Copyright © 2011-2022 走看看