
笔记
开发笔记
清晨先生
博学之,省问之,慎思之,明辨之,笃行之
展开
-
SpringBoot 解决跨域问题
SpringBoot拦截器解决跨域问题,这种方式,可以解决在前后端分离的情况下,跨域配置后Cookie无法共享,无法写入的问题原创 2024-03-07 14:11:52 · 392 阅读 · 1 评论 -
Windows10下安装配置Gradle环境
前言Java生态体系中有三大构建工具:Ant、Maven和Gradle。其中,Ant是由Apache软件基金会维护;Maven这个单词来自于意第绪语(犹太语),意为知识的积累,最初在Jakata Turbine项目中用来简化构建过程;Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建开源工具,它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,抛弃了基于XML的各种繁琐配置。经过几年的发展,Ant几乎销声匿迹,而Maven由于较为不灵活的配置也渐渐被遗原创 2021-01-06 09:30:57 · 3274 阅读 · 1 评论 -
SpringCloud Gateway 解析获取请求参数并封装传递到Controller
目录前言代码1. 定义请求封装实体`OAuthRequest.java`2. 定义抽象请求构造工厂类`OAuthRequestFactory.java`3. 定义默认WebFlux请求构造工厂实现`WebFluxOAuthRequestFactory.java`4. 定义请求实体线程参数容器`OAuthRequestContainer.java`5. 定义一个抽象过滤器`AbstractGatewayFilter.java`用来封装请求解析方法;6. 定义`CertifiedEntryWebfluxFilt原创 2021-01-05 14:29:09 · 7729 阅读 · 7 评论 -
Spring Security Oauth2 官方表结构解析,字段详解
spring-security-oauth官方表结构文件:https://github.com/spring-projects/spring-security-oauth/blob/master/spring-security-oauth2/src/test/resources/schema.sql客户端详细信息表:oauth_client_details字段注释client_id主键,客户端IDresource_ids客户端所能访问的资源id集合,多个资源时用逗号(,)分原创 2020-10-15 16:39:35 · 7926 阅读 · 2 评论 -
七牛云存储挂载到阿里云ECS上的目录下,达到扩容磁盘的效果
七牛云存储挂载到阿里云ECS上,达到扩容磁盘的效果安装环境yum install automake fuse fuse-devel gcc-c++ git libcurl-devel libxml2-devel make openssl-devel下载s3fs安装包wget https://github.com/s3fs-fuse/s3fs-fuse/archive/v1.87.tar.gz解压并安装s3fstar -zxvf v1.87.tar.gzcd s3fs-fuse原创 2020-09-14 15:30:42 · 1332 阅读 · 3 评论 -
Docker部署SpringBoot项目出现的SQLserver连接SSL异常:create connection SQLException, url: jdbc:sqlserver://
记一次Docker部署SpringBoot项目出现的SQLserver连接SSL异常,解决记录:项目环境:- SpringBoot2.2.1- SqlServer驱动:mssql-jdbc:8.4.0.jre8- JDK:1.8在部署到Docker后,访问时报错信息如下: create connection SQLException, url: jdbc:p6spy:sqlserver://172.41.129.5:1433;DatabaseName=fwusercount;, errorC原创 2020-09-14 12:45:08 · 4268 阅读 · 0 评论 -
阿里云ECS服务器扩容,挂载OSS对象存储到ECS实例上作为网络共享磁盘使用
本片文章主要写如何对阿里云ECS服务器扩容,挂载OSS对象存储到ECS实例上作为网络共享磁盘使用安装步骤1. 前期准备购买OSS存储资源包、创建Bucket,然后获取一个Access key2. 下载并安装ossfs包根据ECS实例系统版本,在github选择相应的rpm包下载到服务器上,我这里系统是Centos7.7的,所以选择ossfs_1.80.5_centos7.0_x86_64.rpm这个版本Github仓库地址:https://github.com/aliyun/ossfs/rele原创 2020-09-11 16:24:45 · 2356 阅读 · 0 评论 -
解决com.microsoft.sqlserver.jdbc.SQLServerException: 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误
解决com.microsoft.sqlserver.jdbc.SQLServerException: 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误Caused by: java.io.IOException: SQL Server 未返回响应。连接已关闭。原创 2020-08-18 16:20:34 · 20680 阅读 · 16 评论 -
四年开发学习历程的反思,作为一名优秀的程序猿,你真的知道如何学好一门新的技术或框架吗?
这篇文章主要用来总结自己最近以及入行以来这几年的一个学习方法变换的历程和心得。作者在学习一些新的技术中间件或技术框架时,总有种无从下手的感觉。而往往一旦出现这种感觉就会拖延症再犯。想要暂时放弃学习这个框架,想着如果项目中需要使用的话就直接一边学一边用不得了,学的也比较快。学好一个新的技术或框架确实不是什么容易的事儿。它既不是我们简简单单背一下相关概念那么简单,也不是项目中用一遍写几句代码就能说自己会用了那么容易。我们应该更多的去思考这些技术或框架的设计目的,实现原理。才能真正把技术用出花来。。原创 2020-08-17 16:17:40 · 254 阅读 · 0 评论 -
使用Maven打包通过Docker镜像发布SpringCloud项目,镜像推送Docker私服Harbor 详情记录
公司的技术结构最近正在升级,技术体系主要就是SpringCloud的一套,发布主要采用k8s+docker的方式去发布,这里主要讲解记录笔者使用官方推荐的一款插件:dockerfile-maven-plugin 对SpringCloud项目进行打包、把镜像发布到Docker镜像仓库私服Harbor上、拉取指定版本镜像、启动项目的一套流程是怎么操作的。环境准备电脑上需要安装Docker Desktop:官方下载地址安装前注意Docker Desktop对Windows电脑系统要求是专业版或者企业版。并且原创 2020-08-05 09:37:44 · 1221 阅读 · 0 评论 -
记一次SpringCloud把SpringBoot项目打成jar包使用java -jar命令执行 命令行参数无效,没有生效的问题
最近公司也采用了当前炒的比较如火如燎的SpringCloud微服务技术,经过了多方面技术对比选型,还是决定使用了相对比较新的技术技术主体框架如下:注册中心:Nacos配置中心:NacosSpringBoot 2.2.5.RELEASESpringCloud Hoxton.SR3spring-cloud-alibaba 2.2.1.RELEASE使用这套框架在实际开发中也没怎么遇到太多难题。但是当我们开发一个demo准备进行测试环境部署时,出了一个很莫名其妙的问题:项目在本地开发调试都是正原创 2020-08-04 14:44:40 · 1890 阅读 · 0 评论 -
解决IDEA :Windows Defender might be impacting your build performance 警告信息 解决方案
解决IDEA :Windows Defender might be impacting your build performance 警告信息 解决方案刚升级完新版 IDEA2020.2的我,打开项目时,突然弹出警告:Windows Defender might be impacting your build performance…查了下官方文档,说出现这种情况是由于,版本的升级,文件的位置与项目的位置不同,影响性能。所以每次启动IDEA时都会出现警告,所以出现这种情况,我们只需要点击下面的蓝色字体原创 2020-07-30 16:51:16 · 13144 阅读 · 3 评论 -
UML建模详解之 类图的绘制和理解
类图中类的属性或方法的关键字修饰代码里类的属性或方法的关键字在类图里用以下方式表示:-中划线表示private#表示protected~表示default,也就是包权限_下划线表示static斜体表示抽象类图中的类、接口、枚举类类图中的类,用一个三层矩形来表示,第一层为类的名称、第二层内容是类的属性(成员属性)、第三层为类的行为(方法)。接口UML内接口默认是使用一个圆形的图案加名称表示,但是很不直观,我们也可以用三层矩形的方式进行表示,在名字上方加上《interface》区分原创 2020-07-24 11:17:37 · 8058 阅读 · 0 评论 -
记录Windows10安装Docker 踩坑记
解决 Docker Desktop requires Windows 10 Pro/Enterprise (15063+) or Windows 10 Home (19018+).解决 (default) Creating a new host-only adapter produced an error: C:\Program Fil解决 Get Docker Desktop for Windows Docker Desktop for Windows is available for f原创 2020-07-22 09:26:08 · 10227 阅读 · 8 评论 -
基于 DDD 的微服务设计和开发实战
你是否还在为微服务应该拆多小而争论不休?到底如何才能设计出收放自如的微服务?怎样才能保证业务领域模型与代码模型的一致性?或许本文能帮你找到答案。本文是基于 DDD 的微服务设计和开发实战篇,通过借鉴领域驱动设计思想,指导微服务项目团队进行设计和开发(理论篇详见《当中台遇上 DDD,我们该如何设计微服务?》)。本文包括三部分内容:第一部分讲述领域驱动设计基本知识,包括:分层架构、服务视图、数据视图和领域事件发布和订阅等;第二部分讲述微服务设计方法、过程、模板、代码目录、设计原则等内容;最后部分以一个项目为例转载 2020-07-21 09:32:48 · 868 阅读 · 0 评论 -
Java使用MVC开发模式开发了这么多年的项目,才知道一直在面向过程(面向数据库)开发,面向对象并没有想象中那么简单
使用Java开发了这么多年MVC结构的项目,才知道一直在面向过程(面向数据库)开发,面向对象并没有想象中那么简单简单介绍为什么说Mvc是面向过程开发,DDD面向对象怎么做到的,如何解决臃肿的Service原创 2020-07-20 11:01:29 · 1332 阅读 · 2 评论 -
Centos使用nohup 后台运行服务、输出日志到指定文件
SpringBoot在Centos下后台运行并实时输出日志到指定文件,Centos使用nohup 后台运行服务、输出日志到指定文件原创 2020-07-16 10:59:08 · 4907 阅读 · 0 评论 -
SpringCloudAlibaba 和 SpringCloud、SpringBoot 之间的版本对照表
SpringCloudAlibaba 和 SpringCloud、SpringBoot 之间的版本选择,匹配。官方版本对照信息原创 2020-07-14 16:11:49 · 6675 阅读 · 0 评论 -
SpringBoot 异步执行方法,接口异步调用方法
SpringBoot 异步执行方法,在接口调用时开启一个新线程做一些操作,这个操作结果,不影响返回值项目启动类或者任意被Spring容器管理的类,必须要有一个`@EnableAsync`注解,标识项目开启异步功能然后在需要异步执行的方法或类上加上`@Async`注解,在类上加上这个注解标识这个类里面的所有方法都是异步方法,在被其他类调用时会启动一个线程进行该方法的执行。原创 2020-07-14 09:09:43 · 8078 阅读 · 0 评论 -
有没有必要在项目里使用Oauth2,不为了技术而技术,你可能并不需要 OAuth2
OAuth2 是一个关于 授权 (Authorization)的网络标准,在网上已经有大量的资料来解释,本文不再详细解释原理和规范的详情。关于 Authorization 和 Authentication 的区别之后会写另外一篇文章来分析。在此仅列两个比较优质的解释 OAuth2 原理的文章:理解OAuth 2.0 —— 阮一峰[认证授权] 1.OAuth2授权 —— blackheart尽管如此,这里还是描述一下 OAuth2 的使用场景,以便约定和明确一下角色方便后面叙述。角色A (tw转载 2020-07-10 15:46:39 · 3453 阅读 · 13 评论 -
搞定Git多账户配置,一台电脑多个Git账户
多个Git平台账户公钥配置多账号Git配置在日常开发或工作中,我们不免会使用到多个git平台的账号如:github、gitee、gitlab,下面介绍如何在一台机器上使用多个git账号原创 2020-06-30 09:57:35 · 2403 阅读 · 0 评论 -
Nacos发布配置 项目报错java.lang.IllegalArgumentException
Nacos动态发布配置后客户端项目报错:java.lang.IllegalArgumentException: Could not resolve placeholder 'project.version' in value "${project.version}"解决办法:在项目配置文件加上project.version=@project.version@解决问题原创 2020-05-29 16:46:00 · 3164 阅读 · 0 评论 -
分布式事务管理详解:DTP模型,2PC协议实现,TCC模式和SAGA模式实现原理
分布式事务管理详解:简述 DTP模型,2PC协议实现,XA接口规范与TCC模式和SAGA模式及实现原理XA接口规范与JTS、JTA的关系CAP和BASE定理原创 2020-05-20 17:49:29 · 1220 阅读 · 0 评论 -
SpringBoot 配置RedisTemplate 使用 FastJson 进行序列化
SpringBoot+Redis+FastJson自定义FastJson序列化方式更改默认SpringBootRedisTemplate序列化方式,解决 Could not deserialize: autoType is not support.问题原创 2020-05-19 17:23:46 · 7285 阅读 · 0 评论 -
前后端开发工具常用插件
文章目录IDEA插件Vs Code 插件IDEA插件名称简述CamelCase驼峰、下换线、大小写字母转换插件LombokJava实体GetSet、构造类…代码自动生成插件MybatisXMybatis自动对应Mapper检测插件Translation翻译插件Rainbow Brackets大括号高亮彩虹颜色插件Vs Code 插件...原创 2019-12-04 22:27:05 · 439 阅读 · 0 评论 -
MySQL 批量插入数据,单次插入多少条数据效率最高
文章目录一、前言二、批量插入前准备1、插入到数据表的字段2、计算一行字段占用的空间3、在数据里做插入操作的时候,整体时间的分配三、批量插入数据测试1、SQL语句的大小限制2、查看服务器上的参数:3、计算一次能插入的最大行记录4、测试插入数据比对(1)插入11W条数据,按照每次10,600,1000,20000,80000来测试:(2)加大数据量到24w(3)加大测试量到42W5、如果插入的值就是s...转载 2019-11-26 18:29:10 · 30919 阅读 · 0 评论 -
Centos安装Java JDK1.8运行环境
文章目录Centos安装Java JDK1.8运行环境第一步 在yum源里查找需要安装的包第二步 找到自己需要的版本,使用yum进行安装第三步验证是否安装成功Centos安装Java JDK1.8运行环境第一步 在yum源里查找需要安装的包执行命令:yum search java|grep jdk输出:第二步 找到自己需要的版本,使用yum进行安装我们这里安装java-1.8.0...原创 2019-11-25 18:24:53 · 248 阅读 · 0 评论 -
Java基本数据类型(四类引用数据类型、八大数据类型)
我们在接触每种语言时都会存在对数据类型的认识,数据类型在计算机里面是对内容位置的一个抽象表达方式,可以理解成对内存的一个抽象表达形式。Java是一个强类型语言,所以对数据类型规范要求会相对严格一点,数据类型是语言的的抽象原子概念,可以说是语言中最基本的单元定义。Java从本质上把数据类型分为两类 :基本数据类型、引用数据类型从数据的存储和表现形式、Java基本数据类型大体可以分成四类:整数型、浮点型、字符型、布尔型原创 2019-10-14 12:30:59 · 1135 阅读 · 0 评论 -
Spring Boot 使用外部Tomcat
Spring Boot 禁用内置Tomcat<!--禁用内置tomcat--><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> ...原创 2018-07-24 17:30:26 · 1763 阅读 · 0 评论 -
Java使用OpenCV基于离散傅里叶变换算法实现-----图片添加盲水印
前言最近公司孵化一个项目,里面涉及到大量的原创照片及图片,目前市场上的明文水印,对用户体验有一定影响,并且这种水印也极其容易被破坏,之前了解到一种基于傅里叶变换实现的盲水印,这种盲水印技术相比普通水印,不但有更好的用户视觉体验,安全性也是拉了普通水印几条街早在16年,阿里的内部泄密事件发生后,一位知乎大神在知乎上对这种技术已经给出了很详细的解释,帖子中也给出了相关理论和matlab代码及对其...原创 2018-10-25 20:45:54 · 3965 阅读 · 2 评论 -
VUE基础入门 第一个VUE项目(一)
Window10 下 VUE 开发环境搭建开发环境准备Windows10 + WebStorm + NodeJSWebStorm 2018.2 下载地址NodeJS 下载地址安装环境安装NodeJs双击打开NodeJS安装包,一直Next 选择安装路径时可以根据自己需求进行更改安装完毕,打开CMD命令行查看是否安装成功验证无误后 由于有些npm有些资源被屏蔽或者是国外资源...原创 2018-10-26 19:27:45 · 1324 阅读 · 0 评论 -
Java网络编程 -- 解析DOM获取网络数据 抓取图片
Java强大的网络数据抓取能力 -- 解析DOM获取网络数据通过请求 获取网页内容1. 基于Apache Httpclient实现Java网络访问工具2. 基于net 工具包 实现Java网络访问工具JAVA 基于 Jsoup 对抓取到的网页对象进行DOM解析1. 使用Jsoup 对字符串进行处理,并解析DOM通过请求 获取网页内容Java通过HTTP请求获取页面内容的 两种方式基于Ap...原创 2018-10-31 18:05:14 · 1226 阅读 · 0 评论 -
RabbitMQ 入门 - Windows下 RabbitMQ 环境安装
安装准备Erlang 环境 - RabbitMQ是使用并发式语言Erlang编写的,所以首先需要安装 Erlang 环境【官网下载】 RabbitMQ服务端【官网下载】 Erlang不翻墙的话下载有点麻烦 【优快云下载】安装配置Erlang1、双击打开安装包,默认Next2、选择自己要安装的目录,默认也行 3、一路Next 等待安装完成4、右键计算机--属性...原创 2018-12-05 20:34:52 · 567 阅读 · 0 评论 -
RabbitMQ 基础知识
背景RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现。AMQP 的出现其实也是应了广大人民群众的需求,虽然在同步消息通讯的世界里有很多公开标准(如 COBAR的 IIOP ,或者是 SOAP 等),但是在异步消息处理中却不是这样,只有大企业有一些商业实现(如微软的 MSMQ ,IBM 的 Websphere MQ 等),因此,在 20...转载 2018-12-05 21:36:40 · 381 阅读 · 0 评论 -
SpringBoot2.x + RabbitMQ 实现简单的发布与订阅消息
前言MQ是消费-生产者模型的一个典型的代表,一端往消息队列中不断写入消息,而另一端则可以读取或者订阅队列中的消息。MQ和JMS类似,但不同的是JMS是SUN JAVA消息中间件服务的一个标准和API定义,而MQ则是遵循了AMQP协议的具体实现和产品。在项目中,将一些无需即时返回且耗时的操作提取出来,进行了异步处理,而这种异步处理的方式大大的节省了服务器的请求响应时间,从而提高了系统的吞吐量。...原创 2018-12-06 21:15:23 · 3712 阅读 · 1 评论 -
解决FastDFS 不同局域网上传下载文件无法正常访问/获取 Strorage 存储节点IP问题
前言前几天自己搭建了一个小的练手项目,其中文件存储使用了 FastDFS 文件服务器 ,但是在实际部署时出现了问题,由于项目是部署在阿里云服务器上,FastDFS服务器部署在本地局域网通过端口路由的方式进行文件操作 ,两台服务器不在同一个局域网,导致项目连接Fdfs服务器时获取到的Storage存储节点为该局域网ip 上传下载文件都timeout。后面查了下fastdfs-client的 源...原创 2019-03-11 11:19:34 · 3490 阅读 · 1 评论 -
解决SpringBoot+Druid+Mybatis Plus 执行MySQL批量插入,更新 报错的问题
项目实际开发中,使用到了MySQL批量插入的语法,在MySQL中执行成功后,移植到项目时发生了问题,语句如下:REPLACE INTO table1( id, works_fusion_id, statistics_date, chapter_number, new_chapter, works_hot, works_like_number,...原创 2019-06-10 14:41:13 · 6476 阅读 · 0 评论 -
Java中List和数组互相转换
List转数组 List本身提供了一个转换成数组的方法:List<String> list=new ArrayList<>();Object[] array=list.toArray(); 但是上述方法 在需要转换成某个特定数据类型的数组时,强制类型转换时会抛出异常 比如:List<String> list...原创 2019-09-20 16:45:40 · 945 阅读 · 1 评论 -
缓存雪崩、缓存穿透、缓存击穿 问题分析和解决
缓存雪崩、缓存穿透、缓存击穿问题及解决方案分析在应用中使用缓存,我们主要有三个目的:1、加快用户访问速度,提升用户体验2、降低后端负载压力,减少潜在的风险,保证系统平稳运行3、尽可能保证数据一致,即时更新但是在使用缓存时,也会有很多问题可能出现,不是把数据根据Key存储到缓存服务,能正常查询就完工大吉了的。身为一个严谨的开发人员,必须要考虑各方面会出现或可能出现的问题,并对风险进行预处理,尽可能的保证程序应用的稳定和健壮性,下面对使用缓存时比较常见的问题和风险进行原因分析和常见的解决方案。原创 2019-09-27 14:50:35 · 415 阅读 · 0 评论 -
mybatis特殊符号报错解决方法
mybatis < > & ’ “特俗符号报错解决方法因为mybatis mapper文件是xml格式的,所以有时候不允许出现类似< > & ’ “这样的字符,而我们写sql时或做一些ognl表达式时 会出现这种问题 ,有两种解决方案。1.用转义字符把>和<替换掉 表格语法: 转义前 转义后 释意 < < 小于 > > 大于 & &原创 2017-12-23 15:02:43 · 4102 阅读 · 0 评论