腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
圈层
工具
文章/答案/技术大牛
搜索
搜索
关闭
发布
首页
学习
活动
专区
圈层
工具
返回腾讯云官网
编码小白
专栏成员
举报
51
文章
85144
阅读量
31
订阅数
订阅专栏
申请加入专栏
全部文章(51)
tomcat(13)
xml(7)
其他(6)
servlet(5)
java(4)
android(2)
数据库(2)
api(2)
http(2)
网络安全(2)
javascript(1)
jsp(1)
angularjs(1)
node.js(1)
云数据库 SQL Server(1)
sql(1)
access(1)
打包(1)
github(1)
命令行工具(1)
人工智能(1)
容器(1)
编程算法(1)
存储(1)
jdk(1)
dns(1)
hashmap(1)
npm(1)
小程序(1)
https(1)
activiti(1)
add(1)
command(1)
model(1)
show(1)
view(1)
zip(1)
部署(1)
插件(1)
环境搭建(1)
快捷键(1)
调试(1)
搜索文章
搜索
搜索
关闭
activiti学习笔记(二) 获取流程实例
java
hashmap
xml
获取流程实例 流程实例获取的源码解析 以获取默认的流程实例为例,来解释整个流程实例的获取过程 文件位置:/org/activiti/engine/ProcessEngines.java 第一步:通过getDefaultProcessEngine来获取,可以看出其调用的当前类的getProcessEngine方法。 //获取默认的流程引擎实例 NAME_DEFAULT="default" public static ProcessEngine getDefaultProcessEn
cfs
2018-03-08
967
0
activiti学习笔记(三) 监听生命周期
网络安全
activiti监听生命周期 activiti生命周期的作用 生命周期的作用是在构建processEngine实例时候或者关闭的时候调用对应处理方法,比如我在启动实例的时候,可以对实例做一些预处理 activiti的接口类 public interface ProcessEngineLifecycleListener { /**实体引擎实例化的时候调用该方法*/ void onProcessEngineBuilt(ProcessEngine processEngine); /**实体引擎关闭
cfs
2018-03-08
1.2K
0
activiti学习笔记(四) 配置器
编程算法
activiti配置器 activiti配置器的作用 一般在构建流程实例的时候, 会进行初始化,配置器就是可以在获取了流程配置实例,以及初始化之后可以进行一些额外的配置 activiti配置器的机制 allConfigurators集合添加 在ProcessEngineConfigurationImpl这个类中调用init方法中initConfigurators方法,将所有流程配置器添加到allConfigurators这个集合,流程配置器有两种获取形式,第一种是直接通过bean
cfs
2018-03-08
818
0
activiti学习笔记(五) 流程部署
api
activiti
add
zip
部署
activiti流程部署 activit部署方法api activiti共有六种部署方式,最终实现都是DeploymentEntityImpl的addResource方法 public interface DeploymentBuilder { //根据流进行部署,获取bpmn文件的流进行部署,resourceName是资源名可以自定义 DeploymentBuilder addInputStream(String resourceName, InputStream inputStream
cfs
2018-03-08
2.8K
0
activiti学习笔记(六) 监听器
人工智能
activiti全局监听器 全局监听器主要使用的场景就是监控这个流程的启动和结束。流程开始的时候可以监控,流程结束的时候也可以监控 监听器的接口 public interface ActivitiEventListener { /**当时间被执行时调用该方法*/ void onEvent(ActivitiEvent event); /** * @author 郑小康 * 这个是onEvent执行失败之后进行的处理 * * 如果是true则返回onEvent执行失败的异常 *
cfs
2018-03-08
4K
0
sql带条件查找最小缺失编号
sql
查找在CASE_SET_ID为某个条件下的最小缺失编号 如 1 3 获取的值是2 , 2 3则获取的值是1 /** * select * case when not exists(select * from rt_test_case where CASE_NUM=1) then 1 * else (select min(IFNULL(CASE_NUM,0)+1) from rt_test_case as a
cfs
2018-03-08
1.1K
0
tomcat请求处理分析(一) 启动container实例
tomcat
1.1.1 启动container实例 其主要是进行了生命周期中一系列的操作之后调用StandardEngine中的 startInternal方法,不难看出其调用其父类的startInternal方法, 其父类是ContainerBase.java protected synchronized void startInternal() throws LifecycleException{ if(log.isInfoEnabled()) log.info( "StartingServlet Engin
cfs
2018-03-08
691
0
tomcat请求处理分析(二) 启动mapperListener
tomcat
1.1.1启动mapperListener 这个方法的核心就是注册Host的 public void startInternal() throws LifecycleException{ setState(LifecycleState.STARTING); //获取当前service的container,其实也就是engine @SuppressWarnings("deprecation") Engine engine = (Engine) service.getCont
cfs
2018-03-08
780
0
tomcat请求处理分析(三) 绑定本地端口监听请求
tomcat
1.1.1.1 bind方法 注意:这个bind可能在load的过程就已经加载,这里只是验证 NioEndpoint就是使用Java中的NIO技术,来实行对Socket的处理。它主要包含两个部业务处理部分:Poller线程组和Acceptor线程组。 1.1.1.1.1 解析过程 首先我们应该知道其bind方法做了一些什么操作,代码如下: public void bind() throws Exception { // 打开监听信道 serverSock =ServerSocke
cfs
2018-03-08
1.7K
0
tomcat请求处理分析(四) 监听请求轮询处理
tomcat
1.1.1.1 startInternal方法 这个方法是核心的启动方法,目前理解主要做了两件事情,第一件是创建轮询线程,即具体的读取线程,它是进行具体的处理,第二个是创建创建监听请求线程,它是等待请求,然后交给轮训进行处理。 public void startInternal() throws Exception { if (!running) { running = true; paused = false; //一种带锁的栈,processorCache processorCache =
cfs
2018-03-08
1.6K
0
tomcat请求处理分析(五) 请求到响应流
其他
1.1.1.1 请求到响应界面流 请求处理的过程主要是将所有的东西解析成流,转化成对应的http报文,所以在这里我先不关注servlet因为它最终也就是解析成流里面的数据 processKey里面最终执行的是processSocket,它是线从缓存中获取对应的线程池,没有的话就创建一个,然后进行执行 protected boolean processSocket(KeyAttachmentattachment, SocketStatus status, boolean dispatch) { try {
cfs
2018-03-08
1.3K
0
tomcat请求处理分析(六)servlet的处理过程
tomcat
servlet
1.1.1.1 servlet的解析过程 servlet的解析分为两步实现,第一个是匹配到对应的Wrapper,第二个是加载对应的servlet并进行数据,这些数据是怎么到界面的,response.getWrite()获取对应的流,然后写入这个流中,这个流中就有上文的outputBuffer。 匹配到对应Wrapper 在上文中我们曾经走到过了doRun方法,现在就直接从这里开始 执行顺序如下: NioEndpoint(run)==>下步调用doRun NioEndpoint(doRun)==>下
cfs
2018-03-08
2.4K
0
mac操作技巧
command
show
view
快捷键
1清除launchpad界面残留图标 在launchpad界面: 第一步:长按快捷键control+option,图标会抖动 第二步:单击删除图标 2显示finder左侧边栏 在finder 中View>Show Side Bar 快捷键option+command+s
cfs
2018-03-08
626
0
tomcat源码解读一 Digester的解析方式
tomcat
xml
1 Digester Digester在tomcat中的作用是对conf下的server.xml文件进行实例化,其是从Catalian这个组件开始,创建Digester实例,再添加对应的规则,然后将其实例化,通过setServer方法,将其实例话的对象作为当前Catalian实例的句柄。这样就实现了对象句柄之间的关联引用,从而实现整个平台的递进启动。 1.1 UML类图 1.2 UML时序图 1.3 规则添加解析 1.3.1 添加对应解析规则 规则的添加实在Catalia.java
cfs
2018-03-08
1.4K
0
tomcat源码解读二 tomcat的生命周期
其他
1 生命周期 1.1 观察者模型 tomcat生命周期采用了观察者模式,所以在介绍生命周期的时候不得不介绍观察者模式 观察者模式定义了对象间的一种一对多依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并被自动更新 观察者模式: 根据UML图可以看出所有被观察的对象Observer的实现类(可以有多个具体实现类)被添加到观察者Subject的实现类SubjectImpl中的observerList集合中去,这样SubjectImpl对象可以通过遍历observerList中
cfs
2018-03-08
1.1K
0
tomcat源码解读三(1) tomcat的jmx管理
tomcat
java
JMX即Java 管理扩展(Java Management Extensions,JMX)用来管理检测 Java 程序(同时 JMX 也在 J2EE 1.4 中被发布)它的作用是可以在程序运行的时候对其进行动态处理,调用相应方法来进行对指定属性值进行修改,在下面我将以代码结合jconsole进行分析(注意:在实际的程序管理过程中并不支持使用jconsole,因为它是一个java的客户端)源代码在下一节进行分析 1.1 tomcat中JMX的使用Demo 请注意这个JMX的展示仅仅针对与tom
cfs
2018-03-08
742
0
tomcat源码解读三(2) tomcat中JMX的源码分析
其他
在这里我是将tomcat中的jmx给拆分出来进行单独分析,希望通过此种方式能够尽可能的出现更多的问题,以便对其有更多的了解,首先需要声明的是tomcat的JMX是在jsvase原有的基础上做
cfs
2018-03-08
1.3K
0
tomcat源码解读四 tomcat中的processer
tomcat
Processor是一个接口,针对于不同协议下具有不同的具体实现类,其实现类的具体功能是处理http请求,主要是对协议进行解析,状态处理以及响应。然后起一个中间作用转发到 Adater,下面
cfs
2018-03-08
1.3K
0
tomcat源码解读五 Tomcat中Request的生命历程
tomcat
servlet
Request在tomcat中是一个非常核心的的实例,下面以NIO为例来解读一下在各个时期下的状态(其实在Tomcat的几种模式中到了这里之后的处理都是差不多的) 1.1 创建coyote/Request 这个request并不是我们最终在servlet中使用的Request,它是tomcat内部处理请求的一种有效方法,其创建过程是在接收到客户请求处理套接字构建Processor具体实现类的构造器中构建,以NIO模式为例则是在实例化请求处理类Http11NioProcessor时候构建,
cfs
2018-03-08
2.2K
0
tomcat源码解读六 tomcat中的session生命历程
tomcat
session的作用是在一次会话中(从打开浏览器到关闭浏览器同当前服务器的交流)当客户端第一次请求session对象时候,服务器会为客户端创建一个session,并将通过特殊算法算出一个se
cfs
2018-03-08
1.5K
0
点击加载更多
社区活动
Python精品学习库
代码在线跑,知识轻松学
立即查看
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
立即体验
技术创作特训营·精选知识专栏
往期视频·干货材料·成员作品 最新动态
立即查看
领券
问题归档
专栏文章
快讯文章归档
关键词归档
开发者手册归档
开发者手册 Section 归档