![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
springboot实际应用
文章平均质量分 89
qq_39093474
这个作者很懒,什么都没留下…
展开
-
ShardingSphere-Sharding-Proxy
Sharding-Proxy是ShardingSphere的第二个产品,定位为透明化的数据库代理端,提供封装了数据库二进制协议的服务端版本,用于完成对异构语言的支持。目前先提供MySQL版本,它可以使用任何兼容MySQL协议的访问客户端(如:MySQL Command Client, MySQL Workbench等操作数据,对DBA更加友好。向应用程序完全透明,可直接当做MySQL使用适用于任何兼容MySQL协议的客户端。翻译 2024-05-14 00:14:10 · 294 阅读 · 0 评论 -
ShardingSphere-mysql 垂直分库
垂直分库,将业务上不相关,即不需要join操作的表划分到不同的库。翻译 2024-04-11 22:11:23 · 48 阅读 · 0 评论 -
ShardingSphere-ShardingSphere读写分离和数据脱敏
读写分离虽然可以提升系统的吞吐量和可用性,但同时也带来了数据不一致的问题,包括多个主库之间的数据一致性,以及主库与从库之间的数据一致性的问题。水平分片和读写分离联合使用,能够更加有效的提升系统性能, 下图展现了将分库分表与读写分离一同使用时,应用程序与数据库集群之间的复杂拓扑关系。在数据量不是很多的情况下,我们可以将数据库进行读写分离,以应对高并发的需求,通过水平扩展从库,来缓解查询的压力。读写分离是通过主从的配置方式,将查询请求均匀的分散到多个数据副本,进一步的提升系统的处理能力。原创 2024-04-09 21:45:42 · 869 阅读 · 0 评论 -
ShardingSphere-ShardingSphere基本介绍及核心概念
分布式数据库中间件(Distributed Database Middleware,检测DDM),是一款分布式关系型数据库,采用先进的存储计算分离架构,实现并发,计算,数据存储三个方面均可线性扩展,专注于解决数据库分布式扩展问题,突破了传统数据库的容量和性能瓶颈,实现海量数据高并发访问,其核心的优势是提供数据库水平扩展能力。翻译 2024-03-31 22:39:16 · 2842 阅读 · 0 评论 -
springboot集成Druid,配置详解新手必须读
Druid是Java语言中最好的数据库连接池。Druid能够提供强大的监控和扩展功能。Druid也是配置最简单使用最方便的一种连接池。Druid是阿里巴巴开源平台上的一个项目,整个项目由数据库连接池、插件框架和SQL解析器组成。该项目主要是为了扩展JDBC的一些限制,可以让程序员实现一些特殊的需求,比如向密钥服务请求凭证、统计SQL信息、SQL性能收集、SQL注入检查、SQL翻译等,程序员可以自由选择。翻译 2024-03-21 10:49:12 · 1846 阅读 · 0 评论 -
Redis整合Lua脚本
Lua是一种用C语言编写而成的轻量级的脚本语言。原创 2023-12-18 22:23:29 · 1436 阅读 · 0 评论 -
实践应用:Spring Boot优雅解决分布式限流
*** 自定义异常*/super(msg);super(msg);return msg;翻译 2023-08-27 15:41:03 · 345 阅读 · 0 评论 -
实践应用:Spring Boot轻松搞定重复提交(分布式锁)
在 实践应用:Spring Boot轻松搞定重复提交(本地锁) 一文中介绍了单机版的重复提交解决方案,在如今这个分布式与集群横行的世道中,那怎么够用呢,所以本章重点来了…单机版中我们用的是,但是这玩意存在集群的时候就凉了,所以我们还是要借助类似、 之类的中间件实现分布式锁。利用 自定义注解、、 实现分布式锁,你想锁表单锁表单,想锁接口锁接口….在 中添加上 、、 的依赖即可属性配置在 资源文件中添加 redis 相关的配置项CacheLock 注解创建一个 注解,本章内容都是实战使用过的,所以翻译 2023-08-23 22:40:14 · 266 阅读 · 0 评论 -
SpringBoot 解决跨域问题的 5 种方案!
跨域问题的本质是浏览器为了保证用户的一种安全拦截机制,想要解决跨域问题,只需要告诉浏览器“我是自己人,不要拦我”就行。通过注解实现局部跨域、通过配置文件实现全局跨域、通过 CorsFilter 对象实现全局跨域、通过 Response 对象实现局部跨域,通过 ResponseBodyAdvice 实现全局跨域。翻译 2023-08-16 11:08:43 · 8130 阅读 · 0 评论 -
实践应用:Spring Boot轻松搞定重复提交(本地锁)
字面意思就是提交了很多次,这种情况一般都是前端给你挖的坑….前段时间在开发中遇到一个这样的问题;前端小哥哥调用接口的时候存在 循环调用 的问题,正常情况下发送一个请求添加一条数据,结果变成了同一时刻并发的发送了 N 个请求,服务端瞬间懵逼的插入了 N 条一模一样的数据,前端小哥哥也不知道问题在哪里(恩…坑就这样挖好了,反正不填坑,气死你) 这时候咋办呢;后端干呗,反正脏活累活,背锅的事情也没少干了,多一件也不多….利用 自定义注解、Spring Aop、Guava Cache 实现表单防重复提交(不适用于分翻译 2023-08-14 22:55:05 · 326 阅读 · 0 评论 -
使用 Docker 部署 Spring Boot
Docker 技术发展为微服务落地提供了更加便利的环境,使用 Docker 部署 Spring Boot 其实非常简单,这篇文章我们就来简单学习下。首先构建一个简单的 Spring Boot 项目,然后给项目添加 Docker 支持,最后对项目进行部署。翻译 2023-08-11 10:06:59 · 99 阅读 · 0 评论 -
实践应用:Spring项目集成Lombok插件的优缺点分析
Lombok是一个很不错的Java库,它可以让你在少写代码的同时耍耍酷,简单的几个注解,就可以干掉一大片模板代码。但是,所有的源代码很多时候是用来阅读的,只有很少的时间是用来执行的 (你可以细品这句话)。接下来,我将用几个大家耳熟能详的场景,重演我们是如何掉入 Lombok 的戏法陷阱。翻译 2022-12-30 12:41:29 · 247 阅读 · 0 评论 -
实践应用:Spring Boot项目集成神器Lombok实践
先看一下它的官网英语懒得看?没关系。Lombok是一个很牛批的(本质是个Java库),项目里一旦引入了Lombok神器之后,你项目中所有诸如:对象的构造函数、equals()方法,属性的方法等等,这些没有技术含量的代码统统都不用写了,Lombok帮你搞定一切,全部帮你自动生成!听起来好像是挺不错…眼见为虚,代码为实,本文亲自尝试一下!翻译 2022-12-30 11:22:48 · 210 阅读 · 0 评论 -
Zookeeper客户端ZkClient、Curator的使用
本文主要介绍了操作Zookeeper的几种客户端的基础使用,希望对老铁们会有所帮助。可以去操作zookeeper创建、删除、查询、修改znode节点在原生Zk API中,提供了watcher的机制监听节点,而zkClient将之转换成Listener的概念,就是订阅服务端的事件,从而我们只要实现IZkChildListener 接口相应的方法就能够对事件进行处理。以上监听内容,摘自:zkClient的事件监听机制。翻译 2023-04-12 14:58:00 · 257 阅读 · 0 评论 -
Redisson分布式锁入门
我们先来看下 Redis 官网对分布式锁的说法:而 Java 版的 分布式锁的框架就是 Redisson。推荐大家去看一下人家github的文档,Redisson 官方Github文档在实战之前,我们先来看下使用 Redisson 的原理。下面的代码是单节点 Redis 的配置。// 配置 Config config = new Config();翻译 2023-04-10 14:12:51 · 128 阅读 · 0 评论 -
Spring Boot + Jpa + Thymeleaf 增删改查示例
这篇文章介绍如何使用 Jpa 和 Thymeleaf 做一个增删改查的示例。先和大家聊聊我为什么喜欢写这种脚手架的项目,在我学习一门新技术的时候,总是想快速的搭建起一个 Demo 来试试它的效果,越简单越容易上手最好。在网上找相关资料的时候总是很麻烦,有的文章写的挺不错的但是没有源代码,有的有源代码但是文章介绍又不是很清楚,所在找资料的时候稍微有点费劲。翻译 2023-03-29 23:06:11 · 358 阅读 · 0 评论 -
springboot集成Jpa
Jpa (Java Persistence API) 是 Sun 官方提出的 Java 持久化规范。它为 Java 开发人员提供了一种对象/关联映射工具来管理 Java 应用中的关系数据。它的出现主要是为了简化现有的持久化开发工作和整合 ORM 技术,结束现在 Hibernate,TopLink,JDO 等 ORM 框架各自为营的局面。值得注意的是,Jpa是在充分吸收了现有 Hibernate,TopLink,JDO 等 ORM 框架的基础上发展而来的,具有易于使用,伸缩性强等优点。翻译 2023-03-29 20:28:39 · 64 阅读 · 0 评论 -
springboot集成Thymeleaf
简单说,Thymeleaf 是一个跟 Velocity、FreeMarker 类似的模板引擎,它可以完全替代 JSP。Thymeleaf 在有网络和无网络的环境下皆可运行,即它可以让美工在浏览器查看页面的静态效果,也可以让程序员在服务器查看带数据的动态页面效果。这是由于它支持 html 原型,然后在 html 标签里增加额外的属性来达到模板+数据的展示方式。浏览器解释 html 时会忽略未定义的标签属性,所以 Thymeleaf 的模板可以静态地运行;翻译 2023-03-29 14:55:57 · 603 阅读 · 1 评论 -
springboot整合webSocket(看完即入门)
WebSocket是一种在单个TCP连接上进行全双工通信的协议。WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocket API中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。翻译 2023-03-28 23:09:19 · 147 阅读 · 0 评论 -
springboot集成xxl-job
xxl-job 出自大众点评,这是一个分布式轻量级的任务调度框架,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。xxl-job 通过一个中心式的调度平台,调度多个执行器执行任务,调度中心通过 DB 锁保证集群分布式调度的一致性,这样扩展执行器会增大 DB 的压力,然而大部分公司的任务数,执行器并不多;xxl-job 提供了非常好用的监控页面甚至还有任务失败的邮件告警功能。不同于 ElasticJob,xxl-job 在使用时依赖 MySQL,而不需要 ZooKeeper。翻译 2023-03-28 21:18:23 · 435 阅读 · 0 评论 -
SpringBoot集成Async
Configuration @EnableAsync // 开启线程池 public class TaskExecutePool {// 核心线程池大小 executor . setCorePoolSize(config . getCorePoolSize());// 最大线程数 executor . setMaxPoolSize(config . getMaxPoolSize());翻译 2023-03-19 22:57:30 · 203 阅读 · 0 评论 -
SpringBoot集成Redis
Redis是我们Java开发中,使用频次非常高的一个nosql数据库,数据以key-value键值对的形式存储在内存中。redis的常用使用场景,可以做缓存,分布式锁,自增序列等,使用redis的方式和我们使用数据库的方式差不多,首先我们要在自己的本机电脑或者服务器上安装一个redis的服务器,通过我们的java客户端在程序中进行集成,然后通过客户端完成对redis的增删改查操作。翻译 2023-03-19 16:12:00 · 3402 阅读 · 0 评论 -
SpringBoot集成swagger
swagger是当下比较流行的实时接口文文档生成工具。接口文档是当前前后端分离项目中必不可少的工具,在前后端开发之前,后端要先出接口文档,前端根据接口文档来进行项目的开发,双方开发结束后在进行联调测试。所以接口文档其实就是开发之前双方之间的一种约定。通常接口文档分为离线的和实时的。离线的接口文档工具有: word(相当于没说), YAPI, 小幺鸡等,这种文档需要程序员在上面编写,也一般具备接口测试功能。通常是由开发人员先在离线接口文档上编写信息,然后交给前端人员参照开发。翻译 2023-03-17 22:20:56 · 1063 阅读 · 0 评论 -
实践应用:Spring Boot项目集成邮件服务
发送邮件应该是网站的必备功能之一,什么注册验证,忘记密码或者是给用户发送营销信息。最早期的时候我们会使用 JavaMail 相关 api 来写发送邮件的相关代码,后来 Spring 推出了 JavaMailSender 更加简化了邮件发送的过程,在之后 Spring Boot 对此进行了封装就有了现在的 spring-boot-starter-mail ,本章文章的介绍主要来自于此包。翻译 2023-03-08 23:22:17 · 2099 阅读 · 0 评论 -
实践应用:基于Spring Boot实现图片上传/加水印一把梭操作
很多网站的图片为了版权考虑都加有水印,尤其是那些图片类网站。自己正好最近和图片打交道比较多,因此就探索了一番基于。之后我们再去项目的资源目录下查看上传的。我们在该控制器代码中将上述的。方法,代码后面写有详细解释。方法,代码后面写有详细解释。翻译 2023-01-04 21:15:20 · 582 阅读 · 0 评论 -
实践应用:Spring Boot热部署加持
进行SpringBoot的Web开发过程中,我们很多时候经常需要重启Web服务器才能保证修改的源代码文件、或者一些诸如xml的配置文件、以及一些静态文件生效,这样耗时又低效。所谓的热部署指的是我们不需要重启Web Server就可以保证各项文件修改的立即生效。下面便来介绍一下在IDEA中进行SpringBoot的Web开发时如何加入热部署的支持。这里我们是使用来帮助完成这个事情,其是一个为开发者服务的模块,可以实现SpringBoot热部署。其机理就是会监听classpath。翻译 2022-12-31 15:50:22 · 110 阅读 · 0 评论 -
实践应用:Spring Boot高效数据聚合之道
实际为了客户端网络性能考虑, 往往会在一次网络请求中, 尽可能多的传输数据, 当然前提是这个数据不能太大, 否则传输的耗时会影响渲染. 许多APP的首页, 看着复杂, 实际也只有一个接口, 一次性拉下所有数据, 客户端开发也简单.接口开发是后端开发中最常见的场景, 可能是RESTFul接口, 也可能是RPC接口. 接口开发往往是从各处捞出数据, 然后组装成结果, 特别是那些偏业务的接口.有了注解,再结合 Spring 依赖自动注入的思想,那么我们可不可以通过注解的方式,自动注入依赖,自动并行调用接口呢?翻译 2022-12-31 14:04:20 · 307 阅读 · 0 评论 -
实践应用:Spring Boot项目部署于外置Tomcat容器
SpringBoot平时我们用的爽歪歪,爽到它自己连Tomcat都自集成了,我们可以直接编写SpringBoot启动类,然后一键开启内置的Tomcat容器服务,确实是很好上手。但考虑到实际的情形中,我们的Tomcat服务器一般是另外部署好了的,有专门的维护方式。此时我们需要剥离掉SpringBoot应用内置的Tomcat服务器,进而将应用发布并部署到外置的SpringBoot容器之中,本文就实践一下这个。翻译 2022-12-30 13:58:22 · 730 阅读 · 0 评论 -
实践应用:Spring Boot项目集成Ehcache缓存
EhCache是一个纯Java的进程内缓存框架,具有快速、精干等特点,是 Hibernate 中默认。Ehcache是一种广泛使用的开源 Java 分布式缓存。主要面向通用缓存,Java EE 和轻量级容器。它具有内存和磁盘存储,缓存加载器,缓存扩展,缓存异常处理程序,一个 gzip 缓存 servlet 过滤器,支持 REST 和 SOAP api 等特点。翻译 2022-12-29 22:17:14 · 447 阅读 · 2 评论 -
实践应用:Spring Boot项目集成Mybatis-Plus
MyBatis的增强方案确实有不少,甚至有种感觉是现在如果只用 “裸MyBatis”,不来点增强插件都不好意思了。这不,在上一篇文章《》 中尝试了一下 MyBatis Generator。这次来点更加先进的 Mybatis-Plus,SQL语句都不用写了,分页也是自动完成,嗯,真香!翻译 2022-12-29 17:10:37 · 443 阅读 · 0 评论 -
实践应用:Spring Boot项目集成MyBatis Generator进行数据层代码自动生成
(简称MBG) 是一个用于MyBatis和iBATIS的代码生成器。它可以为MyBatis的所有版本以及2.2.0之后的iBATIS版本自动生成ORM层代码,典型地包括我们日常需要手写的POJO、mapper xml以及mapper接口等。自动生成的ORM层代码几乎可以应对大部分CRUD数据表操作场景,可谓是一个生产力工具啊!翻译 2022-12-28 19:14:00 · 297 阅读 · 0 评论 -
实践应用:Spring Boot项目集成jasypt-spring-boot加密组件
如果不愿意使用jasypt默认提供的ENC来标记加密字段,完全可以换成自定义的前后缀标记,比如我想换成上文实验加密时,使用的是默认的加密规则,这一点会让当自定义加密密钥泄漏时可能变得不安全。为此我们可以自定义加密规则。自定义加密规则非常简单,只需要提供自定义的加密器配置类即可,比如我这里自定义一个名为} }注意这里Bean的名字name是需要显式指定的(默认的名字是),如果像这里一样用的自定义名字,则还需要在的配置文件中来指定bean。翻译 2022-12-25 20:45:45 · 1320 阅读 · 0 评论 -
封装一个流水号ID生成器:id-spring-boot-starter
ID)是服务端系统的基础设施,而且ID号这个东西基本搞后端开发的程序员天天都要接触。而关于ID生成的算法现在业界首屈一指的当属Snowflake雪花算法。正是百度开源的一款基于Snowflake雪花算法实现的高性能唯一ID生成器。在本号前文中已经详细使用过,但使用过程还是比较繁杂,还需要自己去引组件的源码,感觉有点不方便。为此本文基于,再来封装一套更利于SpringBoot项目使用的 ID号生成组件,命名为,一看名字就知道是开箱即用的。翻译 2022-12-25 13:53:09 · 329 阅读 · 0 评论 -
看完这篇,别人的开源项目结构应该能看懂了
如果从一个用户访问一个网站的情况来看,对应着上面的项目代码结构来分析,可以贯穿整个代码分层:对应代码目录的流转逻辑就是:我想,应该看得比较清楚了吧。所以,以后每当我们拿到一个新的项目到手时,只要按照这个思路去看别人项目的代码,应该基本都是能理得顺的。翻译 2022-12-24 19:41:49 · 130 阅读 · 0 评论 -
实践应用:Spring Boot项目传参校验最佳实践
假如你现在在做一个成绩录入系统,你愉快地用框架写了一个后台接口,用于接收前台浏览器传过来的Student对象,并插入后台数据库。我们将传入的Student然后写一个Post请求的后台接口,来接收网页端传过来的Student此时我想你一定看出来了上面这段,因为我们并没有对传入的Student对象做任何Student对象里三个字段的某一个忘传了,为null怎么办?Student的score分数,假如写错了,写成101分怎么办?Student的mobile11位手机号码,假如填错了,多写了一位怎么办?…等等。翻译 2022-12-24 11:18:42 · 168 阅读 · 0 评论 -
实践应用:Spring Boot项目集成全局唯一ID生成器UidGenerator
流水号生成器(ID)是服务化系统的基础设施,其在保障系统的正确运行和高可用方面发挥着重要作用。而关于流水号生成算法首屈一指的当属 Snowflake雪花算法,然而 Snowflake本身很难在现实项目中直接使用,因此实际应用时需要一种可落地的方案。UidGenerator 由百度开发,是Java实现的, 基于 Snowflake算法的唯一ID生成器。翻译 2022-12-23 13:59:32 · 2158 阅读 · 0 评论