个人学习系列
文章平均质量分 70
周兆东
这个作者很懒,什么都没留下…
展开
-
个人学习系列 - SpringBoot整合devtools实现热部署
DevTools 实现热部署原创 2023-04-27 10:23:15 · 238 阅读 · 0 评论 -
个人学习系列 - 解决拦截器操作请求参数后台无法获取
由于项目需要使用拦截器对请求参数进行操作,可是请求流只能操作一次,导致后面方法不能再获取流了。原创 2023-02-10 15:24:02 · 1342 阅读 · 0 评论 -
个人学习系列 - Spring Boot 配合 Redis 实现简单的发布订阅功能
如果只是想实现简单的发布订阅功能的话,又不想用消息队列增加系统的复杂性,我们可以选择Redis来做这个事情。发布订阅发布订阅模式就是一种生产者消费者模式,Publisher负责生产消息,而Subscriber则负责消费它所订阅的消息。pom.xml<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web&.原创 2022-03-04 10:31:29 · 916 阅读 · 0 评论 -
个人学习系列 - @Transactional失效的3种情况
面试的时候遇到过这个问题,当时一脸懵逼。现在记录一下。。。@Transactional失效场景1. 在类内部调用调用类内部@Transactional标注的方法1.1 定义一个错误的@Transactional标注实现,设置一个内部调用@Servicepublic class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IUserService { @Resource UserM.原创 2021-11-26 15:20:19 · 1238 阅读 · 2 评论 -
个人学习系列 - SpringBoot整合RabbitMQ
研究一下消息队列,现在来简单搭建一下。1. Docker搭建RabbitMQ1.1 查询并下载RabbitMQ镜像docker search rabbitmq// 选择可以访问web管理界面的tagdocker pull rabbitmq:management1.2 运行RabbitMQ镜像// 设置账号密码都为admindocker run -dit --name myrabbitmq -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEF.原创 2021-11-23 16:26:31 · 1331 阅读 · 0 评论 -
GO语言入门 - (六)函数和方法
是时候开始研究函数和方法了。。。函数通过函数,可以把开发任务分解成一个个小的单元,这些小单元可以被其他单元复用,进而提高开发效率、降低代码重合度。1. 函数声明func funcName(params) result { body}关键字 func函数名字 funcName函数的参数 params,用来定义形参的变量名和类型result 是返回的函数值,用于定义返回值的类型,如果没有可以省略body 就是函数体,可以在这里写函数的代码逻辑写一个计算两数相加的函数:pack.原创 2021-10-18 14:49:25 · 197 阅读 · 0 评论 -
GO语言入门 - (五)集合类型
进阶,进阶,向集合类型出发。。。集合类型很多同一个类型的元素放在一起的场景就是集合。数组(array),切片(slice),映射(map)都是集合类型,用以存放同一类元素。1. Array(数组)数组存放的是固定长度,相同类型的数据而且这些存放的元素是连续的存放的数据类型没有限制示例代码如下:package mainimport "fmt"func main() { // 这里中括号里面的5表示的是数组的长度,后面花括号里面的是初始化 array := [5]string{.原创 2021-09-16 14:57:29 · 553 阅读 · 0 评论 -
GO语言入门 - (四)控制结构
进阶,进阶,向控制接口出发。。。流程控制语句流程控制语句用于控制程序的执行顺序,这样程序就具备了逻辑结构。1. if 条件语句根据布尔值的表达式来决定选择哪个分支执行:如果表达式的值为true,则if分支被执行;如果表达式的值为false,则else分支被执行;示例:package mainimport "fmt"func main (){ // 将10赋值给i i := 10 // 需要注意的是: // if后面的条件表达式不需要使用() // 每个条件.原创 2021-09-16 14:47:20 · 109 阅读 · 0 评论 -
GO语言入门 - (三)数据类型
现在需要了解一下GO语言的数据类型。布尔型布尔型的值只可以是常量 true 或者 false。一个简单的例子:package mainimport "fmt"func main() { // 声明一个布尔型的变量i var i bool = true fmt.Println("打印一个布尔型的变量:i=", i)}运行结果为:数字类型整型 int 和浮点型 float32、float64Go 语言支持整型和浮点型数字,并且支持复数,其中位的运算采用补码。packag.原创 2021-09-16 14:44:39 · 235 阅读 · 0 评论 -
GO语言入门 - (二)语言结构
我们看一下一个Go语言可执行的文件具体包含哪几个部分吧Hello World实例Go语言基础组成一般包含以下几个部分包声明引入包函数变量语句 & 表达式注释实例解析package mainimport "fmt"func main() { /* Go的第一个hello world */ fmt.Printf("hello world !!!")}我们这里简单分析一下package main定义包名。这个必须要首先知名该文件属于哪个包,pa.原创 2021-09-09 14:28:55 · 79 阅读 · 0 评论 -
GO语言入门 -(一)环境搭建
来探索一下GO语言的魅力吧简介Go 是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。Go是从2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持开发,后来还加入了Ian Lance Taylor, Russ Cox等人,并最终于2009年11月开源,在2012年早些时候发布了Go 1稳定版本。现在Go的开发已经是完全开放的,并且拥有一个活跃的社区。特色简洁、快速、安全并行、有趣、开源内存管理、数组安全、编译迅速环境搭建1.原创 2021-09-09 14:21:33 · 528 阅读 · 0 评论 -
Spring Boot 简单整合 fluent-mybatis 实现数据的增删改查
总是喜欢去关注更多的新框架,发现了一个基本上不用写mapper和xml的框架。让我们来研究一下这个框架吧。1. 新建Spring Boot项目1.1 pom.xml配置<properties> <java.version>1.8</java.version> <fluent-mybatis.version>1.6.13</fluent-mybatis.version></properties><dependenc.原创 2021-08-06 16:12:24 · 2100 阅读 · 0 评论 -
个人学习系列 - Spring Boot 自定义注解实现
研究一下自定义注解实现。新建Spring Boot项目1. pom.xml引入相关依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId></dependency><dependency> <groupId>org..原创 2021-06-28 17:51:31 · 122 阅读 · 0 评论 -
个人学习系列 - Spring Boot 实现线程池
现在由于系统越来越复杂,导致很多接口速度变慢,这时候就会想到可以利用线程池来处理一些耗时并不影响系统的操作。新建Spring Boot项目1. ExecutorConfig.xml新建线程池配置文件。@Configuration@EnableAsyncpublic class ExecutorConfig { private static final Logger logger = LoggerFactory.getLogger(ExecutorConfig.class); .原创 2021-06-17 14:08:01 · 437 阅读 · 0 评论 -
个人学习系列 - Spring Boot 整合 MongoDB 实现数据增删改查
MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。MongoDB安装因为我是简单整合一下,所以是将MongoDB安装到windows中。1. 官网下载安装包2. 直接傻瓜式安装2.1 选完整安装,自定义安装大佬随意。2.2 地址和安装方式选择2.3 可视化工具选择2.4 安装完毕3. 上手写代码3.1 先用Navicat连接上MongoDB连接上发现什么都没有,不用管,直接撸代码。3.2 新建Spring Bo.原创 2021-04-23 14:40:04 · 182 阅读 · 0 评论 -
个人学习系列 - 二维码生成
研究一下二维码的生成吧!1. 新建spring boot项目1.1 pom.xml<!-- 生成二维码依赖 --><dependency> <groupId>com.google.zxing</groupId> <artifactId>javase</artifactId> <version>3.4.1</version></dependency>1.2 新建.原创 2021-01-11 14:18:37 · 539 阅读 · 0 评论 -
个人学习系列 - Spring Boot使用RedisGeo实现位置查找功能
最近使用团油的时候总是觉得他的那个按照距离排序的功能很好,所以就试着研究一下。1. 新建spring boot项目1.1 pom.xml添加redis依赖和lombok依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId></dependen.原创 2020-12-22 14:14:19 · 571 阅读 · 0 评论 -
个人学习系列 - Spring Boot 集成 JApiDocs生成接口文档
之前使用Swagger来生成在线的接口文档,可是需要在代码中写入过多的注解,是在是麻烦。于是乎就找到JApiDocs来生成文档试试。。。1. 新建Spring Boot项目1.1 pom.xml<dependency> <groupId>io.github.yedaxia</groupId> <artifactId>japidocs</artifactId> <version>1.4.3</ver.原创 2020-10-13 14:30:12 · 567 阅读 · 0 评论 -
个人学习系列 - Spring Boot 使用 jasypt 进行加密操作
写项目的时候总是会害怕自己的数据库连接信息泄露,所以记录一下加密的方法。jasypt加密1. 引入Maven依赖<dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>jasypt-spring-boot-starter</artifactId> <version>3.0.3</version></de.原创 2020-10-13 11:13:02 · 119 阅读 · 0 评论 -
个人学习系列 - Spring Boot 集成 WebService
这几天在研究WebService,简单的整理一下吧。1. 搭建一个Spring Boot项目1.1 pom.xml添加cxf框架依赖<dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-spring-boot-starter-jaxws</artifactId> <version>3.4.0</version><.原创 2020-09-30 17:17:31 · 279 阅读 · 0 评论 -
个人学习系列 - Spring Boot 整合 UReport2
工作中总是需要生成各种各样的报表,麻烦的很。最近发现了一个UReport2,据说可以实现复杂的中国式报表,有点小激动。。。1. 新建springboot项目1.1 pom.xml<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId></dependency>.原创 2020-09-23 14:16:27 · 1227 阅读 · 2 评论 -
个人学习系列 - Spring Boot 整合 H2
每当有项目需要访问数据库的时候总是很苦恼,因为无论哪个数据库都比较庞大,运行起来也比较耗内存,有没有简单可以随项目启动的数据库吗?有,H2来了。。。1. 搭建Spirng Boot项目如果启动出现异常,就将中文注释去掉再启动即可。1.1 pom.xml<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter<.原创 2020-09-22 17:26:15 · 755 阅读 · 0 评论 -
个人学习系列 - Spring Boot整合screw实现数据库文档自动生成
有时候数据库文档需要整理,可是只能手动的复制粘贴,心中一万只草泥马奔腾而过。。。screw简洁好用的数据库表结构文档生成工具。1. 创建项目1.1 pom.xml<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope></de.原创 2020-09-22 13:52:02 · 549 阅读 · 0 评论 -
个人学习系列 - Spring Boot集成DelayQueue实现订单到期自动取消
最近在考虑购物网站上的未支付订单到期自动取消是怎么实现的,发现了一个DelayQueue队列可以实现,所以来整理一下。。。DelayQueuejava延迟队列提供了在指定时间才能获取队列元素的功能,队列头元素是最接近过期的元素。没有过期元素的话,使用poll()方法会返回null值,超时判定是通过getDelay(TimeUnit.NANOSECONDS)方法的返回值小于等于0来判断。1. 新建Spring Boot项目1.1 pom.xml<dependency> <.原创 2020-09-21 15:26:02 · 1599 阅读 · 4 评论 -
个人学习系列 - Spring Boot 集成 Swagger
恩,java后端开发的痛就是测试接口。以前都是启动项目用postman复制地址然后再添加参数,如果参数多的话真的是痛苦的经历,这里我要尝试一下Swagger了。。。Swagger简介Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。1. 新建Spring Boot项目1.1 pom.xml<dependency> <groupId>org.springframework.boot</groupId>.原创 2020-09-18 15:06:42 · 194 阅读 · 0 评论 -
个人学习系列 - Spring Boot 集成 https
最近都在用https了,可是我们创建一个springboot的项目还是用http,今天我们来看一下怎么将http变成https。。。1. 生成证书这里我们需要使用jdk自带的keytool命令生成证书并复制到我们项目的目录下。1.1 打开CMD打开我们安装的jdk的bin目录:1.2 使用keytool命令生成证书使用keytool命令生成证书:keytool -genkey -alias server(别名) -keypass 123456(别名密码) -keyalg RS.原创 2020-09-17 14:47:05 · 235 阅读 · 0 评论 -
个人学习系列 - 防止MySQL重复插入数据
在MySQL进行数据插入操作时,总是会考虑是否会插入重复数据,之前的操作都是先根据主键或者唯一约束条件进行查询,有就进行更新没有就进行插入。代码反复效率低下。新建表格CREATE TABLE `person` ( `id` int NOT NULL COMMENT '主键', `name` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT '姓名', `age` int NULL DEFA.原创 2020-09-17 09:50:31 · 268 阅读 · 0 评论 -
个人学习系列 - 各工具通过SSH下载代码
最近遇到用http下载代码是空的,所以需要通过ssh进行代码下载的问题,总结一下SourceTree和TortoiseGit两种工具配置密钥的方法。SourceTree1. 生成SSH通过git自带的工具生成SSH就可以了。2. 将key复制后配置到GitLab(或其他代码管理器中)3. 在SourceTree中配置key4. 添加远程仓库克隆/创建-配置源路径和目的路径。注意源路径格式:ssh://git@ip:/xx/xxxxx.git搞定!!!TortoiseGit.原创 2020-09-15 14:34:44 · 555 阅读 · 0 评论 -
个人学习系列 - Spring Boot 整合 QueryDSL
之前研究Jooq,今天来研究一下搭配JPA的QueryDSL吧。简介Querydsl是一个Java开源框架用于构建类型安全的SQL查询语句。它采用API代替拼凑字符串来构造查询语句。可跟 Hibernate 和 JPA 等框架结合使用。新建Spring Boot项目。。。还说啥?1. pom.xml<dependencies> <dependency> <groupId>org.springframework.boo.原创 2020-09-02 17:59:54 · 590 阅读 · 0 评论 -
个人学习系列 - Spring Boot整合Jooq
之前使用的都是Spring Boot + Mybatis或者Hibernate进行数据库相关的开发,可是这些框架对于联表查询等又不是很友好,最近发现了一个Jooq框架,据说很好用。。。搭建Spring Boot项目这个搭建方式我也就不在赘述了,不可能不会的吧?pom.xml文件<dependencies> <dependency> <groupId>org.springframework.boot</groupId.原创 2020-08-24 09:37:01 · 379 阅读 · 0 评论 -
个人学习系列 - Spring Boot + ShardingSphere + JPA 实现读写分离
最近想要学习一下分库分表,可是分库分表之前可以先用数据库的读写分离来过渡一下,当然这还需要主从服务器来配合。今天就先写数据库的读写分离,以后再介绍主从服务器。。。Mysql1. 新建三个数据库CREATE DATABASE database0;USE database0;DROP TABLE IF EXISTS `user`;CREATE TABLE `user`( id bigint(64) not null auto_increment, city varchar(20) not n.原创 2020-08-03 18:20:50 · 1067 阅读 · 0 评论 -
个人学习系列 - WebSocket与Spring Boot整合
WebSocket 是一种网络通信协议。它与HTTP协议最大的不同在于,HTTP协议做不到服务器主动向客户端推送信息。WebSocket其最大的特点在于:服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送技术的一种。Spring Boot项目搭建前面的步骤就不再赘述了,我们直接从pom.xml里面添加的依赖开始吧。1. pom.xml文件配置<dependency> <groupId>org.springfr.原创 2020-07-28 11:26:37 · 121 阅读 · 0 评论 -
个人学习系列 - Spring Boot使用Cache缓存
后端开发总是要保证数据返回的速度越快越好,可是数据库查询就是那么个速度,通过优化SQL和数据库配置都不是最合理的方法。所以今天我们来看一下缓存。Cache话说缓存,我们总是第一时间想到redis,可是最关键的是redis需要自己启动客户端,这就比较麻烦了。我们只是需要缓存简单的数据怎么办?springboot为我们想到了这个问题,于是默认添加了缓存ConcurrentMapCacheManager。1. 新建SpringBoot项目不再赘述,参考之前的文章即可2. 修改pom.xml文件&l.原创 2020-07-13 10:42:22 · 191 阅读 · 0 评论 -
个人学习系列 - SpringCloud项目搭建
一直想写springcloud的搭建教程,今天就来整理一下吧。搭建项目1. 创建一个空项目2. 填写相关的信息3. 新建项目后4. 搭建服务中心4.1 添加模块4.2 选择Spring Initializr方式创建4.3 填写相关的组和工件4.4 选择相关依赖4.5 确认好相关内容点击完成4.6 修改application.yml配置文件#eureka注册中心server: port: 8761 #端口号eureka: instance: h.原创 2020-07-07 16:01:55 · 142 阅读 · 0 评论 -
个人学习系列 - springboot防止重复提交
最近开发项目时候发现,有时候因为网络或者个人问题,会出现重复点击提交按钮的情况,这样有可能会在数据库生成两条数据,造成数据混淆。今天来谈一下如何解决这个问题。搭建springboot项目1. 选择新建项目2. 选择Spring Initializr3. 填写相关信息4. 选择web依赖5. 选择项目位置开始代码书写啦1. pom.xml文件依赖添加<dependency> <groupId>org.springframework.boot<.原创 2020-07-02 15:17:35 · 733 阅读 · 0 评论 -
个人学习系列 - Docker搭建Nginx
在docker中搭建一个nginx,然后进行简单的测试。nginx简介Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强。nginx搭建获取镜像查看镜像docker search nginx拉取镜像docker pull nginx查看下拉的镜像docker images启动镜像启动镜像docker run -d -p 8081:80 --n.原创 2020-06-08 13:23:38 · 185 阅读 · 0 评论 -
个人学习系列 - 基于Docker的Jenkins搭建
最近有用到这个项目部署工具,简单的整理一下。Jenkins简介Jenkins是一个开源的、提供友好操作界面的持续集成(CI)工具,起源于Hudson(Hudson是商用的),主要用于持续、自动的构建/测试软件项目、监控外部任务的运行(这个比较抽象,暂且写上,不做解释)。Jenkins用Java语言编写,可在Tomcat等流行的servlet容器中运行,也可独立运行。通常与版本管理工具(SCM)、构建工具结合使用。常用的版本控制工具有SVN、GIT,构建工具有Maven、Ant、Gradle。安装.原创 2020-06-03 16:36:16 · 167 阅读 · 0 评论 -
个人学习系列 - SpringBoot解决跨域问题
开发过程中总是会听说到跨域这个问题,一直没有详细的了解过,这里我就详细的梳理一下。源源(origin)就是协议、域名和端口号。同源策略同源策略是浏览器的一个安全功能,不同源的客户端脚本在没有明确授权的情况下,不能读写对方资源。所以xyz.com下的js脚本采用ajax读取abc.com里面的文件数据是会被拒绝的。同源策略限制了从同一个源加载的文档或脚本如何与来自另一个源的资源进行交互。这是一个用于隔离潜在恶意文件的重要安全机制。跨域URL由协议、域名、端口和路径组成,如果两个URL的协议、.原创 2020-05-28 11:24:32 · 1252 阅读 · 3 评论 -
个人学习系列 - 基于Docker的YApi搭建
作为一个后端开发的程序猿,面对自己写的接口总是愁困与前端进行交互,这时候发现了YApi如一缕曙光照射下来。。。YApi简介旨在为开发、产品、测试人员提供更优雅的接口管理服务。可以帮助开发者轻松创建、发布、维护 API。权限管理YApi 成熟的团队管理扁平化项目权限配置满足各类企业的需求可视化接口管理基于 websocket 的多人协作接口编辑功能和类 postman 测试工具,让多人协作成倍提升开发效率Mock Server易用的 Mock Server,再也不用担心 mock 数据的生.原创 2020-05-28 09:32:42 · 253 阅读 · 1 评论 -
个人学习系列 - Spring Boot整合JWT实现认证
如何确保用户真实登陆?超时重新登陆?JWT来了。什么是JWTJWT(Json Web Token),是一种工具,格式为XXXX.XXXX.XXXX的字符串,JWT以一种安全的方式在用户和服务器之间传递存放在JWT中的不敏感信息。为什么要用JWT设想这样一个场景,在我们登录一个网站之后,再把网页或者浏览器关闭,下一次打开网页的时候可能显示的还是登录的状态,不需要再次进行登录操作,通过JWT就可以实现这样一个用户认证的功能。当然使用Session可以实现这个功能,但是使用Session的同时也会增加.原创 2020-05-27 17:13:05 · 285 阅读 · 0 评论