- 博客(151)
- 资源 (3)
- 收藏
- 关注
原创 MyBatis(七) 插件开发
MyBatis允许在已映射语句执行过程中的某一点进行拦截调用,可以在这些被拦截的方法执行前后加上某些逻辑,也可以在执行这些被拦截的方法时执行自由的逻辑而不再执行被拦截的方法,我们前面定义的mapper方法最终是由excutor来执行,因此,我们可以拦截执行器,我们可以使用插件来拦截的接口(org.apacha.ibatis.excutor)有如下几个: - Excu...
2019-03-04 09:05:16
383
原创 MyBatis(六) MyBatis源码环境搭建
本节示例MyBatis源码开发环境的搭建,以便后面有时间更深入学习和了解MyBatis,这里我fork官方的仓库到我的仓库去处理。 导入IDEA前先看看它的根pom.xml文件: 因为本地还没有这个项目安装,所以,也需要clone下来这个安装到本地: 然后执行mvn install命令...
2019-03-03 17:15:18
1776
原创 MyBatis(五) MyBatis的缓存
使用缓存,可以让前端请求更快地获取数据,且能避免频繁的数据库交互,通常听说的redis、memcached就是,那么,MyBatis同样也提供了查询缓存的特性给我们使用。 MyBatis有两个级别的缓存: 一级缓存 也叫本地缓存,默认会启用而且不能控制,下面测试一下:package cn.linjk.mybatistest.mapper...
2019-03-01 17:52:52
500
原创 MyBatis(四) MyBatis的枚举处理器
有些数据表可能会有状态status这个字段,可能有多个值,如:0-正常、1-历史、-1-删除,我们可以在查询出来手动校验状态值是否符合要求,但是,有更多值得情况就相对麻烦了点,这时可以考虑使用MyBatis提供的枚举处理器来实现。 1. 在t_user表新增一个status字段: 2. 新增一个状态的枚举类: ...
2019-03-01 15:34:57
568
原创 MyBatis(三)代码生成器
在文章《MyBatis(二) XML与注解方式基础用法(以RBAC权限管理为例)》中,我们在配置XML文件的数据列和实体属性映射时,是自己一个个写的,这样在数据表字段多的时候很容易出错,因此,需要“偷懒”,MyBatis开发团队也提供了一个代码生成器---generator,它通过各种配置可以生成不同类型的代码,下面来了解一下。 1. 在src\main\res...
2019-02-21 11:53:23
402
原创 MyBatis(二) XML与注解方式基础用法(以RBAC权限管理为例)
在文章《MyBatis(一) 基础入门》介绍了MyBatis的最原始使用方式,有机会从头开始了解和使用一个框架的好处是可以对它可以了解更多,现在,来了解它的XML方式的配置。 为了有一个比较好的例子,这里使用RBAC权限管理模型,可以了解到单表、多表的CRUD。RBAC(Role-Based Access Control), 基于角色的访问控制,就是用户通过角色与权限...
2019-02-20 11:34:59
667
原创 (一)Electron开发准备
在Electron官网有这么一句话:如果你可以建一个网站,你就可以建一个桌面应用程序。这是Electron的强大的地方,之前没了解过,最近试用了一下,感觉还阔以,况且微软的编辑器VS Code都是用它来写的,学它不会错,就开始入门吧,哈哈~~ Electron是由Github开发,用HTML、CSS和JavaScript来构建跨平台桌面应用程序的一个开源库,它基于Ch...
2019-01-15 11:51:37
1221
原创 Windows平台编译MySQL5.7源码
先备条件: 1. Visual Studio,这里使用2015版本 2. MySQL5.7源码,这里使用mysql5.7.24版本 3. cmake编译工具 这是GUI图形工具,也可在安装时加入系统环境变量PATH使得可以使用命令行来进行编译。...
2018-12-20 12:54:04
4049
1
原创 Spring boot 打包成的jar包配置成windows服务
spring boot开发的项目,如果部署在windows系统下,多个微服务的情况下,打开多个命令行窗口,实在不方便,有种方法可以配置为windows的服务。WinSW就是一个开源的制作windows服务的小工具,我们可以借助它实现。 下载: 新建一个简单的spring boot项目,如下例子: ...
2018-10-09 14:44:00
3090
4
原创 eureka微服务https客户端注册错误: java.io.IOException: Invalid keystore format
项目中出现如题错误,主要是由于生成https证书的jdk版本不一致导致客户端不能以https方式注册到服务端,修改版本一致即可。 系统环境变量的版本如下: 因此,ide的版本也要与其一直: 之前就是选了1.8.0_25导致提示不合法的keystore。...
2018-10-06 17:27:56
1811
转载 mac修改open files数目
原文: https://blog.youkuaiyun.com/u011466175/article/details/48002179 上午在进行压力测试的时候,因为开启线程爬虫太多,所以在tcp连接的时候太多了,故一直出现tcp : too many open files的情况,查了一下,原来是系统开启文件数有限制。 树霉派上面的同事已经设置好了,然后程序是在自己...
2018-10-06 11:13:41
4615
1
原创 Spring源码学习---如何处理HTTP请求
在用Spring Boot开发时,要让一个类具有处理HTTP请求的能力,很多人都知道,加两个注解: @RestController @RequestMapping 那么,为什么加了这两个注解,类就可以拥有这个能力了呢,Spring框架背后做了什么事情?这就涉及到两个知识点:注解和反射。我们在创建自定义注解的时候,通常都会使用AO...
2018-09-13 13:33:05
564
原创 Google Protobuf使用
Protobuf,全称Protocol Buffers,由Google公司开发出来且其内部广泛使用,对比其它的编解码框架,有如下几个优点: 1. 跨语言支持,如Java、C++、Python等 2. 编码后消息更小,因此,更有利于网络传输和本地存储,当然,性能也很强大 3. 不同版本协议的数据结构前向兼容 Pro...
2018-09-12 11:14:42
7557
原创 基于Spring Cloud搭建微服务--简单实例
1. 环境说明 - JDK: Java1.7以上,这里使用Java1.8 - Spring Framework4.2.7以上 - Maven构建工具 - Spring Boot使用1.3.8版本 - Spring Cloud使用Brixton.SR7版本...
2018-09-01 09:41:08
3365
2
原创 Spring中对开源调度作业框架Quartz的使用
Quartz是由Java语言编写的开源作业调度框架,它可以用来创建简单或为运行十个、百个甚至是好几万个Jobs这样复杂的程序,包含调度器监听、作业和触发器监听,允许通过时间间隔来调度作业。 有几个概念需要清楚一下: - Job 任务,表示一个要执行具体内容的工作(任务内容) - JobDetail ...
2018-08-27 08:46:28
504
原创 Kafka(三) 简单API编程
通过前面两篇,了解了Kafka的基本概念的安装配置,现在在Java中调用它的API来初步实现一些功能。 先备条件: - ZooKeeper已启动 - Kafka实例代理已启动,为了方便查看,也启动Kafka Manager网站,如下,有一个名为jim_test,id为0的broker,里面有一个默认的主题: ...
2018-08-12 11:37:17
1351
原创 Kafka(二) 源码环境搭建配置
在Kafka(一)中安装启动了Kafka环境,现在来配置下源码编译环境,方便后续在使用过程中可能查看源码,从而对Kafka了解更深入。 1. Scala安装 2. Gradle安装 3. 下载Kafk...
2018-08-12 10:13:03
440
原创 Kafka(一) 安装与配置
Kafka最初由LinkedIn公司开发,后来成为Apache项目的一部分,是一个可水平扩展、高吞吐量、分布式的发布-订阅消息系统,一个基于ZooKeeper协调管理的分布式流式处理平台,其核心模块使用Scala语言开发,支持多种语言的客户端。其基本架构如下图所示: 基本概念 主题 一组消息抽象归纳为一个主题,即一个主题就是对...
2018-08-12 00:09:55
1065
原创 Vue项目从搭建到部署
1. 安装Node.js 2. 安装淘宝镜像CNPM 使用npm下载依赖包是从国外服务器下载,可能会比较慢,可以安装淘宝的cnpm工具,它保持了与官方镜像包的同步,使用cnpm安装依赖包速度会快很多。 npm install -g cnpm --registry=https://registry.npm.taobao.or...
2018-07-29 15:45:48
6639
1
原创 自己搭建DNS服务器--基于Centos
DNS简介DNS(Domain Name System, 域名系统),一种因特网通信协议的名称,它基于伯克利大学开发出的一套阶层式管理主机名对应IP的软件BIND,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。 这个阶层式管理软件采用目录树结构,类似Linux文件系统,顶层是root根服务器,然后第二次是.com、.edu、.gov、.mil、.org、.ne...
2018-07-11 00:01:15
29731
原创 CUDA入门(二)The First Programme
前面搭建好了CUDA的开发环境,现在来开始第一个程序看看,新建项目: // 新建好后项目目录结构如下,一开始就一个文件"kernel.cu",cu后缀说明项目将使用英伟达编译器而不是Visual C编译器,它是混合了主机代码和设备代码的源文件,主机代码是在CPU运行(串行),通过kernel调用,把数据传给GPU设备设备来执行(并行),然后再把结果拷贝回主机,这个流程可以在ad...
2018-07-07 00:49:03
408
原创 使用WireMock"伪造"服务接口
在前后端分离的开发模式下,后端的接口可能还没开发完成,但是前端开发又要用到,这时可以使用wiremock来"伪造"服务接口提供,这个"伪造"的接口和真正的接口API是一致的,只是真假数据之分,下面介绍下使用过程: 1. 下载WireMock 然后启动( java -jar wiremock-standalone-2.18.0.jar --port 32...
2018-06-24 11:38:59
2267
原创 MySQL通过UDF实现扩展功能(Linux环境和Windows环境)
最近项目数据库选型,对于自治事务这个特性,在MySQL和PostGreSQL二者摇摆了很多时间,后来,发现,通过UDF可以巧妙实现,下面来记录下过程: 环境说明: - 服务器环境: CentOS7.1 - 数据库环境: MYSQL5.7.19 //...
2018-06-12 17:59:05
6459
8
原创 Linux配置定时执行指定脚本
在Linux下,有时需要定时执行一些任务,如定时检测系统资源信息、定时备份数据库等操作,可以借助crontab命令,其基本命令格式如下: * * * * * {命令} 第一个*表示每xx(1-59)分钟,每分钟用*或*/1表示 第二个*表示每xx(0-23)小时 第三个*表示日期,1-31 第四个*表示月份,1-12 第五个*表示星期x(0-6, 0为星...
2018-06-08 15:10:04
16928
原创 CentOS7搭建SVN服务器
1. 下载 sudo yum install -y subversion 2. 新建仓库目录 3. 配置 进入svn_repo_iHouse目录,编辑配置文件 vim conf/passwd vim conf/authz "[/]"表示用户**对当前仓库"svn_repo_iHouse"目录下所有子文件夹及文件拥有读写权限。...
2018-05-22 15:46:55
268
原创 Hello World历程
Hello World,很简单的一句话,很多程序员入门新语言的第一行代码,能输出这句话在屏幕,说明整个开发环境都已经搭建好了,可以进一步开发了,如果连这句话都无法输出,后面做再多算法设计也没用,因为,你的软件无法在客户机使用,那么,计算机在输出Hello World的背后做了什么呢,下面记录一下。 且看最简单的C++代码: 在Linux下使用G++编译器编译运用如下: ...
2018-05-14 14:18:03
347
原创 Machine Learning 之 k-近邻算法
k-近邻算法(kNN)采用测量不同特征值之间的距离对数据集进行分类,数据范围主要为数值型和标称型,基本工作原理如下:存在一个样本数据集合,也称训练样本集,并且样本集中每个数据都存在标签,即我们知道样本集中每一数据与所属分类的对应关系(属于监督学习,因为我们知道了样本数据对应的结果)。一个算法通过对这些训练样本集训练基本稳定后,就可以使用它了,我们输入没有标签的新数据后,将新数据的每个特征与样本
2018-05-12 11:56:03
272
原创 NodeBB论坛搭建
NodeBB是一个开源的Node.js论坛,下面记录下搭建过程(基于Centos7 64位操作系统): 1. 关闭SELinux ( vim /etc/sysconfig/selinux ) 2. 安装MongoDB 2.1 新建文件touch /etc/yum.repos.d/mongodb-org-3.2.repo,文件内容如下...
2018-04-10 10:17:30
7050
2
原创 MySQL5.7.19源码编译安装
环境说明:1. 系统环境: CentOS7-64位 内存:4GB 硬盘:20GB (VMWARE虚拟机)2. MySQL版本: 5.7.19--------------1. 下载MySQL 下载MySQL5.7.19源码包 下载后上传至Linux服务器,这里把源码包放到/usr/local目录下。2. 环境准备2.1 安装编译需要用到的依赖软件 如果数据库...
2018-02-23 21:41:33
2646
原创 psutil安装错误"Python.h: No such file or directory"解决
下载psutil源码包:wget https://pypi.python.org/packages/source/p/psutil/psutil-2.0.0.tar.gz然后解压安装:sudo python setup.py install,出现如下错误:需要安装依赖包:sudo yum install python-devel.x86_64。重新安装即可。
2018-01-09 09:48:48
6827
转载 自动生成Sqlalchemy的models文件
原文链接:《自动生成Sqlalchemy的models文件》自动生成Sqlalchemy的models文件的包早用过了,今天维护一个较老的工程,有个字段类型做了改动,调了得10几分钟才搞定。记录下自动生成models文件的python包sqlacodegen sqlacodegen已经加入pypi,只需要使用pip install sqlacodegen就可以安装了 安装后即可
2018-01-06 14:10:42
1348
原创 深度学习--Tensorflow初体验
为了方便,这里使用Docker方式安装Tensorflow。在学习阶段,更推荐使用才云科技的镜像: docker pull cargo.caicloud.io/tensorflow/tensorflow:0.12.0下载镜像完成后,启动:docker run -it -d -p 8888:8888 -p 6006:6006 cargo.caicloud.io/tensorflo
2017-12-01 10:03:37
1867
转载 什么是跨域?怎么解决跨域问题?
原文地址: http://blog.youkuaiyun.com/lambert310/article/details/51683775什么是跨域?跨域,指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对javascript施加的安全限制。所谓同源是指,域名,协议,端口均相同,不明白没关系,举个栗子:http://www.123.com
2017-11-15 14:05:53
483
转载 分布式系统事务一致性解决方案
原文地址: 《分布式系统事务一致性解决方案》开篇在OLTP系统领域,我们在很多业务场景下都会面临事务一致性方面的需求,例如最经典的Bob给Smith转账的案例。传统的企业开发,系统往往是以单体应用形式存在的,也没有横跨多个数据库。我们通常只需借助开发平台中特有数据访问技术和框架(例如Spring、JDBC、ADO.NET),结合关系型数据库自带的事务管理机制来实现事
2017-11-15 13:44:08
394
原创 Kubernetes(一)
Kubernetes(https://github.com/kubernetes/kubernetes)是Google公司团队于2014年基于内部集群管理系统Borg开源发起并维护的开源容器集群管理系统,为容器化的应用提供了资源调度、部署运行、服务发现、扩容以及缩容等一整套功能,它基于Go语言实现,支持如Docker等容器技术,使用它,用户可以轻松搭建和管理一个私有容器云。 ...
2017-10-26 09:55:55
2393
原创 实时监控MySQL信息的脚本
下面脚本可以实时监控SQL语句的执行频率:mysqladmin -Pxxxx -uxxxx -pxxxx -hxxxx -r -i 1 ext |\awk -F"|" \"BEGIN{ count=0; }"\'{ if($2 ~ /Variable_name/ && ++count == 1){\ print "----------|---------|--- MySQL Co
2017-10-18 15:51:33
1339
转载 MySQL 5.6关闭DNS查询
转自: http://blog.chinaunix.net/uid-301743-id-5367964.html MySQL服务器的日志记录中看到如下的警告:2015-11-09 08:37:02 1489 [Warning] IP address '104.223.72.XXX' has been resolved to the host name '104
2017-10-18 08:53:07
1466
转载 MySQL数据库结构同步--基于工具Navicat
Navicat是一套快速、可靠并性价比较高的数据库管理工具,它可以简化数据库和系统的管理,支持多种数据库,如:MySQL、SQL Server、Oracle、PostgreSQL等。 这里主要测试Navicat for MySQL的使用,其他数据库类似。 一般项目中都会有测试数据库和生产数据库,测试数据库在平时开发过程中会经常变化,那么,如何同步测试与生产数据库
2017-10-17 11:16:03
1167
原创 CentOS7静态IP设置
1. 修改etho的网络配置文件,目前IP地址如下: 修改eth0的网络配置文件(以下操作是切换到root用户): vim /etc/sysconfig/network-scripts/ifcfg-eth0 原来配置为dhcp方式,如下: 先修改为手动配置ip方式,如下: 2. 重启网络服务,再次查看ip地址,已更新:
2017-10-16 14:14:03
325
原创 sed与gawk
SEDsed编辑器被称作流编辑器(stream editor),与vim等交互式编辑器不同,它会在编辑器处理数据之前基于预先提供的一组规则来编辑数据流,每次从输入中读取一行,用提供的编辑器命令匹配数据、按命令中指定的方式修改流中的数据,然后将生成的数据输出到STDOUT,由于命令都是一行一行顺序处理的,sed编辑器必须一次就完成对文本的修改。格式: sed options script f
2017-10-15 18:33:35
763
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人