1.SpringBoot整合Activiti工作流(附源码)
2.Android常è§ç¥è¯ç¹
3.请假程序问题
SpringBoot整合Activiti工作流(附源码)
依赖: 在新建springBoot项目时勾选activiti,请假请假或在已建立的源码源码springBoot项目中添加以下依赖: 数据源和activiti配置: 在activiti的默认配置中,process-definition-location-prefix指定activiti流程描述文件的系统前缀,启动时,请假请假iapp反馈源码activiti将自动寻找此路径下的源码源码文件并部署。suffix为String数组,系统底部出海指标源码表示描述文件的请假请假默认后缀名。 springMVC配置: 配置静态资源和直接访问页面,源码源码采用thymeleaf依赖解析视图,系统主要采用异步方式获取数据,请假请假通过angularJS进行前端数据处理与展示。源码源码 使用activiti: 配置数据源和activiti后,系统启动项目,请假请假aqs条件锁源码activiti服务组件自动加入到spring容器中。源码源码使用注入方法直接访问。系统在非自动配置的软绑定源码解读spring环境中,可通过指定bean的init-method配置activiti服务组件。 案例:请假流程示例: 1. 员工申请请假 设置请假信息,完成申请时传入参数。设计类 网站 源码 2. 老板审批请假 (1) 查询审批任务 老板查看需审批的请假任务,设置VacTask对象用于页面展示。 (2) 完成审批 传入审批结果和任务ID。根据结果进行流程跳转。 3. 查询请假记录 在history表中查询已完成的请假记录,设置VO对象展示。 4. 前端展示与操作 (1) 审批列表与操作 展示审批列表及操作示例,完成一个springBoot与activiti6.0整合示例项目的说明与代码。 完整项目代码参考: 推荐阅读: 1. SpringBoot内容聚合 2. 设计模式内容聚合 3. Mybatis内容聚合 4. 多线程内容聚合Android常è§ç¥è¯ç¹
跳槽æ éå°±æ¯é±å°äºæä¸ç½äºï¼æ 论æä¹æ ·ï¼è®°ä½ï¼ä¸è¦è£¸è¾ï¼
ä¸è¦è£¸è¾ï¼
ä¸è¦è£¸è¾ï¼
为ä»ä¹å¢ï¼
1ã裸è¾å°±æ²¡æé±æ¿äºï¼è¿ä¸å¦éªé©´æ¾é©¬ã
2ã裸è¾ä¹åå¦æä¸ä¸ªæå 没ææ¾å°å·¥ä½ï¼é£ä¹ç¤¾ä¿å°±ä¼æäºï¼é¤éä½ èªå·±æ¾æ¸ é交äºã
3ã裸è¾ä¹åççä¼å¾é¢åºï¼
å½åè¿å¨ä¸ççæ¶åå°±æ³çï¼è£¸è¾äºï¼é¦å è±å 天æ¶é´å§ç®åå®åä¸ä¸ï¼æç¥è¯ç¹æ¶è¡¥ä¸ä¸ï¼ç¶åæç®åï¼é¢è¯ï¼å¦¥å¦¥ç妥妥ã
ç»æå¢ï¼æ¯æ¬¡è£¸è¾ä¹åé½æ¯ï¼
é¦å 躺尸ä¸ä¸ªææï¼
ç¶åç¨äºä¸ä¸ªææææ ¢ååçæ¹å®ç®åï¼
ç¶åæµ·æï¼æ²¡åå¤ï¼ä¿®æ¹ç®åï¼
å次海æï¼é¢è¯ï¼è¢«èå¾ä½æ å®è¤ï¼æç人çï¼
åæ¹ç®åï¼åæµ·æï¼ä¸ä¸å°å¿ä¸äºã
å½ç¶æµ·æä¹æ¯æ个ç®æ èå´çã
å¦æä¸æ¯è£¸è¾ï¼é£ä¹ç°å¨åºè¯¥è¿æ¯å¨å ¬å¸ä¸çï¼å¨å®æå·¥ä½ä¹ä½ï¼å°±ä¼é¼çèªå·±å¤ä¹ ç¥è¯ç¹äºï¼èµ·ç ä¸ä¼å¨å®¶å è½ãå¨å®¶ä¸ä¸çå°±æ¯ç¡è§ãççµå½±ï¼æ¨¯æ©¹ç°é£ççï¼æ以ä¸è¦è£¸è¾ã
ç¶å¹¶åµï¼æä¾ç¶è£¸è¾äºã请åé¢è¯ççå¾ç¦ã
onPauseï¼åå¦ä»ActivityAå¯å¨Bï¼å¦æBæ¯éæçï¼åä¸ä¼åè°AçonStopæ¹æ³ã
æ¹æ³ä¸ï¼
æ¹æ³äºï¼
1ãå好å¨ç»æ件 R.anim.enter ã R.anim.exit
2ãè°ç¨ overridePendingTransition 设置å¨ç»
å¼ç³ï¼å¦Activity设置为singleInstanceï¼ååºè¯¥æä¹è®¾ç½®è·³è½¬å¨ç»ï¼
1ãstartServiceå¯å¨æ¹ä¸Service并没æå ³èï¼åªæå½Serviceè°ç¨ stopSelf æè å ¶å®ç»ä»¶è°ç¨ stopService çæ¶åæå¡æä¼ç»æ¢ã
2ãbindServiceå¯å¨æ¹ç»å®Serviceï¼å¹¶ä¸å¯ä»¥éè¿Binderä¸ä¹äº¤äºï¼å½å¯å¨æ¹éæ¯æ¶ï¼ä¹ä¼èªå¨unbindServiceï¼å½ææå¯å¨æ¹é½unbindServiceä¹åï¼Serviceä¹å°±èªå¨éæ¯äºã
为ä»ä¹å¢ï¼å®æ¹ææ¡£æ¯è¿æ ·åçï¼
大æ¦æææ¯ onReceive() æ§è¡å®æ¯ä¹åï¼å®æå¨çè¿ç¨å°±ä¼åæä½ä¼å 级è¿ç¨ï¼ææ被系ç»ææ»ã
å两ç§æ åµåæä¸ä¸ï¼
ä¸ãæ¶å°å¹¿æçæ¶åï¼åºç¨æ£å¨è¿è¡ï¼
æ¤æ¶å¦æ没æå¨Manifestä¸è®¾ç½®äºç¬ç«è¿ç¨ï¼å onReceive() å°±ç´æ¥å¨ä¸»è¿ç¨ä¸»çº¿ç¨æ§è¡ï¼è¿éå¾ææ¾ä¸è½æ§è¡èæ¶æä½ã
äºãæ¶å°å¹¿æçæ¶åï¼åºç¨æ²¡æå¯å¨ï¼
è¿æ¶åç³»ç»ä¼å¯å¨ä¸ä¸ªè¿ç¨å»æ§è¡ onReceive() ï¼ï¼å¦æManifestä¸æ²¡æ设置è¿ç¨åï¼åè¿ç¨å为å åï¼ï¼(æä¸å¥ï¼ææè¿ç¨é½ä¼å建ä¸ä¸ªApplicationå®ä¾)ï¼å½onReceiveæ§è¡å®æ¯ä¹åï¼æ¤è¿ç¨å°±åæä½ä¼å 级äºï¼éæ¶æå¯è½è¢«ç³»ç»ææ»ï¼å¦æä½ å¨onReceiveéé¢å¯å¨äºçº¿ç¨æ§è¡èæ¶ä»»å¡ï¼é£å¾æå¯è½å线ç¨æ²¡æ§è¡å®æ¯ï¼è¿ç¨å°±è¢«ææ»äºï¼è¿ç¨æ²¡äºï¼çº¿ç¨èªç¶å°±æäºã
é£ä¹ç¡®å®è¦æ§è¡èæ¶æä½å¢ï¼æä¹åï¼
æ¹æ³ä¸ï¼goAsync()
æ¹æ³äºï¼schedule a JobService from the receiver using the JobScheduler
ä¸ç§å®ç°æ¹æ³
1ã继æ¿ç°æçç»ä»¶ï¼å¦TextViewçï¼è¿è¡æå±ã
2ã继æ¿ViewGroupï¼èªå®ä¹å¸å±ã
3ã继æ¿Viewï¼å¨onDraw()ä¸æç»ã
onMeasure()
onLayout()
onDraw()
å ¶å®
attachToRoot ä»åé¢ç解就æ¯æ¯å¦ç»å®å° root ä¸é¢å»äºã
1ã attachToRoot=true ï¼åè¿åçview为rootçåviewï¼
2ã attachToRoot=false ï¼åè¿åçviewæ¯ä¸ªåç¬çviewï¼ä¼ å ¥çrootåªæ¯æä¾ä¸äºåæ°ç»view使ç¨èå·²ã
é£ä¹è¿éä¸ä¼ å ¥ attachToRoot å¢ï¼é£å°±çrootæ¯å¦ä¸ºç©ºäºï¼å¦æä¼ å ¥rootä¸ä¸ºç©ºï¼åé»è®¤ç»å®å°rootï¼ä½ä¸ºrootçåviewè¿åã
ä¹å°±æ¯æè°çFrameå¨ç»ãæéè¿æå®æ¯ä¸å¸§çå¾çåææ¾æ¶é´ï¼æåºçè¿è¡ææ¾èå½¢æå¨ç»ææã
å¯ä»¥éè¿æå ¥å¨ Interpolator æ§å¶å¨ç»çååé度ã
ä¹å°±æ¯æè°è¡¥é´å¨ç»ãæéè¿æå®Viewçåå§ç¶æãååæ¶é´ãæ¹å¼ï¼éè¿ä¸ç³»åçç®æ³å»è¿è¡å¾å½¢åæ¢ï¼ä»èå½¢æå¨ç»ææï¼ä¸»è¦æ AlphaAnimation ã TranslateAnimation ã ScaleAnimation ã RotateAnimation åç§ã
注æï¼åªæ¯å¨è§å¾å±å®ç°äºå¨ç»ææï¼å¹¶æ²¡æçæ£æ¹åViewçå±æ§ã
å±æ§å¨ç»ï¼éè¿ä¸æçæ¹åViewçå±æ§ï¼ä¸æçéç»èå½¢æå¨ç»ææãç¸æ¯äºè§å¾å¨ç»ï¼Viewçå±æ§æ¯çæ£æ¹åäºã
注æï¼Android 3.0(API )以ä¸ææ¯æã
æ常ç¨çç±»æ ObjectAnimator
P.S. æä¸æç½cancelåå¨çæä¹ã
å¦å¤ï¼ DialogFragment æ¯æ²¡æcancelçã
ping
å å大è´å为ä¸ä¸ªåºï¼æ åºãå åºãæ¹æ³åºã
æ åº
å åº
æ¹æ³åº
JAVAä¸å 许æå¨éæ¾å åï¼åªè½éè¿åå¾åæ¶ç¨åºä¸å®æ对é£äºä¸å被å¼ç¨ç对象è¿è¡åæ¶ã
é£ä¹æä¹å¤æåªäºå¯¹è±¡éè¦åæ¶ï¼
1ãå¼ç¨è®¡æ°æ³
å°±æ¯ç»å¯¹è±¡æ·»å ä¸ä¸ªå¼ç¨è®¡æ°å¨ï¼å¼ç¨å¯¹è±¡æ¶+1ï¼å¼ç¨å¤±ææ¶-1ãä½æ¯è¿ç§æ¹æ³è§£å³ä¸äºå¯¹è±¡ç¸äºå¼ç¨çæ åµã
2ãå¯è¾¾æ§åææ³
éè¿ä¸ç³»åâGCRootsâ对象ä½ä¸ºèµ·ç¹è¿è¡æç´¢ï¼å½GCRootsåä¸ä¸ªå¯¹è±¡ä¹é´æ²¡æå¯è¾¾è·¯å¾ï¼å认为æ¤å¯¹è±¡ä¸å¯ç¨ï¼ä½æ¯ä¸å¯ç¨ä¸ä¸å®ä¼æ为å¯åæ¶å¯¹è±¡ã
ç¼åAIDLæ件ï¼å®ä¹æ¥å£ã
ç¼è¯çæJAVAæ件ã
å®ä¹è¿ç¨çº§Serviceï¼onBindä¸è¿åInterface.Stub()ã
onServiceConnectedä¸Interface aidl = Interface.Stub.asInterface(service);
æ已修å¤çclassæ件æå ædexæ件ï¼ç½ç»ä¼ è¾å°ç¨æ·ææºä¸ï¼å©ç¨ç±»å è½½å¨æè¿äºç±»å è½½å°ç±»éåçåé¢å³å¯ã
ãæªå®å¾ ç»ã
å¦æå ¬å¸å½ç¨æï¼ä¸ç®¡æ¯ä¸å¹´è¿æ¯äºå¹´ï¼é¦å æé½ä¼å æå ¬å¸çä»»å¡å好ï¼ç¶åä¸ææ·±å ¥ç 究Androidçç¸å ³ææ¯ï¼ç¹å«æ¯Androidæºç ï¼äºè§£Androidåºå±åçï¼ä»¥ä¾¿æ´å¥½çä¼åæ§è½ï¼é¿å ä¸äºä¸å¿ è¦çå¥è©é®é¢ï¼è¿æå°±æ¯ç 究ä¸äºæ°çæ¡æ¶çåçï¼å¦ä¹ å«äººçæç»´ãæåå°±æ¯å¦ä¹ å¨è¾¹è¯è¨ï¼æ¯å¦åå°ï¼å端ççã
请假程序问题
这种功能简单的数据库存储就能实现啦,不必要用工作流那么麻烦.
又不是做多大个东西.
建个数据库,建表,比如员工表,请假表.
建好请假页面,只要想请假的人通过自己的账号登陆到请假页面根据页面要求填好内容:比如请假人,请假日期,请假事由等再提交到数据库存储,老板通过网上查询再返回批示,同意或者不同意.
然后员工通过查询到该请假条批示结果就行了.