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

65 阅读1分钟

概述

源码 - 只能用来修饰方法
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(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作用: 注入依赖后,索要执行的方法

代码测试

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方法