activiti 表
ACT_RE_*: RE stands for repository. Tables with this prefix contain static information such as process definitions and process resources (images, rules, etc.).
ACT_RU_*: RU stands for runtime. These are the runtime tables that contain the runtime data of process instances, user tasks, variables, jobs, etc. Activiti only stores the runtime data during process instance execution, and removes the records when a process instance ends. This keeps the runtime tables small and fast.
ACT_ID_*: ID sta ...
mysql - You must reset your password using ALTER USER statement before executing this statement
新安装的mysql服务器,执行任何命令都报以下错误:
1You must reset your password using ALTER USER statement before executing this statement.
意思是必须得先修改默认密码才能执行命令。解决方法:
修改密码。直接使用ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';报同样的错,使用SET PASSWORD=PASSWORD('123456'); 这种方式报这个错误You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'PASSWORD('123456')' at line 1 。可以使用另外一种alte ...
并行——使用流还是 CompletableFutures?
并行——使用流还是 CompletableFutures ?目前为止,你已经知道对集合进行并行计算有两种方式:要么将其转化为并行流,利用 map这样的操作开展工作,要么枚举出集合中的每一个元素,创建新的线程,在 CompletableFuture 内对其进行操作。后者提供了更多的灵活性,你可以调整线程池的大小,而这能帮助你确保整体的计算不会因为线程都在等待I/O而发生阻塞。我们对使用这些API的建议如下。
如果你进行的是计算密集型的操作,并且没有I/O,那么推荐使用 Stream 接口,因为实现简单,同时效率也可能是最高的(如果所有的线程都是计算密集型的,那就没有必要创建比处理器核数更多的线程)。
反之,如果你并行的工作单元还涉及等待I/O的操作(包括网络连接等待),那么使用CompletableFuture 灵活性更好,你可以像前文讨论的那样,依据等待/计算,或者W/C的比率设定需要使用的线程数。这种情况不使用并行流的另一个原因是,处理流的流水线中如果发生I/O等待,流的延迟特性会让我们很难判断到底什么时候触发了等待。
Java8 多默认方法解决冲突机制
如果一个类的默认方法使用相同的函数签名继承自多个接口,解决冲突的机制其实相当简单。你只需要遵守下面这三条准则就能解决所有可能的冲突。
首先,类或父类中显式声明的方法,其优先级高于所有的默认方法。
如果用第一条无法判断,方法签名又没有区别,那么选择提供最具体实现的默认方法的 接口。
最后,如果冲突依旧无法解决,你就只能在你的类中覆盖该默认方法,显式地指定在你的类中使用哪一个接口中的方法。
Spring resource配置文件写法
为了管理方便,通常将Spring 的配置文件拆成多个,但也带来了复杂性的问题,不晓得它是如何加载的。
解析xml import元素主要是org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader#importBeanDefinitionResource()方法为入口,看一下这个方法的代码:
12345678910111213141516171819202122232425262728293031323334String location = ele.getAttribute(RESOURCE_ATTRIBUTE); try { //判断是不是绝对路径 //CLASSPATH_ALL_URL_PREFIX --> classpath*: //(resourceLocation != null && (resourceLocation.startsWith(ResourcePatternResolver.CLASSPAT ...
阻塞、非阻塞、同步、异步
我常说我女朋友是同步的,因为她只能一件事做完之后才能响应的我的话。那我肯定不能一直等她啦,先干别的事,不能阻塞在这里,同时呢,我会看她是不是搞完事了,搞完了我就再跟她说,这就是非阻塞了。有时候干脆等她搞完事了,她会主动跟我说的,这就是异步了。
maven依赖总结
假设A 有两个1.0 和2.0两个版本。
B依赖A 1.0版本,C依赖A 2.0版本, D 依赖B和C ,在D打包的时候A的版本为高版本2.0。
E 依赖 C, D改为依赖B和E,这时候A的版本为高版本1.0。如果在D中直接依赖A 2.0版本,这时会存在两个版本的包。
总结:同级的会高版本覆盖低版本,层次浅的会覆盖层次深的。依赖引入的,都会存在。
错误记录20180521
昨天出现了一个问题java.lang.NoClassDefFoundError.
由于在pom中加入了一个新的A包,这个包依赖了另外一个新版本的B jar,项目中原本有B的低版本,编绎的时候可以通过,但是运行的时候就会报上述异常。mvn clean了好多次,reimport好多次,生成的war目录里面就是没有新版本的B jar。
尝试将这个包手动在IDEA 项目配置里面的dependencies中去,这样做不好,这些依赖是由IDEA根据pom解析后自动生成的。
最后想起来打包的配置都在artifacts中配置的,果断去里面加上这个依赖。再次运行就可以了。
按说IDEA会自动在artifacts中加入这个新的jar包才对。最开始想的是不是pom配置的有问题,一直在从这个方面去解决。
最后发现还是依赖配置的有问题,版本不同的话会导致出现这样的问题,解决方法看另外一篇
jQuery prop与attr的区别
问题今天在操作checkbox的时候,想让它选中,用了下面的写法:
1$("#id1").attr("checked",true);
结果并没有选中。查看了一下dom,发现多了一个属性checked="checked",看似是应该选中才对,然而并没有啥用。
1<input id="id1" type="checkbox" value="1" checked="checked">
网上也发现我不少朋友遇到这问题,换用prop方法试了一下,结果选中了。dom为:
1<input id="id1" type="checkbox" value="1" offval="0">
有点儿奇怪。
attr()方法获取匹配的元素集合中的第一个元素的属性的值 或 设置每一个匹配元素的一个 ...