spring注解@PostConstruct
@PostConstruct是java5的时候引入的注解,指的是在项目启动的时候执行这个方法,也可以理解为在spring容器启动的时候执行,可作为一些数据的常规化加载,比如数据字典之类的。
@PostConstruct
protected void initialize() {
try {
log.debug("AppInition.initialize() Start...");
Map configMap= iSystemConfigService.getConfigMap();
ReflectUtil.reflectProperties(configMap,AppInitConstants.class);
log.debug("AppInition.initialize() End...");
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
@Component
public class DroolsLoader {
/**
* @throws IOException
*/
@PostConstruct
public void init() throws IOException {
KieServices kieServices = KieServices.Factory.get();
KieModuleModel kieModuleModel = kieServices.newKieModuleModel();
KieBaseModel kieBaseModel = kieModuleModel.newKieBaseModel("Test");
KieSessionModel kieSessionModel = kieBaseModel.newKieSessionModel("sdfasdf");
KieFileSystem kfs = kieServices.newKieFileSystem();
String ruleTemplate = IOUtils
.toString(MyStartProcess.class.getResourceAsStream("/drools/user.drl"), "UTF-8");
kfs.write("src/main/resources/drools/hello.drl",ruleTemplate);
kfs.writeKModuleXML(kieModuleModel.toXML());
KieBuilder kieBuilder = kieServices.newKieBuilder(kfs).buildAll();
}
}
这里 就是在加载一些常亮数据