吐槽一下Activiti的用户手册和一本书

业余没事的时候,看了点Java的资料,无意之中发现了Activiti,就打算自己跑几个例子看看到底是怎么回事。一直搞底层,也得偶尔关心下上层到底发展到什么程度了不是。

悲惨的过程就是这么开始的,首先是Activiti的用户手册,第一次见到这么混乱的用户手册,完全打破了“Hello World”的过程。一上来你还没看到Activiti到底是什么东西的时候,就各种配置各种代码往上贴,好像生怕吓不走你一样。整个用户手册没有任何条理可研,如果按顺序看,是根本看不下去的,到最后也没琢磨明白这个用户手册是按照什么思路组织的。不得不说,开源软件搞了两年多了,第一次被这样的用户手册给打的败败的,有种故作玄虚的感觉。重点不突出,文档没有层次感。彻底无语了,这也是好多人吐槽Activiti新手不好入门的一个重大原因吧。(谢绝:你行你上啊,这种幼稚思维的喷子。出门左转。)

另外想吐槽的就是一本书,当时搜了下看到书名算是一个大系列里的(具体书名就不提了,省的拉仇恨),这个系列给我印象还是很不错的,特别是对于新接触的人来说,细致入微,手把手的教。可是这本关于Activiti的书我就想说我次奥了,该细致的地方绝对顾左右而言他,该大致介绍下的介绍的很详细,大段大段的用户手册中的关于API的介绍占了书的绝大部分篇幅。另外该书内部大篇幅的代码,并且没有提供随书光盘,也没有提供代码下载地方。第一个例子就出现了:这个部分需要另外寻找。我就想说真能很顺利能找到的人,还需要看你这本书么?!虽然我也提倡大家多动手,但是一个用户手册也好,一本书也好,好歹第一个例子完整一点,让大家先有个大体的认识,然后可以介绍主要的部分,次要的部分让读者自己补充,这样才能让大家逐步深入。像这本书这么搞,骗钱的嫌疑很大。不清楚这个大系列的原作者清楚不清楚,这可是砸招牌的事情。

附一些自己的经验教训:

1. 一定要用Maven,不管用过没用过,在Activiti主要用来做依赖库管理。这块你不用Maven,很麻烦。(那本书里介绍的是,如果你不想读Activiti的源码,这里可以不用。呵呵一下)

2.买书之前一定要找电子版的好好翻翻,不管这系列的书之前多好,也不代表现在就好。

3.简单项目的pom.xml,可以跑简单的例子程序,这里主要是看一下jar包的依赖。

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.shining</groupId>
  <artifactId>testmaven</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  
  <repositories>
  <repository>
    <id>Alfresco Maven Repository</id>
    <url>https://maven.alfresco.com/nexus/content/groups/public/</url>
  </repository>
  </repositories>


  <dependencies>
  <dependency>
  <groupId>org.activiti</groupId>
  <artifactId>activiti-engine</artifactId>
  <version>5.16</version>
  </dependency>


<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-context</artifactId>
  <version>4.1.1.RELEASE</version>
</dependency>
<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-jdbc</artifactId>
  <version>4.1.1.RELEASE</version>
</dependency>
<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-tx</artifactId>
  <version>4.1.1.RELEASE</version>
</dependency>
  <dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-api</artifactId>
    <version>2.0.2</version>
  </dependency>
  <dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-core</artifactId>
    <version>2.0.2</version>
  </dependency>
<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-log4j12</artifactId>
  <version>1.7.7</version>
</dependency>
<dependency>
  <groupId>com.h2database</groupId>
  <artifactId>h2</artifactId>
  <version>1.4.181</version>
</dependency>
</dependencies>
</project>

转载于:https://www.cnblogs.com/ainima/p/6331918.html

Activiti_V5.21_用户手册_中文版. Table of Contents 1. 简介 1.1. 协议 1.2. 下载 1.3. 源码 1.4. 必要的软件 1.4.1. JDK 6+ 1.4.2. Eclipse Indigo 和 Juno 1.5. 反馈问题 1.6. 实验性功能 1.7. 内部实现类 2. 开始 2.1. 一分钟入门 2.2. Activiti安装 2.3. Activiti数据库配置 2.4. 引入Activiti jar与依赖 2.5. 下一步 3. 配置 Configuration 3.1. 创建ProcessEngine Creating a ProcessEngine 3.2. ProcessEngineConfiguration bean 3.3. 数据库配置 Database configuration 3.4. JNDI数据源配置 JNDI Datasource Configuration 3.4.1. 使用 Usage 3.4.2. 配置 Configuration 3.5. 支持的数据库 Supported databases 3.6. 创建数据库表 Creating the database tables 3.7. 数据库表名说明 Database table names explained 3.8. 数据库升级 Database upgrade 3.9. 作业执行器与异步执行器(从5.17.0版本起) Job Executor and Async Executor (since version 5.17.0) 3.10. 启用作业执行器 Job executor activation 3.11. 启用异步执行器 Async executor activation 3.12. 配置邮件服务器 Mail server configuration 3.13. 配置历史 History configuration 3.14. 配置在表达式与脚本中暴露的bean Exposing configuration beans in expressions and scripts 3.15. 配置部署缓存 Deployment cache configuration 3.16. 日志 Logging 3.17. 映射诊断上下文 Mapped Diagnostic Contexts 3.18. 事件处理器 Event handlers 3.18.1. 事件监听器实现 Event listener implementation 3.18.2. 配置与安装 Configuration and setup 3.18.3. 在运行时增加监听器 Adding listeners at runtime 3.18.4. 为流程定义增加监听器 Adding listeners to process definitions 执行用户定义逻辑的监听器 Listeners executing user­defined logic 抛出BPMN事件的监听器 Listeners throwing BPMN events 关于流程定义监听器的说明 Notes on listeners on a process­definition 3.18.5. 通过API分发事件 Dispatching events through API 3.18.6. 支持的事件类型 Supported event types 3.18.7. 附加信息 Additional remarks ……
首先,Activity是Android系统中的四大组件之一,可以用于显示View。Activity是一个与用记交互的系统模块,几乎所有的Activity都是和用户进行交互的,但是如果这样就能说Activity主要是用来显示View就不太正确了。 在深入了解Activity之前,我们先要知道一下MVC设计模式,在JAVAEE 中MVC设计模式已经很经典了,而且分的也比较清晰了,但是在Android中,好多人对MVC在Android开发中的应用不是很清楚,下面我就先来介绍一下MVC在Android开发中的应用: M(Model 模型):Model是应用程序的主体部分,所有的业务逻辑都应该写在这里,在Android中Model层与JavaEE中的变化不大,如:对数据库的操作,对网络等的操作都放在该层(但不是说它们都放在同一个包中,可以分开放,但它们统称为Model层)。 V(View 视图):是应用程序中负责生成用户界面的部分,也是在整个MVC架构中用户唯一可以看到的一层,接收用户输入,显示处理结果;在Android应用中一般采用XML文件里德界面的描述,使用的时候可以非常方便的引入,当然也可以使用JavaScript+Html等方式作为View。 C(Controller控制层)android的控制层的重任就要落在众多的activity的肩上了,所以在这里就要建议大家不要在activity中写太多的代码,尽量能过activity交割Model业务逻辑层处理。 好了,在介绍过Android应用开发中的MVC架构后,我们就可以很明确的知道,在Android中Activity主要是用来做控制的,它可以选择要显示的View,也可以从View中获取数据然后把数据传给Model层进行处理,最后再来显示出处理结果。 介绍过Activity的主要作用后,那么我们就要详细说一下Activity了。 Activity生命周期图 Activity 的生命周期是被以下的函数控制的。 public class Activity extends ApplicationContext { protected void onCreate(Bundle icicle); protected void onStart(); protected void onRestart(); protected void onResume(); protected void onFreeze(Bundle outIcicle); protected void onPause(); protected void onStop(); protected void onDestroy(); } onCreate(Bundle) 函数是你进行初始化的地方,这个也是执行 setContentView(View)函数的地方,setContentView(View)函数可以传入一个由XML 编制的UI界面,可以使UI和具体实现完全分离。 onPause()函数是处理用户离开当前 Activity 的地方。更重要的是,任何在当前 Activity中的任何改变都要在这个函数中提交。 Activity有四种状态: 活动状态,当Activity处于Stack(栈)顶时,就是手机当前的现实屏幕,这是 Activity就 处于activity或者运行状态。 运行但是失去焦点,当Activity还处于运行状态时,但是屏幕是有另外一个Activity 处于文档处于焦点状态,当前的Activity就处于pause。 停止,当Activity被另一个Activity完全覆盖的时候,就被停止了,其实就是虽然在 运行,但是用户却看不见。 结束,当Activity处于pause或者stop时,系统可以结束 Activity,回收资源,这 是Activity就是处于结束状态了。 处于结束状态的是Activity,如果要使用户可见,只要重启才可以。 Activity的响应时间 当前Activity所在的线程为主线程,它的响应时间为5秒,如果在当前运行的Activity中进行耗时的操作且响应时间起过5秒,那么程序就会报ANR错误。所以,这也是不建议在Activity中写太多复杂代码的原因之一。 当然,有些代码只能写在Activity中,不然就运行不了(它们不是生命周期方法),比如你想要获得android系统或者硬件一的些信息,就必须在Activity中写出来,如果单独写一个工具类获得不了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值