@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
}
}