作者:vivo互联网服务器团队-ChengWangrong本文是《vivo营销自动化技术解密》的第4篇文章,分析了在营销自动化业务引入工作流技术的背景和工作流引擎的介绍,同时介绍了几种业界流行的开源工作流引擎特点,以及在项目自研开发过程中的设计思路和总结思考。《vivo营销自动化技术解密》系列文章:vivo营销自动化技术解密|开篇设计模式如何提升vivo营销自动化业务扩展性|引擎篇01状态机引擎在vivo营销自动化中的深度实践|引擎篇02一、业务背景营销自动化平台可以支持不同用户生命周期的活动旅程策略配置,根据用户触发的不同活动行为,进行差异化的营销触达方案。同时各种类型活动的具体执行过程中也
WEB开发会话技术0310.问题引出问题引出不同的用户登录网站后,不管该用户浏览网站的哪个页面,都可以显示登录人的名字,还可以随时去查看自己购物车中的商品,这是如何实现的呢?也就是说,一个用户在浏览一个网站的不同页面时,服务器是如何知道是张三在浏览这个页面,还是李四在浏览这个页面?解决方法1-使用cookie在用户登录的时候,服务器可以将用户信息通过cookie的形式保留在浏览器。每当用户访问不同的网页(发送HTTP请求),浏览器都会将该cookie发送给服务器,服务器通过获取cookie的值,在网页上就可以显示当前用户的信息;同时服务器也可以通过cookie(用户信息)找到用户操作用户在数据
WEB开发会话技术0310.问题引出问题引出不同的用户登录网站后,不管该用户浏览网站的哪个页面,都可以显示登录人的名字,还可以随时去查看自己购物车中的商品,这是如何实现的呢?也就是说,一个用户在浏览一个网站的不同页面时,服务器是如何知道是张三在浏览这个页面,还是李四在浏览这个页面?解决方法1-使用cookie在用户登录的时候,服务器可以将用户信息通过cookie的形式保留在浏览器。每当用户访问不同的网页(发送HTTP请求),浏览器都会将该cookie发送给服务器,服务器通过获取cookie的值,在网页上就可以显示当前用户的信息;同时服务器也可以通过cookie(用户信息)找到用户操作用户在数据
JDBC和连接池038.事务8.1事务介绍基本介绍JDBC程序中当一个Connection对象创建时,默认情况下是自动提交事务:每次执行一个SQL语句时,如果执行成功,就会向数据库自动提交,而不能回滚。JDBC程序中为了让多个SQL语句作为一个整体执行,需要使用事务调用Connection的setAutoCommit(false)可以取消自动提交事务在所有的SQL语句都执行成功后,调用Connection的commit();方法提交事务在其中某个操作失败或者出现异常时,调用Connection的rollback();方法回滚事务8.2事务处理应用实例模拟经典的转账业务首先创建一张account
JDBC和连接池038.事务8.1事务介绍基本介绍JDBC程序中当一个Connection对象创建时,默认情况下是自动提交事务:每次执行一个SQL语句时,如果执行成功,就会向数据库自动提交,而不能回滚。JDBC程序中为了让多个SQL语句作为一个整体执行,需要使用事务调用Connection的setAutoCommit(false)可以取消自动提交事务在所有的SQL语句都执行成功后,调用Connection的commit();方法提交事务在其中某个操作失败或者出现异常时,调用Connection的rollback();方法回滚事务8.2事务处理应用实例模拟经典的转账业务首先创建一张account
家居网购项目实现038.功能07-后台管理显示家居8.1需求分析/图解给后台管理提供独立登录页面,管理员登录地址不对外公开管理员登录成功后,显示管理菜单页面管理员点击家居管理,显示所有家居信息8.2思路分析ps:实现管理员登录功能,方案一是将管理员视为member,添加到member表中,为了区别管理员和用户的权限,添加一个字段即可;方案二是重新创建一张admin表,单独存储admin信息。这里采用方案二。8.3代码实现8.3.1admin表和furn表admin表:--创建admin表CREATETABLE`admin`(`id`INTPRIMARYKEYAUTO_INCREMENT,`us
家居网购项目实现038.功能07-后台管理显示家居8.1需求分析/图解给后台管理提供独立登录页面,管理员登录地址不对外公开管理员登录成功后,显示管理菜单页面管理员点击家居管理,显示所有家居信息8.2思路分析ps:实现管理员登录功能,方案一是将管理员视为member,添加到member表中,为了区别管理员和用户的权限,添加一个字段即可;方案二是重新创建一张admin表,单独存储admin信息。这里采用方案二。8.3代码实现8.3.1admin表和furn表admin表:--创建admin表CREATETABLE`admin`(`id`INTPRIMARYKEYAUTO_INCREMENT,`us
线程基础036.用户线程和守护线程用户线程:也叫工作线程,当线程的任务执行完或者通知方法结束。平时用到的普通线程均是用户线程,当在Java程序中创建一个线程,它就被称为用户线程守护线程(Daemon):一般是为工作线程服务的,当所有的用户线程结束,守护线程自动结束常见的守护线程:垃圾回收机制例子1:如何将一个线程设置成守护线程packageli.thread.method;publicclassThreadMethodExercise{publicstaticvoidmain(String[]args)throwsInterruptedException{MyDaemonThreadmyDae
线程基础036.用户线程和守护线程用户线程:也叫工作线程,当线程的任务执行完或者通知方法结束。平时用到的普通线程均是用户线程,当在Java程序中创建一个线程,它就被称为用户线程守护线程(Daemon):一般是为工作线程服务的,当所有的用户线程结束,守护线程自动结束常见的守护线程:垃圾回收机制例子1:如何将一个线程设置成守护线程packageli.thread.method;publicclassThreadMethodExercise{publicstaticvoidmain(String[]args)throwsInterruptedException{MyDaemonThreadmyDae
JavaGUI-坦克大战037.线程的应用017.1坦克子弹发射思路在坦克大战2.0基础上添加如下功能:当玩家按下j键,就发射一颗子弹。思路:当发射一颗子弹后,就等于启动了一个线程Hero类要有子弹的对象,当按下j键时,我们就启动一个发射行为(线程),让子弹不停地移动,形成一个设计的效果我们的MyPanel需要不停地重绘,才能出现该效果当子弹移动到面板边界时,就应该销毁(把启动的子弹的线程销毁)7.2我方发射子弹1.创建子弹类Shot:实现Runnable接口,创建线程,在run方法中用while循环不停地改变子弹坐标,实现子弹射出的效果packageli.TankGame.version03