工作11年,对流程引擎有较深认识
在Vue开发中,有时需要我在同一个列表中,多次加载同一个组件,但问题来了。 该组件只在页面加载中,加载一次,后面不会再加载了,如el-dialog,解决办法如下,在el-dialog外再加一层div. 示例代码如下: .. div中以v-if来控制组件el-dialog的出现与否,每次弹出el-dialog,都会执行mounted,而不加div,只会执行一次。
最近弃用activiti,改用flowable,发现在实现多节点实例自由跳转时,有很大区别。 自由跳转整理如下: import org.flowable.
最近在研究flowable,发现这个东东虽说是activiti的升级版,但感觉还是没有a5的好用。 项目中需要实现一个全局事件,实现如下: 实现flowable的配置 @Bean public EngineConfigurationConf...
最近想将cache 集成在项目中,原来计划上使用jetcache,但发现一直不成功.后面转成j2cache,但也是不成功.最后想基本的spring boot cache,但测试一直不成功! 后面上网查一下,发现原来与shiro有冲突.
进入目录径:/etc/mysql/mysql.conf.d 修改文件mysqld.cnf文件 [mysqld] 标签下方添加 lower_case_table_names=1 注意:该配置会强制将表名改为小写,如果当前存在大写的表,请将大写的表改为小...
用activiti做流程引擎时,我们需要定制一些全局配置,如主键的生成规则,全局事件等。 在activiti5中,是这样实现的 @Bean(name = "processEngineConfiguration") public Proc...
最近在做一个项目,前端菜单路径如下: { path: '/oa/workflow/process/:status', component: sys_workflow_process, ...
vue时,会用到el-dialog做为弹窗,但这个弹窗的宽度默认为50%.因项目中需要调整弹偿的宽度,需要设置其属性。 尝试过程如下: 方法1: 通过查找 el-dialog的官网api,查到其有宽度width的属性,设置其宽度比例即可 width="85%",但经设置后,发现没起任何作用。
以前做明细表格的新增改查,都是需要操作dom的,但现在数据驱动,不需要了,只需要操作数据即可,相当简单 明细表的编写 ...
最近想在明细表中,增加一个增加按钮,记录方法如下: 修改表格的渲染方法 ...
最近想实现一个表单内容的自动保存,原来是想通过监听表单的change事件来解决.但后面想想,现在都是数据驱动了,监听数据变化就行了. 页面表单如下: ...
最近集成activi 6集成到spring boot中,遇到一些问题,记录一二. activiti中的mybaitis版本冲突 集成activit6需引入如下配置 org.
最近考虑给自己的平台增加新的登陆方式,上网查了一下相关的资料 .我用的权限平台为shiro,如果要实现,需要实现多个Realm,我个人觉得这种方法有点麻烦,每增加一种登陆方式,都要实现Realm,就希望有一些简单的办法.
quartz很多人都会用,但需要配置cronExpression. 这个cronExpression很多技术人员都要配置,但很多情况,我们要知道这个cronExpression下次执行的时间是啥,让非技术人员很直观的看到下一个定时任务的执行时间。
最近项目中需要集成quartz这个定时任务,记录集成方法如下: pom.xml的相关引入 org.springframework.
我们开发时,后台很多时候都只存储一个用户Id,如创建人,修改人等,但我们前台显示时,又需要将Id转成人员名称显示。 一般很多时候在后台通过这条Id找到人名,但实际很多情况都要这么转换的,后台处理很麻烦,有没有比较通用性及简单的办法呢! 有的,我们可以考虑Vue的组件,传入一个用户Id,组件返回人名,以后就不需要再后台转换了。
activiti是原来不支持节点跳转的,他要求有线才能走,但实际业务中,需要支持动态跳转到各个节点。 一开始,这里的做法是动态构造一条虚拟线的,相关代码如下: /** * 流程转向操作 * * @param taskId...
我用mybatis生成器,生成时总有两个model类,一个是PO类,一个是example,但example我不想要了,想去掉,查一下,修改相关配置即可. 原来配置为 修改配置如下 : 修改后,没再生成exa...
在用Criteria时,相关代码如下: final RolePermissionExample example = new RolePermissionExample(); example.
个人花了不到2天时间,写了一个通用数据级别权限的框架设计与实现。 欢迎提意见及评论。有空请打赏! 通用数据级别权限的框架设计与实现(1)-相关业务场景的分析 通用数据级别权限的框架设计与实现(2)-数据权限的准备工作 通用数据级别权限的框架设计与实现(3)-数据列表的权限过滤 通用数据级别权限的框架设计与实现(4)-单条记录的权限控制 通用数据级别权限的框架设计与实现(5)-总结与延伸思考 个人代码已经完成,如需要请打赏后通知我。
继上篇文章通用数据级别权限的框架设计与实现(4)-单条记录的权限控制后,通用数据级别权限的框架设计已经实现,但我们就这样满足了吗? 代码也只是花了我两个晚上完成的东西,难道他就百分百可用吗? 答案当然是NO,很多场景及问题我们没有考虑进去。
查看上篇文章通用数据级别权限的框架设计与实现(3)-数据列表的权限过滤,我们开始在原来的基础上实现单条权记录的权限控制。 相信前面的列表权限控制,很多系统都可以做到,但如何在上面列表的权限过滤中实现通用性 原理:我们在权限过滤中,通过AOP接截相关记录,拦截的时候,我们先判断当前人员是否有角色权限,没有的话,我们生成查询权限的SQL,进行权限查找.
查看上篇文章通用数据级别权限的框架设计与实现(2)-数据权限的准备工作,我们开始数据列表的权限过滤. 原理:我们在做过滤列表时,根据用户权限自动注入到相关SQL中,实现相关过滤,如果拥有全部权限,则不生成相关SQL片段 首先我们来分析一下数据列表的SQL 能看到所有数据的SQL SELECT role.
查看上篇文章通用数据级别权限的框架设计(1)-相关业务场景的分析",我们要继续做一些准备工作。 我们先要设置当前用户信息的类 /** * @description: 用户对象 * @author: starmark * @create: 2...
我们做权限系统的时候,经常要考虑几个问题。 这个功能他没有权限看,不能允许他访问。 这笔记录他不能看到呀,不能允许他能看到相关记录. 相信对于第一个问题,很多人都能做到。
最近工作上一直在用activiti作工作流,发现工作流程使用起来真的挺费劲的! 这不,业务需求有来有,用户希望在回复沟通时,能触发回复沟通事件,而用户通过该事件触发他的业务事件。
项目中突然需要增加另一个字段的查找,而这个查找需要查另一张表的记录。 但现在产品很多地方都要增加该字段,如何最快的实现该功能呢。 办法如下: 通过fastjson序列化时,增加该字段的序列化类,该序列化类通过CODE查找名称,并序列化到前端。
原来用spring-session1.3.2,进行单点登陆,但升级到2.0.0后,发现原来的类HttpSessionStrategy报错了,没有该类。 经分析,原来的类要调整为HeaderHttpSessionIdResolver @Bean public HeaderHttpSessionIdResolver httpSessionStrategy() { return new HeaderHttpSessionIdResolver("x-auth-token"); } 调整成这个,功能正常。
最近集成shiro到项目中,遇到该一个报复Response for preflight is invalid (redirect)的问题。 shiro集成,配置无权限的路径 @Bean(name = "shiroFilter") p...
在项目开发中,需要实现shiro的超级管理员功能。 但网上查了一下相关实现,发现很多实现都是在用户获取权限资源时,如果是超级管理员,就将系统的全部权限,角色赋给用户。
现在JAVA 对象如下: @Data @NoArgsConstructor public class ResourceTreeDto implements Serializable, Comparable { private Coll...
做shiro权限控制时,shiro的权限RequiresPermissions都写在Controller的方法内,如果做动态的权限管理时,每个shiro的权限资源都要手动录入,太麻烦了。
查项目时,发现项目启动时,有生成log日志,但到达第二天时,没有生成新的日志文件。 原来的logback配置如下: /apps/svr/activity-workflow-8082/workflow.
最近项目中,I商机用jdk1.7,而ltc用jdk1.8,所以提供给他们的api都要不同的版本 修改pom.xml配置 maven-compiler-plugin 2.
最近在研究vue,也试着写一些Vue页面。 vue中,我返回一个值,"sex":0, 单选框代码为 男 女 但我发现页面加载的时候没有选中,要返回,"sex":'0',才生效。
swagger是一个很牛B的东东,但正常使用时,我们的接口需要登陆才能访问的。即登陆时,要传一个登陆后的token才能访问的。 那这个怎么设置,才可以让所有接口都允许登陆后访问呢。
[项目中经常写CRUD,但实际这些工作,我觉得如果有一个完整的代码规范,完全可以自动生成,加快开发效率. 代码生成器技术原理不复杂,一般就是写好一个模板生成一系列的代码而已。
项目中,有时需要通过特定的字符寻找特定的类,如mybatis,可以通过适配符寻找要扫描的目录。 我们自己也可以通过适配符寻找到自己想要的类,具体代码如下: /** * 通过包名获取class * * @author starmaark * @v...
以前项目用惯了hibernate,jpa,它有个自动建表功能,只要在PO里加上配置就可以了,感觉很爽. 但现在用mybatis,发现没有该功能,每次都加个字段,还是要重新改表结构,我个人认为很麻烦. 上网找了一下,发现有个开源的actable,但是这个不好用,不符合实际项目要求。
最近想集成activti到spring boot中,上网找了一下例子,发现很简单,就开干了! 建立maven工程后,加入acitivti的引入 org.
用acitivit开发流程,因业务要求,希望实现节点结束时实现相关业务场景! 这个简单,实现activti的事件接口ExecutionListener中就可以了! 代码简单如下 */ public class TestListener implem...
项目使用了druid,版本为1.0.11 该版本有一个比较大问题,数据库密码错误没有任何提示,项目就卡在那里不动 不要问我为什么知道,真的不想提这个事。 最后将druid升级到1.1.6,密码错误也有提示了。
项目中,需要集成cxf,照着网上的例子进行集成, 代码如下: @Autowired private Bus bus; @Bean public ServletRegistrationBean dispa...
说起actviti,很多人都会说它支持bpmn标准,它的流转都是基于bpmn文件来运行! 但我们在设计流程时,流程定义真的只能是bpmn定义吗? 其实不然,activti可以支持任意流程定义,只要你发布流程时,将你的流程定义转成bpmn文件即可! ...
activiti是支持juel表达式的,这个也很好用,但实际过程中需要支持类方法及变量。 原来项目中解析juel,这边有自定义一个方法的 代码如下: public String getStringByELAndFormData(String el...
在activit项目中,有时需要重写节点的behaviour,但如果将代码反编译,会为后续升级,及项目打包带为不方便。 其实 acitivit已经提供了扩展点重写节点行为。
activiti除了可以通过流程设计器画流程图之外,其实也可以通过代码生成流程图。 activiti的流程图核心对象就是BpmnModel,只要生成了这个BpmnModel对象,流程图就OK了。
最近的项目是用activiti explorer做流程前端。 功能做出来后,经常被用户反馈 ,说流程页面不好用。 画一个流程图后,再画一个,都要重头开始,如果导入及导出,用户又嫌麻烦。
Java序列化JSON时long型数值,会出现精度丢失的问题。 原因: java中得long能表示的范围比js中number大,也就意味着部分数值在js中存不下(变成不准确的值). 解决办法一: 使用ToStringSerializer的注解,让系统序列化 时,保留相关精度 @JsonSerialize(using=ToStringSerializer.class) private Long createdBy; 上述方法需要在每个对象都配上该注解,此方法过于繁锁。
系统做了一个全局异常,对各种异常进行封装,统一返回。 代码如下: @ExceptionHandler(NoHandlerFoundException.class) @ResponseStatus(value = HttpStatus.