美文网首页
对象随项目初始化两种方式

对象随项目初始化两种方式

作者: 李峥辉 | 来源:发表于2022-10-17 17:43 被阅读0次

定义:

    @PostConstruct是Java自带的注解,在方法上加该注解会在项目启动的时候执行该方法,也可以理解为在spring容器初始化的时候执行该方法。

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

用法:

@PostConstruct

public void someMethod(){}

或者

public @PostConstruct void someMethod(){}

作用:

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

执行顺序:

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

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

Constructor >> @Autowired >> @PostConstruct

初始化方式二:实现InitializingBean接口 除了采用注解完成初始化,也可以通过实现InitializingBean完成类的初始化public class UserController implements InitializingBean { @Autowired private UserService userService; public UserController() { } // 初始化方法 @Override public void afterPropertiesSet() throws Exception { userService.userServiceInit(); }} 比较常见的如SqlSessionFactoryBean,它就是通过实现InitializingBean完成初始化的。@Overridepublic void afterPropertiesSet() throws Exception { // buildSqlSessionFactory()是完成初始化的核心方法,必须在构造方法调用后执行 this.sqlSessionFactory = buildSqlSessionFactory(); } 

原文链接:https://blog.csdn.net/sunayn/article/details/92840439

原文链接:https://blog.csdn.net/m0_53288098/article/details/122355201

相关文章

  • 对象随项目初始化两种方式

    定义: @PostConstruct是Java自带的注解,在方法上加该注解会在项目启动的时候执行该方法,也可以...

  • 关于OC中self和super的笔记

    运行以下代码查看log输出,为什么NSLog的输出都Animal ? 1. 对象初始化的两种方式 对象初始化有两种...

  • [C++] 对象初始化的方式

    初始化对象 C++提供两种使用构造函数来初始化对象的方式。 第一种方式是显式的调用构造函数。(在栈上分配内存 另一...

  • 深拷贝、浅拷贝

    创建对象普遍有两种方式:构建和拷贝。 构建是用new的方式,适合构建初始化状态对象的情况;拷贝是用clone的方式...

  • springboot初始化数据

    初始化数据 初始化数据分为jpa和JDBC两种方式。 场景:个人博客项目,启动项目后,数据库user表自动创建用户...

  • 对于 self = [super init] 的分析

    对象初始化有两种方式:[class new] 与 [[class alloc] init] 对于后者,有分配和初始...

  • 刨根问底:对于 self = [super init] 的思考

    对象初始化有两种方式:[class new] 与 [[class alloc] init] 对于后者,有分配和初始...

  • 2020-07-21 类属性和对象属性 初始化

    对象属性初始化有3种方式: 声明对象属性时初始化 在构造方法中初始化 在初始化块中初始化 类属性初始化有2种方式:...

  • C++拷贝构造函数总结

    C++的两种初始化方式 在阐述拷贝构造函数之前,先让我们来看一下C++支持的初始化方式。C++支持两种初始化方式。...

  • spring-boot 之数据初始化

    两种常用的数据初始化方式 这里只讨论两种最基本、最常用的数据初始化方式,即: Spring JDBC 的 Data...

网友评论

      本文标题:对象随项目初始化两种方式

      本文链接:https://www.haomeiwen.com/subject/kgsdzrtx.html