工作流activiti 八 之模型Model操作 act_re_model
Activiti源码跟踪之模型 act_re_model 操作
Activiti源码跟踪之模型 act_re_model 操作
JAVA操作符
1、定义流程,按照BPMN的规范,使用流程定义工具,用流程符号把整个流程描述出来。
例如:请假:学生->班主任->年级主任
2、部署流程,把画好的流程定义文件,加载到数据库中,生成表的数据。
将上面在设计器中定义的流程部署到activiti数据库中,就是流程定义部署
流程实例也叫:ProcessInstance
启动一个流程实例表示开始一次业务流程的运行。
在员工请假流程定义部署完成后,如果张三要请假就可以启动一个流程实例,如果李四要请假也启动一个流程实例,两个流程的执行互相不影响
3、启动流程,使用java代码来操作数据库表中的内容。
4.常用service
RepositoryService
RuntimeService
TaskService
HistoryService
FormService
IdentityService
参考资料:
https://blog.csdn.net/onceing/article/details/107674850
https://zhuanlan.zhihu.com/p/515708058
https://www.cnblogs.com/niuyourou/p/16829347.html
根据xml图和代码解释分配逻辑。
Java的反射(reflection)机制是指在程序的运行状态中,可以构造任意一个类的对象,可以了解任意一个对象所属的类,可以了解任意一个类的成员变量和方法,可以调用任意一个对象的属性和方法。这种动态获取程序信息以及动态调用对象的功能称为Java语言的反射机制。反射被视为动态语言的关键。
它使得Java程序可以在运行时获取类的信息,并且通过这些信息来实现一些高级的功能,如泛型、注解、动态代理等。反射机制的核心是反射API,它包括了Class类、Constructor类、Method类、Field类等,通过这些类可以实现对类的动态操作。
Java的注解原理是基于反射机制实现的。当代码中出现了注解时,编译器会将注解信息写入到class文件中,而这些注解信息最终会被JVM读取并解析。在运行时,通过反射机制可以获取到这些注解信息,以便根据注解信息进行处理。
简单的反射例子:
public class MyClass {
private String name;
public int age;
public MyClass(String name, int age) {
this.name = name;
this.age = age;
}
public void sayHello() {
System.out.println("Hello, my name is " + this.name + ", I am " + this.age + " years old.");
}
}
public class ReflectionExample {
public static void main(String[] args) {
try {
// 获取MyClass类的Class对象
Class<?> clazz = Class.forName("MyClass");
// 获取类的构造方法
Constructor<?> constructor = clazz.getConstructor(String.class, int.class);
// 创建类的实例
Object obj = constructor.newInstance("Tom", 20);
// 获取类的属性
Field field = clazz.getDeclaredField("age");
field.setAccessible(true);
int age = field.getInt(obj);
System.out.println("Age is " + age);
// 获取类的方法
Method method = clazz.getDeclaredMethod("sayHello");
method.invoke(obj);
} catch (Exception e) {
e.printStackTrace();
}
}
}