- 博客(44)
- 资源 (2)
- 收藏
- 关注
转载 项目中使用的设计模式之状态模式
工作中可能会遇到很多重复的工作,重复的工作可能导致大量的工作量,可能会使重复的代码过多,也可能会导致方法的耦合性太大,动一发而牵动全身,不防考虑一些设计模式来简化工作。所在项目:新工作流平台功能点:切换推送代办的方式(Kafka推送代办或者rabbitMQ推送代办)模式讲解:状态模式把对象的行为包装在不同的状态对象里,每一个状态对象都属于一个抽象状态类的一个子类。状态模式的意图是让一个对象在其内部...
2018-03-22 09:15:09
677
转载 项目中使用的设计模式之策略模式
功能点:数据校验接口该接口用于校验产品中心的数据的正确性,根据数据类型校验,如果是数字类型的数据走数字类型的校验方法,如果是checkbox类型的数据走checkbox类型的数据校验方法。模式讲解:策略模式为了避免重复多重使用if-else语句,将每一个if块作为一种策略对象。UML键下图:策略模式包含四个角色:(1) Strategy工厂,用于生产具体的Strategypublic clas...
2018-03-22 09:14:34
380
转载 利用注解式切面单独打印接口调用日志
背景:我们可能希望对项目中的接口性能进行监控,例如:接口调用时间,开始时间,结束时间,传入的参数等等,通常的做法是在接口代码开始处记录startTime,结尾处记录endTime,然后计算startTime和endTime之差,这种做法无法把这部分日志单独拆分成文件,而且冗余代码会比较多。可以考虑使用spring切面和环绕通知来打印这部分日志,并使用log4j2将这部分日志单独拆分出来。ps:拆分...
2018-03-22 09:13:09
1216
转载 利用OTTER实现准实时ETL
一:背景 目前公司已有的IT系统中,各系统中的数据往往都各自存储,各自定义。每个系统的数据同公司内部的其他数据进行连接互动时,难度很大,无形中加大了跨系统数据合作的沟通成本。为解决这一问题,需要引入一个基础中间件,可以灵活提取源数据库增量信息,按业务需求灵活整合目标表信息,从而使业务系统在本地库实时、准确地访问到其需要的全面业务数据。二:简介 OTTER是阿里巴巴公司为了解决杭州/美国机...
2018-03-22 09:11:00
1450
转载 第十三节:Vue Devtools——vue开发调试神器
工欲善其事,必先利其器,vue2.0进阶系列的知识更接近我们的实际开发所需,在开发过程中,有个好的调试工具是事半功倍的,Vue Devtools就是我们选择的调试工具,它是一款chrome浏览器的插件。所以,我们先去chrome商店找到它并安装。安装用chrome浏览器访问以下地址,就可以在chrome商店找到我们的Vue Devtools插件。地址:[url=]https://chrome.go...
2018-03-22 09:06:59
1361
转载 第十二节:用学过的知识做一个小demo
学过了前面11个章节的知识,可以说你已经对vue2.0的基础知识有了一定程度的掌握,虽然在真正开发过程中,一些知识的使用会稍有不同,但是别慌,我们会把那部分内容在进阶系列,比如:单文件组件,过渡效果,状态管理vuex,路由vue-router,网络请求vue-resource等等。那是不是就意味着我们现在还不能用基础知识做开发,当然不是,加强动手能力是进步的最好方式,我们今天就来用学过的基础知识,...
2018-03-22 09:06:51
403
转载 第十一节:动态绑定class和style
在第六节的章节中,我们学会了如何给视图上的html标签绑定属性。比如,给 <a> 标签绑定href属性,简单回忆一下:<!-- v-bind指令 --><a v-bind:href="link"></a><!-- v-bind的缩写 --><a :href="link"></a&g
2018-03-22 09:06:37
1970
转载 第十节:实现vue组件之间的通信
这一节我们还是来继续介绍组件:组件之间如何通信。第九节我们在介绍组件知识的时候,提到过组件可以接受参数props,这其实就是组件之间的一种通信方式:父组件→子组件传递数据。父组件→子组件那我们还是不厌其烦地再演示一遍:父组件→子组件传递数据。组件实例的作用域都是孤立的,也就是子组件在模板template不能引用父组件的数据,那么,当子组件有需要使用父组件的时候,我们该怎么办呢?这里,我们使用的是组...
2018-03-21 09:32:45
658
转载 第九节:掌握vue的另一个核心:组件
我们在之前的章节,已经详细地介绍了vue的数据驱动,从这一节开始,我们就来学习另一个核心:组件。组件是我们人为地把页面合理地拆分成一个个区块,让这些区块更方便我们重复使用,有了组件,我们可以更高效合理地开发和维护我们的项目。竟然说得组件那么好用,那我们就来好好学学怎么使用它。规划组件假设我们页面上有这样的一个布局:上图是我们模仿微信公众号的“历史消息”的界面,我们看到的是一个文章的目录列表。这种情...
2018-03-21 09:32:15
426
转载 第八节:实战前必须掌握的10个指令(下)
上一节我们学了5个重要的指令: v-text 、 v-html 、 v-show 、 v-if 、 v-else 这一节,我们继续学习剩下的5个指令。话不多说,撸起来!6. v-for 指令有时候,我们的data中的存放的数据不是个简单的数字或者字符串,而是数组Array类型,这个时候,我们要把数组的元素展示在视图上,就需要用到vue提供的 v-for 指令,来实现列表的渲染。我们看看它的用法:...
2018-03-21 09:30:56
377
转载 第七节:实战前必须掌握的10个指令(上)
这一节我们来学习并掌握在实战用一定会用到的10个指令,没错,是一定会用到,通过这些指令,可以让我们很方便的完成某些操作。掌握了这几个指令,我们距离实战就又近了一步。1. v-text 指令v-text 指令用于更新标签包含的文本,它的作用跟双大括号的效果一样。我们看看它的用法:<div id="app"> <p v-text="msg"></p></...
2018-03-21 09:30:19
359
转载 第六节:教你如何在html中绑定数据
上两节我们学习了vue的实例知识:第4节:vue实例的4个常用选项第5节:vue 实例的生命周期提醒一下,这两节的内容在后面实战的时候很重要,如果落下的同学可以回去翻看学习,不必害怕难学,这里没有难学的教程。这一节,我们学习如何在html上绑定我们实例中的数据。Mustache 语法什么叫Mustache语法,别被这高大上的叫法吓到了,其实就是双大括号{{ }}的写法,在之前的章节我们就演示过在视...
2018-03-21 09:29:39
12270
转载 第五节:轻松掌握 vue 实例的生命周期
上两节我们都是讲vue的实例,简单创建和定义实例的4个常用选项,没看过的伙伴可以先去看上两节,按顺序学习比较容易掌握。这一节我们学习vue实例的生命周期,没错,实例也跟动物一样,有自己的“生命”,实例也会经历出生至死亡的各个阶段。Vue把整个生命周期划分为创建、挂载、更新、销毁等阶段,每个阶段都会给一些“钩子”让我们来做一些我们想实现的动作。学习实例的生命周期,能帮助我们理解vue实例的运作机制,...
2018-03-21 09:28:57
658
转载 第四节:定义一个vue实例的4个常用选项
上一节,我们讲过如何创建一个Vue实例,仅需4步走:我们知道,定义一个Vue实例的参数有el(指定挂载的DOM元素),data(实例的数据),上一节讲过除了这两个之外,还可以定义其他参数。今天,我们就来学习在开发中,我们要怎么定义一个vue实例才能满足我们的需要?下面,我们先用上一节的知识,先创建一个Vue实例:<div id="app"></div> <scrip...
2018-03-21 09:27:46
2311
转载 第三节:创建一个Vue实例,超简单
我们之前说过,Vue是数据驱动视图的,只要model(模型层)的数据改变了,Vue就会帮我们改变视图上显示的内容,不用我们自己去动手写代码更新。那么,它是怎么做到的,我们的代码要怎么写才能做到这一点。答案是:Vue实例。先确保你的项目安装好Vue.js,安装教程:(去看第二节、简易安装 和 快速入门Vue.js)安装好之后,我们来看看怎么创建和使用Vue实例,我们把它分成 4 步走。第1步 创建...
2018-03-21 09:26:55
4347
1
转载 第二节、简易安装 和 快速入门Vue.js
上一节我们介绍了Vue.js框架,这一节,我们可以来试着动手写点小代码了。1 简易安装要使用Vue.js,我们得先把它安装到我们的项目中,说明了简易安装,我们讲解的肯定是最简单的方法,先不管那些高大上的费时间的安装方法,直接引入一个js文件,先把代码敲代码再说。<head> <meta charset="UTF-8"> <title>简易...
2018-03-21 09:25:57
807
转载 第一节、Vue.js框架是什么,为什么选择它?
这个系列我们一起学习的是Vue.js基础知识。你没看错,是基础知识。所以,哪怕你入行不久,相信你在的大白话风格下,也能学会。但还是希望你有开发过html,css,javascript的项目经验,如果你连一点项目经验都没有,亦或者你早已掌握Vue.js的知识,那么这个系列不适合你当前的学习阶段。1 学习目标通过这一节,你会学会:1.目前前端技术使用的趋势2.什么是MVVM3.Vue.js的优点4....
2018-03-21 09:24:55
15323
1
转载 Mock Server利器 - Moco
转载请标明出处:http://blog.youkuaiyun.com/shensky711/article/details/52770686 本文出自: 【HansChen的博客】Moco介绍Moco独立运行所需环境如何运行Moco启动http服务启动https服务Moco HTTPs API配置如何在配置文件添加注释约定请求Body约定接口的uri约定请求参数
2017-01-06 11:03:24
914
原创 Java单元测试
单元测试是编写测试代码,用来检测特定的、明确的、细颗粒的功能。单元测试并不一定保证程序功能是正确的,更不保证整体业务是准备的。单元测试不仅仅用来保证当前代码的正确性,更重要的是用来保证代码修复、改进或重构之后的正确性。一般来说,单元测试任务包括接口功能测试:用来保证接口功能的正确性。局部数据结构测试(不常用):用来保证接口中的数据结构是正确的比如变量有无初始值变量是
2017-01-06 10:59:39
573
原创 mock server 挡板服务搭建
官网:https://github.com/dreamhead/moco启动moco服务java -jar moco-runner--standalone.jar start -p 12306 -c foo.jsonjava -jar moco-runner-0.11.0-standalone.jar start -p 12306 -c foo.json初始状态
2017-01-04 10:05:15
10799
转载 Linux jar包 后台运行
Linux 运行jar包命令如下:方式一:java -jar shareniu.jar特点:当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出那如何让窗口不锁定?方式二java -jar shareniu.jar &&代表在后台运行。特定:当前ssh窗口不被锁定,但是当窗口
2017-01-04 10:02:39
296
原创 springmvc GET POST 接受参数方式
通过@PathVariabl注解获取路径中传递参数 JAVA 1 @RequestMapping(value = "/{id}/{str}") 2 public ModelAndView helloWorld(@PathVariable String id, 3 @PathVariable String str) { 4
2016-11-30 16:59:46
15786
原创 第一个存储过程,写了很长时间,记录一下
BEGINDECLARE done INT DEFAULT 0;DECLARE cur_id VARCHAR(34);DECLARE cur_project_num VARCHAR(20);DECLARE cur_project_type_id VARCHAR(34);DECLARE cur_project_type_name VARCHAR(34);D
2016-11-29 15:57:42
702
转载 openfire上——开发环境搭建
Openfire 采用Java开发,开源的实时协作(RTC)服务器基于XMPP(Jabber)协议 XMPP的前身是Jabber。 您可以使用它轻易的构建高效率的即时通信服务器。Openfire安装和使用都非常简单,并利用Web进行管理。单台服务器可支持上万并发用户。由于是采用开放的XMPP协议,您可以使用各种支持XMPP协议的IM客户端软件登陆服务。更多底层参考http://b
2016-11-29 15:54:41
431
转载 Openfire开发配置,Openfire源代码配置,OpenFire二次开发配置(eclipse)
首先去官网把openfire的源码下下来: http://www.igniterealtime.org/downloads/source.jsp1.下载后放到你的workspace当中,我的woekspace如C:\Users\liang\openfire解压,2.在openfire_src文件中build中有个eclipse文件夹,一个settings文件夹和cl
2016-11-29 15:52:40
347
转载 本地缓存工具类
package com.gnet.common;import java.util.Map;import java.util.concurrent.ConcurrentHashMap;import org.apache.log4j.Logger;/** * 本地缓存处理 * */public class LocalCache {private st
2016-08-30 09:56:02
469
转载 redisUtil
package com.gnet.common;import java.util.ArrayList;import java.util.List;import java.util.Map;import java.util.ResourceBundle;import java.util.Set;import com.gnet.common.MailUtil.m
2016-08-30 09:52:46
763
转载 codis测试
Codis 3.x 由以下组件组成:Codis Server:基于 redis-2.8.21分支开发。增加了额外的数据结构,以支持 slot有关的操作以及数据迁移指令。具体的修改可以参考文档 redis的修改。Codis Proxy:客户端连接的 Redis代理服务, 实现了Redis 协议。除部分命令不支持以外(不支持的命令列表),表现的和原生的 Redis 没有
2016-08-30 09:49:36
1040
原创 查查
public class UnisDao {public void insertUser(UnisVo unisVo){Statement st = null;Connection conn = null;try {//Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); //加载驱动//co
2013-12-02 13:54:45
463
原创 QT 入门!!!
1 HELLO QT我们先从一个非常简单的QT程序开始,#include #includeint main(int argc,int *argv[]){ QApplication app(argc,argv); //创建了一个QApplication对象,用来管理整个应用程序所用到的资源 QLabel *label = new QLabel(“Hello QT!
2013-08-09 16:31:47
454
原创 linux下基于tcp的简单的接收与发送程序,开发板与本机接收与发送信息
服务器#include #include #include #include #include #include #include #include #include #include #define BACKLOG 2//#include //#include void process_conn_server(int s, char *ip
2013-08-02 14:28:57
830
原创 简单的xml常用函数
1. fopen作用:用来打开一个文件,调用形式为:文件指针名=fopen(文件名,使用文件方式)“文件指针名“必须是被说明为FILE类型的指针变量“文件名“是被打开文件的文件名,是字符串常量或字符串数组“使用文件方式“是指文件的类型和操作要求 2. xmlReadMemory(dest_gb18030,sizeof(dest_gb18030),szDocName,
2013-08-01 09:31:16
4793
原创 socket常用函数整理
1.Memset(void *s,int c,size_t n);作用:将已开辟内存空间s的首n个字节的值设为值c。memset()函数常用于内存空间初始化。例:char str[100];Memset(str,0,100);2.socket(intaf,int type,int protocol)作用:用于根据指定的地址族,数据类型和协议来分配一个套接口的描述
2013-07-31 16:27:24
647
原创 vc++环境下的 udp 接收信息程序
#pragma comment( lib,"Ws2_32.lib")#include #include void main(){ WORD wVersionRequested; WSADATA wsaData; int err; wVersionRequested = MAKEWORD( 1, 1 ); err = WSAStartup( wVe
2013-07-31 13:38:58
1581
原创 linux下基于udp的简单的接收与发送程序,开发板与本机接收与发送信息
UDP接受与发送程序的源码! #include #include #include #include #include #include #include #include #include #include #include #include #include //设定插入点#incl
2013-07-31 13:37:36
754
原创 一个很好makefile实例!
TARGET = /export/bin/liveupdate_C2_debug //目标文件的当前目录CPPOBJS = $(filter-out irtest.o,$(patsubst %.cpp,%.o,$(wildcard *.cpp))) //将当前目录下的所有.cpp文件转换为.o文件CPPOBJS += ../../../../../ShineManagement_Msp
2013-07-25 18:01:07
485
转载 深入学习makefile,用makefile编译动态库
Lunix下生成动态库文件: 之前已经介绍了.o,.a,.so文件类型的含义,.so后缀的文件是动态库文件。 下面介绍在编译过程中链接到动态库文件的方法:一. 源码文件:so_test.h:void test_a();void test_b();void test_c();test_a.c:#include "so_test
2013-07-25 17:04:17
708
转载 Linux makefile 教程
什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软件编译,你就不能不自己写makefile了,会不会写makefile,从一
2013-07-25 10:57:30
431
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人