自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

宝哥的歌

菜鸟程序员陈发宝的日常学习与研究,欢迎指教!

  • 博客(109)

原创 vue-element-admin请求数据增加自定义协议封装

基于开发风格统一的考虑,所有前端包括移动端的接口调用都要用自定义协议,我们设计的自定义协议分为固定部分protocol和参数部分param。Vue-element-admin模板中的参数都是散装的,如果我们都要给他们构建一个符合要求的数据结构,那工作量是令人恐怖的。以login部分的数据结构为例。在/view/login中关于表单数据的定义是这样的:loginForm: { username: "chris", password: "123456"},调用逻辑是这样的:

2020-09-09 11:44:31 110

原创 Springboot项目通过logstash将日志分类写入Elasticsearch

需求:我们需要把线上日志收集起来进行分析。在开发阶段,更多的时候程序是运行在本地,所以使用FileBeats就有点繁琐。我们采用直接将日志通过tcp输出到logstash的方案。同时,我们的日志并没有统一的格式,按照日志分析的需求格式都不一样。比如我们需要监控http请求的日志,监控websocket对话的日志,监控搜索gu关键词的日志等等。这就需要我们需要根据不同的需求制定各自的格式,然后分开输出到ES数据库。一、安装ELK这里对此不作过多讲解。es我使用的是docker版本,logstash

2020-08-12 09:39:46 160

原创 SpringCloud Zuul网关实现路由和自动发现路由

我们做分布式系统,为了不暴露具体的服务,以及实现各种统一处理,常常使用网关来管理接口。SpringCloud分布式系统中常用zuul来实现网关功能。zuul最基本的功能,就是把所有的接口都收到自己这里,按照规则和负载均衡的配置分发。zuul实现路由最常用的方法是在属性文件properties或者 yml中进行配置。我们首先创建几个必要的服务:1. eureka注册中心按照正常方式创...

2020-03-14 16:53:48 344

原创 解决JHipster Register5.x不能正确解析uaa的api docs的问题

最近在家,无法出门,研究分布式系统的架构。主要使用JHipster构建,而其中最关键的就是注册中心。github上面已经更新到6.1.1的版本,二我们上次使用的版本是3.2.4,我决定研究5.x的版本,于是拉取来5.0.0的源码进行修改、构建、部署、测试。但是在测试过程中遇到一个问题,就是3.x和4.x版本的注册中心都能正确解析uaa的接口文档,但是5.x和6.x都不行,一直有以下提示401...

2020-02-19 12:34:53 195

原创 Java线程操作-模拟本地多线程抢红包

没有写过抢红包的处理程序,考虑到多线程是核心,所以练习先写一个本地使用多线程来抢红包的模拟程序。程序运行要达到的效果,是最终红包都被抢完,并对数据进行统计,统计结果和总库存要完全吻合。没有过多地解释,直接就一个测试类。package com.chris.java;import java.util.HashMap;import java.util.Map;/** * Creat...

2020-02-11 21:11:37 88

原创 CentOS7重装Java

刚安装好的CentOS7已经安装好开放版本的openjdk,不过在做开发的时候有些问题。上次测试jni就不行,不能编译C++文件。所以需要卸载掉原来的openjdk,重现安装一个完整的jdk。1. 查看已经安装的jdkrpm -qa|grep java或者yum list installed |grep java[root@chris-svr yum.repos.d]# ...

2019-12-12 00:24:20 185

原创 CentOS7修改yum源

以前一直使用Windows下面的虚拟机安装CentOS,也没有发现太多的问题。今天在真机上面安装了最新的CentOS7-1908,然后安装Docker就出现问题,貌似yum源全部都没有了,而且域名也不能解析。找了很多资料,参考https://www.jianshu.com/p/de645bafdabd解决了域名解析的问题。1. 修改/etc/resolv.conf文件vi /etc/...

2019-12-12 00:04:03 61

原创 Springboot整合Memcached

一、首先我们使用Centos架设memcached服务器,我们使用Docker来架设Memcached服务1. 拉取镜像docker pull memcached:1.5.162. 启动容器docker run --name memcached -p 11211:11211 -d memcached:1.5.16 memcached -m 128好了,使用docker架设m...

2019-11-28 18:22:40 86

原创 Springboot + Security + JWT + OAuth2 整合简单案例

参照上次 Spring Security + JWT 的简单应用一、建立一个Springboot项目,最终的项目结构如下二、添加pom依赖 <!-- OAuth2 --> <dependency> <groupId>org.springframework.security.oauth<...

2019-10-12 13:52:30 666 1

原创 Spring Security + JWT 的简单应用

参照上次的例子:Spring Security简单应用https://blog.csdn.net/xxkalychen/article/details/102498016这个例子的应用场景是在调用接口的时候发现不能通过验证就自动跳转到登录页面登录,但是登陆成功之后,身份验证信息只是倚靠session来验证。在分布式服务中,我们每一次调用接口都会做验证,这就需要我们在登录时要获取一个jwt,每次...

2019-10-11 16:20:46 153

原创 Spring Security简单应用

安全框架security完整名称为Spring Security,依赖Spring框架工作。其功能主要是身份认证和授权。关键词:Authentiction:认证Authorization:授权web服务的身份认证,一般在接口正式调用之前,所以应该在拦截器和过滤器中去实现。security已经内置了很多现成的过滤器,框架应用的主要操作是通过配置去调用这些过滤器。一、首先我们建立一...

2019-10-11 12:55:41 75

原创 JWT应用

以前我在开发App时,后端给我们的权限字符串是一个token,这个token很简单,疑似一个固定字符串经过base64编码,大约32个字符,并不长。每次我们向后端请求接口,都要带着这个字符串。可能是由于那时候没有做分布式吧,这个token只是用来做权限甄别,并不携带其他信息。最近两年我做java服务端,开始也是用这种方式。这种token在单例部署服务中是可以的,后端生成token,和用户绑定,...

2019-10-10 11:55:26 70

原创 扫码登录的简单实现-移动App端

程序结构如下:一、在app模块添加依赖 //动态权限 implementation 'com.tbruyelle.rxpermissions:rxpermissions:0.7.0@aar' //二维码扫描库 implementation 'com.google.zxing:core:3.2.1' implementation 'cn.bingo...

2019-10-08 12:40:33 554

原创 扫码登录的简单实现-Web端

先看看页面。出示二维码:扫码登录成功后自动切换。一、需要用到的库本实例使用vue,二维码生成使用jquery-qrcode.js二、index.html<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title&...

2019-10-08 12:13:18 373

原创 扫码登录的简单实现-服务器端

服务器端使用springboot框架。一、需要添加的pom依赖本实例没有什么特殊的依赖。 <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId&gt...

2019-10-08 11:58:01 210

原创 扫码登录的简单实现-思路分析

要实现手机扫码登录,需要服务端、web前端和手机移动端App三方合作,大致逻辑流程是这样的。1. web端向服务端发出请求getScanCode,获取一个用于生成二维码的信息字符串,这个信息字符串包含表示此次登录的识别码,可以设计为安全token;2. 服务端收到web端的请求,会生成一个识别码,返回给web端,同时将其加入数据库,这个数据库可以是sql,也可以是nosql,我在这里为了移...

2019-10-08 11:46:11 242

原创 Docker搭建jira服务器

一、破解程序1. 拉取源码git clone https://gitee.com/mmnn/atlassian-agent.git2.在pom所在位置打包mvn package3. target文件夹下会有两个jar包,选择atlassian-agent-jar-with-dependencies.jar,复制到别处备用,改名为atlassian-agent.jar。...

2019-07-25 10:07:35 517

原创 Springboot项目打包发布到Docker

建立一个简单的springboot项目,写一个测试接口。一、手动上传pom.xml <properties> <java.version>1.8</java.version> <docker.image.prefix>chris</docker.image.prefix> &lt...

2019-07-24 22:08:20 516

原创 将Android封装库通过gradle部署到maven私服并依赖使用

结合上次创建一个Android基本封装库项目:https://blog.csdn.net/xxkalychen/article/details/95479191一、在需要发布的模块chrisbaselibrary下的build.gradle中添加以下部分//maven插件apply plugin: 'maven'//打包main目录下代码和资源的 tasktask android...

2019-07-12 13:57:19 332

原创 Gradle项目部署到maven私服

一、创建一个gradle项目,编写一个简单的类,便与测试二、在build.gradle文件中添加以下内容apply plugin: 'maven-publish'repositories { maven { //maven私服仓库 url 'http://maven.ai-ways.com/nexus/content/repositori...

2019-07-12 11:00:47 1463

原创 Gradle封装开发库生成arr包并在项目中使用

本人是个懒人,开发讲求效率,所以比较喜欢把常用的一些功能进行封装,正式开发的时候只需要关注业务。由于Android Studio默认使用Gradle管理项目,所以需要使用gradle来打包和管理封装好的库。这里只介绍简要思路。一、创建一个空白的app项目,这个项目只是用来做测试使用二、在这个项目中创建一个Android Library的module,取名chrisbaselibrary,用...

2019-07-11 15:27:23 400

原创 Docker架设Git服务器使用

接上次,我们在服务器上面通过docker架设了gitlab服务器。成功访问之后,创建了java开发组。创建了一个 开发人员chris。把chris添加到java组。在java组下面创建了一个public项目MallApi。我们到本地计算机桌面上打开git客户端,克隆MallApi。git clone http://192.168.1.100:10086/java/MallApi.gi...

2018-09-10 02:14:11 644

原创 CentOS安装nexus搭建maven私服(二)

架设maven私服的一个重要目的,就是在团队协作开发的时候,底层开发人员可以将模块部署到服务器,上层的开发人员可以直接使用依赖,而且迭代升级也很方便,否则就需要把.m2中的库一个个发送,这事儿笔者做过,虽然模块不多,可是感觉到这明显不是处理事情的办法。好了,因为我们的nexus已经搭建完毕,我们要给nexus创建一个新的用户,并且添加nx-admin权限。笔者建议,最好添加一个,虽然默认的ad...

2018-09-09 20:23:57 147

原创 修饰符static的五种用法

被static修饰的类、方法等都是静态的,也就是不依赖实例进行创建,在类被第一次访问的时候就加载了。static出现的地方以及所起的作用大概有五种:1. 修饰静态属性;2. 修饰静态方法;3. 修饰静态内部类;4. 静态导包(类或者方法,可以通配);5. 标记静态代码块。我们用一个demo来测试一下。建一个普通的java项目,建立一个包com.chris.demo.stati...

2018-09-08 22:47:39 1198

原创 Java使用JNI入门For CentOS7

还是使用上次建好的Java项目,不同之处在于我们要在CentOS7中安装gcc,使用gcc进行编译。先看看有没有g++,gcc命令:gcc -v如果看到一大串信息包括版本号,表示已经安装了gcc,否则执行下面的命令进行安装:yum install glibc-static libstdc++-static -yyum install gcc-c++安装以后在检查一下。...

2018-09-07 23:51:31 550

原创 Java使用JNI入门For Windows7

前几天去一家公司面试,这家公司是做智能可穿戴设备的,涉及到针对硬件的操作。主要是操作蓝牙获取数据。以前没有用java去操作过硬件设备,网上也没有资料。想一想恐怕也就只能借助于C++团队,利用jni来进行技术对接了。以前虽然了解过jni,但是基本上都是在设计后台服务,比较多的是跟前端调用和后端数据库打交道,jni并没有真正用过。感觉到面试比较顺利,想着如果真的入职了,jni这方面一定会用上,所以特意...

2018-09-07 02:14:09 263

原创 CentOS安装nexus搭建maven私服(一)

为了节省时间,提高效率,同时有有利于团队协作,进行分模块开发整合,开发团队最好能够搭建一个maven私服。我们在这里使用nexus搭建一个私服。首先在服务器上面创建一个文件夹/home/softs/nexus,然后用下面的命令下载nexus。wget https://download.sonatype.com/nexus/3/latest-unix.tar.gz后面的网址可以在http...

2018-09-06 18:41:22 415

原创 Android使用JNI入门

使用JNI的必要性就不多说了,开始之前要下载NDK工具,在AS的SDK管理页面可以选择,配置好NDK的路径。新建一个项目,我的项目名为MyJniDemo。在布局中建一个TextView,用来显示我们最后调用的结果,这里不多说。创建一个类MyMathUtils,在其中创建一个静态的本地方法。我在上一个demo中创建的是普通方法,这里尝试静态方法。package com.chris....

2018-09-06 08:33:09 202

原创 Docker架设Git服务器简记

本来是想直接在centos上面安装架设,还是考虑到复用问题,因为我的日常工作是java开发,不会花很多时间来专门维护Git服务器,再则如果上门服务都直接在一个服务器上面配置,总会有一些影响的。还是隔离开比较好,所以选择使用docker镜像来架设。架设过程中自然要踩很多坑的,有一些关键的地方网上的资料也不是很详细,鼓捣了半个工作日,还好把架设的任务完成了。首先,拉取gitlab镜像,网上资料...

2018-08-30 13:59:43 2190

原创 Docker架设SVN服务器简记

本来想在自己的服务器上面架设SVN服务,但是不利于移植。想在虚拟机中架设,但是虚拟机又不常开,所以决定通过Docker来架设。在网上找过一些资料,研究实现,但是从镜像库中拉取下来的镜像最终都没有成功。最后决定自己拉取一个centos的镜像,然后在这个镜像中架设一个全新的SVN服务。首先,拉取centos镜像。docker pull daocloud.io/library/centos:7...

2018-08-30 02:21:05 3207

原创 Springboot+dubbo+zookeeper学习笔记(二)

时隔数月,第一版基本上线测试,开发组面临第二版重构。因为第一版遭遇需求零碎和管理混乱,毫无节制地修改,导致原来架构好的项目被无情撕碎,体系完全被打乱,程序处处耦合,经常是改完这一处,就会在另一处翻出新问题。加之原来的项目因为无法整体预先规划,四个app和一个管理网站的接口杂揉在一起,臃肿而且杂乱。我就想着赶紧上线,到安排第二版重构的时候实现分布式架构。架构的初始想法,是全部利用SpringClou...

2018-03-12 15:23:32 329

原创 CentOS7安装运行tomcat

我是在VM虚拟机上面安装的CentOS,记得不能安装最小安装,否则只是命令行。命令行倒也没什么,关键是对于我这种linux门外汉,不能方便联网解决起来很糟心。所以我选择一种桌面图形化界面安装。安装完成之后执行#yum update更新一下。在自己的文件夹下创建一个文件夹server,用来存放java包,创建一个soft文件夹用以存放软件。#mkdir sercver#mkdir soft去http...

2018-02-23 14:43:35 6606 2

原创 复制两个不同类型对象的相同字段的值

需求的来源是项目。每次做项目,都要建立很多的数据体,有的是数据库表产生的ORM,有的是网络请求的参数体,有的是网络接口调用给的返回数据返回数据体。同一种数据,这几种数据具体的结构并不一样。ORM旺旺跟数据表一致,并且做了映射。但是外键数据只有id,并不详细,前端调用的数据旺旺要求比ORM更丰富,有些则不需要。虽说可以建立一些与ORM无关的字段来用,但是字段多了会很麻烦,所以需要建立专用的VO数据类

2017-12-02 23:20:01 7465 4

原创 Redis学习笔记(6)消息的订阅与发布

数据库还能通信,真是学习了!!!先写一个方法,订阅消息: @Test public void redis_test_message_subscribe() { JedisPubSub jedisPubSub = new JedisPubSub() { @Override public void onMessage

2017-12-01 17:28:45 1123

原创 Redis学习笔记(5)对set集合的读写

集合分为无需集合和有序集合。写一个方法,测试无需集合:@Test public void redis_test_set() { //存入数据 jedis.sadd("nameset", "kaly chen"); jedis.sadd("nameset", "devin chen"); //读取数据

2017-12-01 17:16:32 551

原创 Redis学习笔记(4)对list列表的读写

这个也将会是用的比较多的。写一个测试方法:@Test public void redis_test_list() { //存入数据// jedis.lpop("namelist");// jedis.lrem("namelist",16,"kaly chen"); jedis.lpush("namelist"

2017-12-01 17:12:50 644

原创 Redis学习笔记(3)hash的读写

个人觉得读写哈市将来应该是用的最多的了。如果要把存在内存中的很多数据寄存在redis中,使用hash最方便,把对象转换成hashMap就好了。接上一篇,写一个测试方法:@Test public void redis_test_hash() { //构建hash Map map = new HashMap<>(); map.pu

2017-12-01 17:09:07 236

原创 Redis学习笔记(2)在Springboot项目中的配置

使用Intellij Idea创建一个SpringBoot项目,勾选redis。创建一个测试文件。在测试文件内创建jedis和gson(需要导入gson依赖)。 private Jedis jedis;//jedis private Gson gson;写一个init方法,初始化iedis和gson。@Before public void init() {

2017-12-01 17:04:53 178

原创 Redis学习笔记(1)安装与启动

从Redis官网下载redis。不过redis不支持windows,如果使用windows想学习,可以在github上面下载一个windows的支持包。https://github.com/MicrosoftArchive/redis/releases解压到一个位置。在windows环境变量中进行path配置。打开安装文件夹,找到redis.windows.

2017-12-01 16:57:02 159

原创 SpringBoot中jpa批量插入的问题

说起来令人啼笑皆非。本来也是我对SpringBoot不太熟,现在处于学习的阶段。公司最近做一个项目,我用SpringBoot架构好了,中间遇到两个问题:一是软件内启动老是提示注解工厂的错误,网上查了一下,原来是因为 @Table注解的问题,把关于表名映射改到@Entity里面就好了,因为orm的类都是持久化插件生成好的,我以为应该不会有这方面的问题,加之表太多,而且数据库又总是不确定。我不愿老

2017-11-29 21:48:06 9741

空空如也

空空如也

空空如也
提示
确定要删除当前文章?
取消 删除