自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

東辰的博客

希望大家都能写出逻辑清晰、代码规范、注释清晰的优质代码

  • 博客(62)
  • 资源 (4)
  • 收藏
  • 关注

原创 Java:(二)自己动手实现一个好用的SpringBoot后端框架(集成代码生成工具、Swagger)

前言本篇文章是《自己动手实现一个好用的后端框架》的第二篇文章上一篇地址:《(一)自己动手实现一个好用的后端框架-项目搭建》上一篇讲到了配置文件的部分,接下来我们继续讲组件具体怎么在代码中集成和配置正式开始下面关于配置的部分,我们统一放在/src/main/java/com/yinchd/web/config目录中1、ConfigCenter配置中心,我们将Druid的配置信息配置在其中package com.yinchd.web.config;import com.alibaba.dru

2021-04-25 19:52:16 636 1

原创 Java:(一)自己动手实现一个好用的SpringBoot后端框架(项目搭建、组件依赖)

前言这次准备分享一篇教程:如何自己动手实现一个好用的后端框架,我会尽量使用循序渐进的方式,从项目搭建开始,到集成各种组件,到最后架构完成,并集成基础的用户体系,一步步说明如何搭建一个属于自己的后端框架。基于现在大部分项目都是前后端分离的形式,因此本项目也是一个纯后端的架构,基于循序渐进的原则,我打算先以 SpringBoot 单体项目的形式入手,先说明如何一步步集成各种组件,到最后形成一个完整的架构,后续有空的话,我会再以微服务的形式更新一篇教程。限于我的技术水平也有限,抱着一起学习、共同进步的心态,

2021-04-25 18:16:11 2870 3

原创 Java:自己动手实现一个好用的MybatisPlus代码生成器

如果大家的项目持久层集成的是MybatisPlus,那我们来手动撸一个好用的代码生成工具一、先看下项目结构CodeGenerator:生成器主类resources下的mapper.java.vm:一个模板类,用以在生成dao层时按模板来生成代码比如我们想把代码按如下目录来生成:代码层代码生成位置Controller层com.yinchd.web.controllerService层com.yinchd.web.serviceService实现类com.

2021-04-23 00:31:50 2063 12

原创 Java:从原理入手,自己动手实现一个好用的Excel导入导出工具集

一、前言现在市面上已经有很多优秀的excel处理工具类,比如出自阿里的 EasyExcel,已经很好用了,我们为什么还要自己动手去实现一个呢?因为每个项目需求不一样,万一项目里有一些奇形怪状的需求,现有组件无法很好的满足,是不是需要自己去定制?有现成的工具类固然是一件好事,但是当现成的工具类无法满足当前需求的时候,如果我们能参考这些工具的实现原理,自己去动手撸一个差不多功能的组件,并且加上自己想要的功能,还运用到实际项目中去检验,是不是一件很有成就感的事?本文准备实现的这个工具组件是18年还

2021-04-20 23:45:30 1977 7

原创 Java:基于Java的爬虫程序示例

  这是一篇17年记的笔记,现在笔记vip过期了,懒得充值,现在把笔记都搬到CSDN上来,所以这篇文章属于从笔记誊抄过来的,那时的老代码,可能写的不够好,但是那个时候解决了朋友的一个小小需求,大家自行取舍看是否有帮助昨天一朋友打来电话,问能不能帮忙写个程序从一个网站上抓一些数据,然后能通过Excel汇总出来,之前他是一条一条数据去查,查出来后复制粘贴到Excle里,比较耗时耗力,他大概说了下场景,大致是这样的:先输入车牌号,点击查询按钮,查出车辆基本信息;然后点击基本信.

2021-04-14 15:57:26 844 1

原创 Java: 加密配置文件中的敏感信息

一、使用Druid自带的加密方式先来看不对密码进行加密的配置datasource: name: druidDataSource type: com.alibaba.druid.pool.DruidDataSource druid: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://ip:port/db?useUnicode=true&zeroDateTimeBehavior=convertT

2021-03-16 17:06:20 1515 4

转载 Java:使用BigDecimal的一些注意事项(转)

BigDecimal

2023-02-17 08:41:12 302 1

原创 Linux:使用unzip命令解压zip文件到与其同名的目录中

unzip命令解压zip文件到与其同名的目录中;unrar命令的使用

2022-10-17 16:16:42 5550

原创 Linux:记录一次完整的后端项目部署过程

公司的CI/CD环境出现了故障,影响项目联调测试,于是协调运维给了台服务器,准备自己来玩初步设想是通过脚本一键自动从git拉代码、maven自动打包、自动启动项目已装好Centos、有外网先建好目录1. 安装Java参考网上资料,jdk要求建议1.8+我安装的是 ,先把包下载下来,然后上传到服务器(我是在目录下建了个java目录,然后把包上传到这个目录),然后执行如下命令解压然后配置一下环境变量在最后面加上然后执行如下命令让环境变量生效最后验证一下,输入:,看到如下则代表成功我是先移除了服务器自

2022-09-22 20:15:28 953

翻译 如何管理es索引中的嵌套对象

管理es中的嵌套对象

2022-08-23 16:49:01 784

原创 Java:kafka多topic在配置文件中如何配置以及@kafkaListener中如何注入配置中的多topic

kafka多topic在配置文件中如何配置以及@kafkaListener中如何注入配置中的多topic

2022-08-11 20:14:44 2998

原创 Docker:docker部署Nacos并连接docker中的mysql容器

docker容器化部署nacos并且连接docker中的mysql服务

2022-08-08 10:52:54 1920

原创 Docker:docker部署Nginx

docker部署nginx

2022-08-05 18:58:47 1098

原创 Docker:容器化运行xxl-job-admin

一、背景今天想把xxl-job-admin跑在容器中,然后在部署的过程中踩了一些坑,特此记录因为xxl-job-admin需要连接数据库,而我本机的mysql是部署在docker容器中,我以为只要将xxl-job-admin按正常容器化部署就可以访问了,结果在实施过程中遇到了一些坑,如果你在其中一个容器访问另一个容器中的mysql遇到一些报错的情况,你可以参考我这篇文章,看有没有参考性如果对mysql容器化部署还不熟的同学请先看我这篇文章我部署在容器中的mysql访问地址为:localhost:33

2021-10-25 19:26:45 5237 4

原创 Java:Optional详解(源码阅读与应用)

前言Optional对象应该来说在实际应用中还是很广泛的,最近写了篇文章讲解java.util.function包中的几个常见类:Consumer、Supplier、Predicate、Function等的用法,然后举例时也用Optional对象进行了举例,可能有些小伙伴对它的用法还不是很了解,所以我今天就单独列一篇文章出来讲讲我们来看一下Optional的源码,或者点此直达正文public final class Optional<T> { private static fi

2021-08-05 19:27:27 433

原创 Java:Consumer、Supplier、Predicate、Function详解

前言在JDK1.8+的环境中,我们会经常使用到Lambda表达式进行编程,会发现Lambda表达式很多参数都需要用到Consumer、Supplier、Predicate与Function这些接口参数,比如我们经常用到的循环写法,中间就用到了这些类型参数,看一下下面这段代码List<String> list = Arrays.asList("jack", "rose", "zhangsan", "wangwu");list.forEach(System.out::println);可以

2021-08-05 00:43:54 1737

原创 Mac:查看端口占用

查看端口占用情况:lsof -i:portyinchendong@Yinchds-Macbook-Pro ~ % lsof -i:520COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMEjava 12850 yinchendong 281u IPv6 0x289830e0a3dc0ffb 0t0 TCP *:efs (LISTEN)port即为要查看的端口,结合kill命令

2021-08-03 14:33:55 2606 2

原创 Java:Spring HttpStatus源码阅读与扩展

前言今天在阅读Spring工具包中的org.springframework.http.HttpStatus源码,发现我们平时在使用RestTemplate调接口的时候,如果需要判断接口的状态是200、500或者其它状态时,可以直接使用HttpStatus封装的判断方法HttpStatus源码/* * Copyright 2002-2019 the original author or authors. * * Licensed under the Apache License, Version

2021-08-03 12:00:38 1049

原创 Java:(一)Sentinel初探-接口限流

前言最近在做一个小项目,对限流有些要求,遂想到引入Sentinel来实现下面记录一下大致步骤:Sentinel Dashboard先按照官方文档的要求,将Dashboard下载跑起来,可以下载jar包直接跑,或者把项目clone下来,直接跑Dashboard这个子项目jar包(项目)跑起来后默认端口是8080,也可以可使用 -Dserver.port=新端口 进行设置java -Dserver.port=8080 -Dcsp.sentinel.dashboard.server=localhos

2021-07-29 10:08:05 657

原创 Postman:设置环境变量及公共参数

前言目前很多项目都是前后端分离的形式,使用token作为接口调用的凭证,流程一般是这样的:先调登录接口,输入正确的用户名密码,后台校验通过返回带失效时间的凭证(token),后续调用其它接口都需要在请求头中带上这个token才能请求成功,比如下面就是一个登录接口,登录成功后返回了token信息其它接口都需要在请求头中带上一个key为“token”的请求头,请求头的value为上一步登录成功后返回的tokenHead和token拼接出来的字符串参数可以看到,上面的请求地址我写的是localhost、

2021-06-09 15:41:14 3746

原创 Java:CompletableFuture的一些使用方法

定义CompletableFuture,实现了Future和CompletionStagepublic class CompletableFuture<T> implements Future<T>, CompletionStage<T> { ...}用法supplyAsync supplyAsync(Supplier<U> supplier, Executor executor)异步,有返回值Callable就是Supplier的一个实

2021-04-23 20:14:52 1760

原创 SQL:通过存储过程批量将A表中的字段拿到并依此造数据批量插入B表

誊抄自原来的笔记DROP PROCEDURE batch_insert_discount_auth;DELIMITERCREATE PROCEDURE `batch_insert_discount_auth`()LANGUAGE SQLNOT DETERMINISTICCONTAINS SQLSQL SECURITY DEFINERCOMMENT '批量插入审核流水表'BEGINDECLARE DONE INT DEFAULT TRUE;-- 定义一个标识为trueDECLAR.

2021-04-23 00:32:26 227

原创 Maven:通过命令上传自定义jar包到私服

命令如下:mvn deploy:deploy-file -DgroupId=com.xxx -DartifactId=yyy -Dversion=1.1 -Dpackaging=jar -Dfile=/Users/yinchendong/Downloads/sdk2.0/lib/xxx-SNAPSHOT.jar -Durl=http://ip:8081/repository/3rdpart/ -DrepositoryId=nexus引用如下<dependency> <g

2021-04-23 00:32:15 273

原创 Java:Runnable和Callable<V>以及FutureTask

一、两者的使用区别Runnable实现Runnable的run方法,无返回值,无法抛出异常class RunnableTest implements Runnable { @Override public void run() { System.out.println("我是Runnable"); }}使用直接通过线程来调用Thread thread = new Thread(new RunnableTest(), "线程");thread.star

2021-04-23 00:31:10 320 2

原创 Java:通过读取文件头来得到文件真实类型

誊抄自原来的笔记背景有时我们需要对上传的文件进行判断文件类型,一般我们可以通过扩展名来判断文件属于什么类型,但是当文件没有扩展名或者一张图片改成了txt,我们通过扩展名的方式来判断是不是就不太合适了呢,其实我们可以根据文件中的文件头来判断实际文件类型一,新建文件枚举类(文件类型与文件头之间的映射关系)package cn.test.enums;/** * 用于判断上传文件的真实文件类型的枚举类 */public enum FileType { /** * JEPG. */.

2021-04-22 10:42:54 897

原创 JavaScript:html中各种空格代码的区别(&nbsp、&emsp...)

之前某个页面用了空格&nbsp;,但是在chrome firefox 和ie显示的宽度都不一样,无法对齐。搜索了一下,很多人都转载了那篇设置成宋体的,可是仍然没对齐,要么ie对齐,要么chrome没对齐,于是好好研究了一下空格。大家都&nbsp;不好把控,于是,我们找到了新的替代方案:用半角空格&ensp;或者全角空格&emsp;就可以了,&ensp;相当于半格中文字符的宽度,&emsp;相当于一个中文字符宽度。HTML提供了5种空格实体(space

2021-04-22 10:33:24 4480

转载 JavaScript:js高阶使用45招

JavaScript是一个绝冠全球的编程语言,可用于Web开发、移动应用开发(PhoneGap、Appcelerator)、服务器端开发(Node.js和Wakanda)等等。JavaScript还是很多新手踏入编程世界的第一个语言。既可以用来显示浏览器中的简单提示框,也可以通过nodebot或nodruino来控制机器人。能够编写结构清晰、性能高效的JavaScript代码的开发人员,现如今已成了招聘市场最受追捧的人。在这篇文章里,我将分享一些JavaScript的技巧、秘诀和最佳实践,除了少数几.

2021-04-22 10:28:22 1401 1

转载 JavaScript:js中一些经常要用到的正则表达式

誊抄自原来的笔记,也是摘录的其它作者的文章1、校验密码强度密码的强度必须包含大小写字母和数字的组合,不能使用特殊字符,长度在8-10之间^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$2、校验中文字符串只能是中文^[\\u4e00-\\u9fa5]{0,}$3、由数字,26个英文字母或下划线组成的字符串^\\w+$4、校验E-Mail 地址[\\w!#$%&'*+/=?^_`{|}~-]+(?:\\.[\\w!#$%&'*+/=?.

2021-04-22 10:02:05 275

原创 JavaScript:js实现类似Java的startsWith和endsWith功能

誊抄自原来的笔记js中并没有原生支持这两种写法,不过我们可以自己扩展startsWithString.slice()和String.substring()类似,都是获得一段子串,但有评测说slice的效率更高。这里不使用indexOf()的原因是,indexOf会扫描整个字符串,如果字符串很长,indexOf的效率就会很差。if (typeof String.prototype.startsWith != 'function') { String.prototype.startsWith.

2021-04-22 09:52:37 364 3

原创 JavaScript:js实现类似Java的日期格式化功能

誊抄自原来的笔记一、先定义功能函数Date.prototype.format = function (fmt) { var o = { "M+": this.getMonth() + 1, //月份 "d+": this.getDate(), //日 "H+": this.getHours(), //小时 "m+": this.getMinutes(), //分 "s+": this.getSecond.

2021-04-22 09:47:30 145

原创 JavaScript:js中利用localResizeIMG来实现图片压缩后上传

誊抄自原来的笔记一、需要用到的js文件二、页面引入js文件<input type="file" id="img-picker2" name="image" accept="image/*" style="display:none;" onchange="changeHandle(this)">三、定义file框,并写好onchange事件<input type="file" id="img-picker2" name="image" accept="image/*" st.

2021-04-22 09:43:58 279

原创 JavaScript:通过纯js代码实现图片实时预览功能

誊抄自原来的笔记一、首先定义一个file选择框,写好change事件<input type="file" accept="image/*" onchange="changeHandle(this)">二、change事件代码,通过FileReader实现预览弹框是用的layerfunction changeHandle(_this) { // 获取当前选中的文件 var file = _this.files[0]; const imgMaxSize = 1.

2021-04-22 09:35:28 370

原创 JavaScript:js实现类似Java中的String.format(“%s“, param)的功能

誊抄自原来的笔记String.prototype.format = function(args) { var result = this; if (arguments.length > 0) { if (arguments.length == 1 && typeof (args) == "object") { for (var key in args) { if(args[key]!=.

2021-04-22 09:32:27 1114

转载 Computer System:CPU 空闲时在干嘛?

人空闲时会发呆会无聊,计算机呢?假设你正在用计算机浏览网页,当网页加载完成后你开始阅读,此时你没有移动鼠标,没有敲击键盘,也没有网络通信,那么你的计算机此时在干嘛?有的同学可能会觉得这个问题很简单,但实际上,这个问题涉及从硬件到软件、从 CPU 到操作系统等一系列环节,理解了这个问题你就能明白操作系统是如何工作的了。你的计算机 CPU 使用率是多少?如果此时你正在计算机旁,并且安装有 Windows 或者 Linux ,你可以立刻看到自己的计算机 CPU 使用率是多少。这是博主的一台安装

2021-04-20 15:24:38 153

转载 Java:ConcurrentHashMap 中十个提升性能的细节,你都知道吗?

ConcurrentHashMap 是 Java 中支持高并发、搞吞吐量的线程安全 HashMap 实现。在这之前很多人对 ConcurrentHashMap 只有一些肤浅的理解,仅知道它采用了多个锁,大概也足够了。但想提升性能可远不止这些,本文详细阐述了 ConcurrentHashMap 技术细节,随小编一起来看看吧。一、一些题外话如何在高并发下提高系统吞吐是所有后端开发者追求的目标,Java并发的开创者 Doug Lea 在 Java 7 ConcurrentHashMap 的设计中给出了一些.

2021-04-20 14:38:20 1458

原创 Java:自己实现Mysql代码生成器的一些想法

背景交待:这是之前记录的一篇日志,那时在做一个政府类项目,表字段名称是汉语拼音缩写,往往都是大表,十几二十几个字段都是家常便饭,读起来很不方便,于是想着每次写sql查询时都将表注释显示为字段名称,这样就方便知道每个字段是什么含义了,于是开始研究,怎么自动生成sql语句并且将字段注释显示为title,想要的效果如下:效果如上图:就是查询结果中将字段注释显示成 title,方便知道是啥意思,因为项目涉密的原因,关键信息打了码先看这个sql语句的效果SELECT t.* FROM informa.

2021-04-15 10:17:39 262

原创 Java:ElasticSearch 解析 GeoPoint 类型异常解决

今天在做数据同步到ES的过程中,发现数据经纬度数据无法插入到es中,经排查,记录如下:报了如下异常:代码里是通过ES的GeoPoint来存数据刚开始找问题,报错的原因,同事说要纬度在前,经度在后,我发现我确实写反了,如果调整过来,还是报错打印经纬度没有发现异常:于是在网上找解决办法,找到一篇文章,es支持的数据导入格式:于是想着不用GeoPoint,改为上述第二种方式,字符串的形式,于是,数据库查询出来的字段就是拼接好的字段:...

2021-04-15 09:34:16 3865

原创 Java:ES Search Api动手实践

本篇文章是从本人为知笔记上誊抄过来的,文章内容最初是当作笔记进行整理的,没有组织语言结构,各位看官自行查阅取舍1、引入依赖<properties> <elasticsearch.version>7.6.2</elasticsearch.version></properties><dependency> <groupId>org.elasticsearch</groupId> <artif.

2021-04-15 09:28:35 99

原创 Mysql:查看Mysql表占用的空间大小

如果我们想查看Mysql库中某个表占用的空间大小,我们可以使用如下sql语句来查看SELECT TABLE_NAME, DATA_LENGTH, INDEX_LENGTH, (DATA_LENGTH + INDEX_LENGTH) AS LENGTH, TABLE_ROWS, CONCAT (ROUND ((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024, 3), 'MB') AS total_sizeFROM information_s

2021-04-15 09:17:16 3737

原创 Docker:docker操作image及container

操作容器container列出所有容器docker ps -a删除单个容器docker rm caec5440819a删除多个容器docker rm $(docker ps -a -q)操作镜像image列出所有镜像docker images停止一个镜像docker stop xxx #(imageId)停止多个镜像docker stop $(docker ps -a -q)删除一个镜像docker rmi xxx #(image

2021-04-14 15:18:00 192

IPOP(华为内部都在用的超牛逼网络工具)

IPOP(华为内部都在用的超牛逼网络工具),里面内置很多给力的网络功能。

2012-03-03

笔记本一键组建笔记本无线热点

可以方便的使你的笔记本一键变成一个免费的无线热点。

2012-03-03

auto CAD 2009注册机

auto cad 2009注册机,完美激活2009

2011-09-02

recuva小巧免费使用的数据恢复软件

虽然网上有下载的,但这是我注册后第一次上传资源,请老鸟不要笑。。

2011-03-29

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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