Kubernetes是一个软件系统, 允许部署和管理容器化的应用。使用该系统,用户不需要关心如何维护实体集群关系,也不用徒手部署应用,不必烦恼应用的运行状态,只需要按照系统说明编写描述信息,k8s会按照描述信息自动维护整个集群。对用户,k8s将维护和部署集群化应用的复杂过程隐藏起来并进行了抽象,使得开发者能够更加专注于应用的开发上。同时减轻了运维人员的工作压力
Hello Jellyyyyyyyyyyyyyy !!∎
想要写一篇介绍SockJS的文章,又不知道写什么好,发现官方github项目上这篇文章比较好,于是直接翻译过来。不长不短,正好合适。
该文章发布于2016年,某些论述可能已经过时,这里尝试加以纠正,但有谬误,还请指正。
我是前端菜鸟,并不知道这三个是啥玩意儿,只是查查资料,让自己稍微了解一些。顺便说,这篇文章都是从别的地方抄来的。
akka这个技术一致都在听人弹起,只知道它与后端有关,是一个牛B的框架,别的么。。。并不知道。那么,我觉得现在是时候了解一下了。
基于用户行为的理由
让用户直接说不就好了吗
本文标题是利用用户的数据行为, 是根据用户的实际动作进行演算的方法, 那为什么不利用用户语言进行演算呢? 最大的原因就是用户也说不清楚自己到底喜欢什么, 而用户的实际行为往往能够暴露其真实想法, 有些想法用户自己可能都还没有意识到.
Observable
ReactiveX中, 应用的是观察者模式, 一个观察者订阅一个被观察者. 然后该观察者根据被观察者释放的任何信息进行反应. 这样能够使得并发称为可能, 观察者不必阻塞等待被观察者的响应内容, 而是创建一个哨兵, 并随时准备在未来的任何时候响应被观察者释放出的内容
自从入职新公司,在印象中应该是一直没有打开过自己的CSDN主页,甚至完全忘记了自己还有一个博客这件事。
今天偶然间看到一篇博文,说的是搭建一个自己的博客。想着自己也一直有着这样的想法,于是回来看了看。并想着:我得重新开始写博客
- 文章中内容并没有全部验证,仅作为参考
- 上下文一起看,才能明白其中的意思
Web Flow中EL表达式作用
web-flow使用EL表达式访问flow的model和调用方法。在web-flow中EL表达式主要有如下四种用途
action-state
简单使用
该状态只执行操作,然后根据操作的结果转移到其他state。可以有多个操作,他们依次执行
1 | <!-- more --> |
输出
在action-state中调用普通java对象的方法,这些方法返回的只是一般的值,但是transition标签需要Event来触发,因此web-flow会将这个普通返回值转换为Event对象,具体转换情况如下:
1 | 方法返回值类型 映射出来的EventId |
action-state的操作
action-state可以有三种方式进行执行操作
- 调用POJO
1 | <evaluate expression="pojoAction.method(flowRequestContext)" /> |
1 | public class PojoAction { |
- 实现Action接口,直接调用该action
1 | <evaluate expression="customAction" /> |
1 | public class CustomAction implements Action { |
- 实现MultiAction接口,可以定义多个一连串的方法
1 | <evaluate expression="multiAction.actionMethod1" /> |
1 | public class CustomMultiAction extends MultiAction { |
action的异常处理
- POJO类action的处理方式
发生异常时,返回相应的字符串,会映射成Event,在transition中响应就可以了,和普通方法正常返回一样 - MultiAction的处理方式
发生异常时,返回Event对象
1 | public class BookingAction extends MultiAction { |
- 使用
exception-handler
属性,定义异常处理器
decision-state
decision-state是action-state的一种简单替代,在if/else情况时比较好用
1 | <decision-state id="moreAnswersNeeded"> |
action相关标签
1) <on-start>
flow开始时执行
2) <on-entry>
state进入时执行
3) <on-exit>
state退出时执行
4) <on-end>
flow结束时执行
5) <on-render>
view-state中使用,渲染前执行
6) <transition>
在转移前执行
命名的action
如下展示了一个action-state下多个操作执行,为每个操作命名,第二个操作成功后进行转移操作
1 | <action-state id="doTwoThings"> |
向客户端发送流信息
应用场景
客户端请求一个图片文件,此时我们需要直接操作httpresponse进行图片的响应,而不是渲染view。
解决方案
通过ExternalContext获取HttpResponse,将图片写入,然后操作ExternalContext对象记录response完成,这样web-flow就不会再渲染view,而是直接返回给浏览器
1 | public class PrintBoardingPassAction extends AbstractAction { |
在学习每一门新语言时,第一个程序往往是Hello World。这里我们写一个非常简单的flow,使用常用标签,在深入讲解之前有一个感官上的认识
需求说明
假设有如下简单流程:要求程序启动,显式输入界面,用户输入信息后,点击提交按钮,后台查询数据库,然后显式查询结果界面,中间任何步骤出错,都重新返回输入界面,并显示错误信息。流程大体如下。