@PostConstruct

@PostConstruct

通常推荐在 Spring Boot 应用中,将业务逻辑封装在 bean 的生命周期方法中(如 @PostConstruct 方法),这样可以确保依赖注入完成后再执行业务逻辑。在 main 方法中直接操作 @Autowired 字段可能会导致不可预料的行为,特别是在复杂的应用场景下。


@SpringBootApplication
public class SmartEngineTestApplication {
    @Autowired
    private SmartEngine smartEngine;

    public static void main(String[] args) {
        SpringApplication.run(SmartEngineTestApplication.class, args);
    }
    @PostConstruct
    public void init() {
        try {
            System.out.println(smartEngine.getRepositoryQueryService().getAllCachedProcessDefinition());
            for (ProcessDefinition processDefinition : smartEngine.getRepositoryQueryService().getAllCachedProcessDefinition()) {
                System.out.println(processDefinition.getBaseElementList());
                System.out.println(processDefinition.getVersion());
            }
            PersisterSession.create();
            ProcessCommandService processCommandService = smartEngine.getProcessCommandService();
            ProcessInstance processInstance = processCommandService.start("test_id", "1.0.0");
        } catch (Exception e) {
            System.out.println(String.valueOf(e));
        } finally {
            PersisterSession.destroySession();
        }
    }
}

@PostConstruct 是 Java EE 和 Spring 框架中的一个注解,用于指定初始化方法。当一个类使用 @PostConstruct 注解标记一个方法时,这个方法会在依赖注入完成后,任何初始化工作之前被调用。通常情况下,这个方法会在构造函数调用之后、依赖注入完成之后被调用,用来执行一些初始化操作。

在 Spring 框架中,@PostConstruct 注解通常用于替代传统的初始化方法,比如在 XML 配置中使用 init-method。Spring 容器在实例化 bean 并完成依赖注入后,会自动调用使用了 @PostConstruct 注解的方法。

import javax.annotation.PostConstruct;
import org.springframework.stereotype.Component;

@Component
public class MyBean {

    @PostConstruct
    public void init() {
        // Initialization logic
    }
}

发表回复

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