在学习activiti的过程中,了解到了三种核心对象的创建方式.
1.不通过配置文件,直接代码生成方式(方式一)
代码示例:
ProcessEngineConfiguration processEngineConfiguration = ProcessEngineConfiguration
.createStandaloneProcessEngineConfiguration();
//设置与数据库的链接
processEngineConfiguration.setJdbcUrl("jdbc:mysql:///activati?createDatabaseIfNotExist=true");
processEngineConfiguration.setJdbcDriver("com.mysql.jdbc.Driver");
processEngineConfiguration.setJdbcUsername("root");
processEngineConfiguration.setJdbcPassword("123456");
//创建表
processEngineConfiguration.setDatabaseSchemaUpdate("true");
//创建的核心服务对象(一旦创建核心对象,就会开始建表)
ProcessEngine processEngine = processEngineConfiguration.buildProcessEngine();
System.out.println(processEngine);
这种方式的话是不用配置xml文件的,直接在.java文件写配置,叫做硬编码,但是缺点很明显,配置不够灵活,如果需要修改数据库的话就要直接改代码.
2.1配置文件方式(方式二)
我eclipse中的项目结构如下:
代码示例:
//加载配置类的对象
ProcessEngineConfiguration fromResource = ProcessEngineConfiguration.createProcessEngineConfigurationFromResource("activiti.cfg.xml");
//核心对象
ProcessEngine processEngine = fromResource.buildProcessEngine();
System.out.println(processEngine);
通过这种方式的话,就能有效避免代码不灵活,直接在配置文件中修改配置, activiti.cfg.xml的文件名可以随意修改,只要把文件名对应上即可.但是不推荐这种方式,还有一种更简单的方式.
2.1配置文件方式(方式三)
代码示例:
//在底层源码加载了activiti.cfg.xml文件
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
这种方式的话只需要一句代码即可实现,但是有一个要求,就是配置文件名必须是activiti.cfg.xml,否者就无法加载配置文件.原因是在这个方法的底层源码中已经为我们加载了一个叫做activiti.cfg.xml的文件,所以无需手动加载.
底层源码如下:
以上便是创建activiti流核心对象的三种方式,推荐使用第三种方式,简便,快捷,而且注重Spring框架的核心要素 :约定大于配置.