@PostConstruct - 项目启动时,对象初始化后执行的方法(只执行一次)

概述

源码 - 只能用来修饰方法
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7nvxmkuv-1587880025327)(en-resource://database/20146:1)]


用法解释
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ShxX67Pn-1587880025340)(en-resource://database/20144:1)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-u1BENVIq-1587880025347)(en-resource://database/20148:1)]


@PostConstruct作用: 注入依赖后,索要执行的方法

使用注意:
非拦截器
方法无参、且无返回值
可以是任何访问类型的方法,且支持final终态方法
不能是静态static方法
不能抛出未检查(unchecked)的异常
拦截器
方法上可以有参数 - 且必须是InvocationContext
可声明抛出已检查(checked)的异常
不可返回值

代码测试

User组件

@Component
public class User {
    
    

    @Autowired
    Hobby hobby;


    public User() {
    
    
        System.out.println("User无参构造函数被调用");
    }

    @PostConstruct
    public void init() {
    
    
        System.out.println("含有@PostConstruct注解方法被调用");
    }

}

Hobby组件

@Component
public class Hobby {
    
    

    public Hobby() {
    
    
        System.out.println("Hobby无参构造函数调用");
    }

}


SpringBoot启动类

@SpringBootApplication
@MapperScan(value="top.linruchang.springbootdemo.dao")
public class SpringbootdemoApplication {
    
    

    @Autowired
    User user;

    public static void main(String[] args) {
    
    
        SpringApplication.run(SpringbootdemoApplication.class, args);

    }

}

项目启动后 - 查看控制台
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6rjpdxzi-1587880025352)(en-resource://database/25458:1)]


执行顺序:构造函数、自动注入@Autowired、@PostConstructor方法

Guess you like

Origin blog.csdn.net/weixin_39651356/article/details/105767534