springboot
文章平均质量分 92
springboot
aabond
这个作者很懒,什么都没留下…
展开
-
SpringBoot学习小结之RocketMQ
在当今互联网时代,随着数据规模和业务复杂度的不断增长,分布式消息中间件作为实现系统解耦、异步通信和削峰填谷的重要工具,扮演着越来越关键的角色。而在众多的消息中间件中,Apache RocketMQ 以其出色的性能、高可用性和可扩展性,成为了许多企业构建分布式系统的首选之一。RocketMQ 是一种开源分布式消息队列系统, 由阿里巴巴集团开发并在2012年开源,现已成为 Apache 软件基金会的顶级项目之一。原创 2024-05-26 10:18:30 · 732 阅读 · 0 评论 -
SpringBoot学习小结之滑块验证码生成库tianai-captcha
最近发现一个有趣的 Java 验证码库,能够生成各种行为验证码:滑块、旋转、点选验证码。github: https://github.com/tianaiyouqing/tianai-captchapom原创 2022-12-19 08:30:00 · 3329 阅读 · 5 评论 -
Java并发之线程池
在高并发的 Java 程序设计中,编写多线程代码可以最大限度发挥现代多核处理器的计算能力,提升系统的吞吐和性能。线程是多线程代码的基础工具,但不能无限制增加线程的数量,线程的创建和销毁、所占内存都要消耗系统资源,如果处理不当,可能会导致 OOM,并且大量线程的回收也会给 GC 带来压力,延长停顿时间。在并发环境下,系统不能够确定在任意时刻中,有多少任务需要执行,有多少资源需要投入。为解决资源分配这个问题,线程池采用了“池化”(Pooling)思想。原创 2022-11-23 21:03:06 · 928 阅读 · 0 评论 -
Java开源工具库使用之java源代码生成库JavaPoet
JavaPoet是一个用于生成 .java 源代码文件的 Java API。截止博客发表为止,整个项目核心源码就17个类文件,github上却有 9.9k stars,可谓短小精悍。javapoet 实现了自动导包和语句分号添加,代码流程控制,代码格式化等功能,很方便开发者生成一些模板代码原创 2022-10-17 11:45:00 · 1411 阅读 · 0 评论 -
SpringBoot学习小结之数据库版本管理工具Flyway
flyway 是一款数据库迁移工具,你也可以把它看成是一款数据库版本管理工具。2010年,Axel Fontaine 创建了 flyway ,2019 年 flyway 被 Redgate 收购,flyway 后面也分为 Community edition (开源社区版) 和 Teams edition (商业版) ,一些高级功能(如 Undo )只能在商业版中使用,对于基本的数据迁移,开源的版本也够用了。...原创 2022-08-15 17:17:25 · 1121 阅读 · 0 评论 -
SpringBoot学习小结之分库分表、读写分离利器Shardingsphere
从官网上可以看到Apache ShardingSphere 是一款开源分布式数据库生态项目,旨在碎片化的异构数据库上层构建生态,在最大限度的复用数据库原生存算能力的前提下,进一步提供面向全局的扩展和叠加计算能力。其核心采用可插拔架构,以数据库协议及 SQL 方式提供诸多增强功能,包括数据分片、访问路由、数据安全等。Apache ShardingSphere 由JDBC、Proxy和Sidecar(规划中) 3 款产品组成。项目的线路规划和时间历程如下图。...原创 2022-08-09 11:16:31 · 375 阅读 · 0 评论 -
SpringBoot学习小结之Swagger
Swagger API 项目最初由 Wordnik 的技术联合创始人 Tony Tam 于 2011 年创建,主要针对在 Wordnik 的产品开发过程中API 文档自动化和客户端 SDK 生成的需求。设计师/开发人员 Zeke Sikelianos 创建了 Swagger 这个名字,Swagger API 项目于 2011 年 9 月开源。2015 年 11 月,维护 Swagger 的公司宣布在Linux基金会的赞助下,创建了一个名为OpenAPIInitiative。...原创 2022-08-02 18:39:11 · 214 阅读 · 0 评论 -
SpringBoot学习小结之MyBatisPlus
在使用Mybatis时,最先开始的事情就是实体类对应的增删改查代码的编写,而且还不能省略,你不知道下个需求需不需要这个方法。几乎每个表都需要编写一套最基本的增删改查方法,主要就是DAO接口和mapper.xml文件的编写,如果表中的字段进行了修改,那么实体类,mapper文件甚至DAO接口都要进行修改,这样比较麻烦。虽然有MyBatisGenerator这样的插件在,可以自动生成,但是会覆盖自定义的方法。有没有类似JPA那样不用编写sql语句的框架库呢?有的,...原创 2022-07-25 09:45:00 · 173 阅读 · 0 评论 -
SpringBoot学习小结之mapstruct
Java bean映射框架有很多,在之前我已经有一篇博文介绍了dozer, 它也是一个优秀的映射框架,但是作者已经不再维护了,不过作者在readme里推荐了另一个类似的框架 mapstruct ,所以准备开始学习它。 根据官网介绍,mapstruct 是一个Java注解处理器,用于为Java bean类生成类型安全和性能良好的映射类。使用 mapstruct ,只需要定义一个 Mapper 接口,声明需要映射的方法,在编译过程中,mapstruct 会自动生成该接口的实现类,实现将源对象映射到目标对象原创 2022-07-17 18:54:00 · 515 阅读 · 0 评论 -
SpringBoot学习小结之Dubbo
在互联网的发展过程中,在以前,我们只需要一个服务器,将程序全部打包好就可以,但是,随着流量的增大,常规的垂直应用架构 已无法应对,所以,架构就发生了演变,从单体应用转向分布式、微服务架构。dubbo正是一款微服务开发框架,它提供了 RPC通信 与 微服务治理 两大关键能力。单一应用架构当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。此时,用于简化增删改查工作量的数据访问框架(ORM)是关键。垂直应用架构当访问量逐渐......原创 2022-07-11 23:06:51 · 202 阅读 · 0 评论 -
SpringBoot学习小结之权限控制Shiro
Shiro是 Apache下一个功能强大、灵活的轻量级java开源安全框架,可用来实现用户身份验证、权限授权、session管理和密码加密等功能。下图是Shiro的重点主要概念支持功能身份验证和授权功能具有可插拔性和灵活性,方便开发人员自定义自己的角色权限规则shiro和Spring Security对比1.2 实体类2.3 Dao2.4 Controller2.5 配置web配置Shiro配置全局异常处理2.6 Realm2.7 自定义注解LoginUse原创 2022-06-12 20:30:00 · 1278 阅读 · 0 评论 -
SpringBoot学习小结之测试
前言测试包含以下四种类型单元测试(Unit Test)指对程序中的最小可测试单元进行验证。进行单元测试,可以尽早地发现编写代码中错误,减少后期测试开销和维护成本,提高软件质量集成测试(Integration Test)集成测试是在单元测试的基础上,将所有已通过单元测试的模块按照概要设计的要求组装为子系统或系统,并进行测试的过程。实践表明,一些模块虽然能够单独地工作,但并不能保证连接起来也能正常的工作。一些局部反映不出来的问题,在全局上很可能暴露出来系统测试(System Test)原创 2022-05-31 22:30:00 · 582 阅读 · 0 评论 -
SpringBoot学习小结之参数校验
前言 在日常的开发中,后端经常会对前端传来的参数进行校验,这会导致大量的重复代码出现在后台代码中,会让我们的代码显得很臃肿 这种对数据验证很常见,在JSR(Java Specification Requests)中就有一项JSR-303专门用来处理这种情况,它是针对在Java EE and Java SE中对Java Bean validation的提案,目标是为Java应用程序开发人员提供类级约束声明和验证工具,以及约束元数据 repository和 query API JSR-303只提供了原创 2022-05-28 00:05:44 · 1190 阅读 · 0 评论 -
SpringBoot学习小结之Elasticsearch
一、Elasticsearch1.1 用途Elasticsearch 是一个基于Apache Lucene,分布式、RESTful 风格的搜索和数据分析引擎。根据官方文档,ES经常用于以下几方面全文本搜索。这是最常见,也是最基本的用途,对系统内部文本数据进行搜索,可实现关键字搜索。收集和分析日志或事务数据。可以使用ELK(Elasticsearch + Logstash + Kibana)完成此项功能。对系统进行监视和可视化。官方下载地址:https://www.elastic.co/cn原创 2022-05-19 17:02:53 · 717 阅读 · 0 评论 -
SpringBoot学习小结之JPA
前言 JPA (Java Persistence API),最初于 2006 年 5 月 11 日发布,是一个为 Java 开发人员提供ORM的Java 规范,用于管理 Java 应用程序中的关系数据 JPA 是规范,Hibernate是实现。在springboot-data-jpa中,底层使用了 Hibernate 的 JPA 技术实现一、基本使用下面演示在Springboot中如何使用Jpa,pom如下<parent> <groupId>org.spring原创 2022-05-10 00:12:15 · 923 阅读 · 0 评论 -
SpringBoot小结之MyBatis
前言Mybatis是一款优秀的Java ORM框架,它是对传统JDBC编程的增强ORM(Object Relational Mapping)对象关系映射,就是数据库的表与POJO(plain old Java object)两者映射JDBC(Java Database Connectivity)Java数据库连接,它是API,定义了Java 程序如何访问数据库。最早在SUN公司在1997发布的JDK1.1就包含它,java.sql 和 javax.sql这两个包就包含相关类传统的JA原创 2022-04-26 00:47:00 · 296 阅读 · 0 评论 -
SpringBoot学习小结之IOC
前言IOC,全称Inversion of Control,中文名控制反转,是Spring框架的基石。Spring 发展至今,家族越来越庞大,有SpringBoot提供一站式开发,SpringCloud微服务开发等等,各种框架提供了各种各样的功能。例如:使用SpringMVC,自定义一个类,添加@Controller,@RequstMapping注解就能实现接收HTTP请求,其底层原理就是IOC。IOC可以用于对象之间的解耦。它还有个别名,依赖注入(DI), DI是实现控制反转的方式。程序原创 2020-09-07 22:35:57 · 508 阅读 · 0 评论 -
SpringBoot学习小结之AOP
一、概述AOP,全称 Aspect Oriented Programming,中文名面向切面编程。AOP是通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技术。AOP是传统OOP的一种延续和增强,使用AOP可以降低了业务之间的耦合,提高了代码的灵活性和可拓展性。AOP在Java中比较有名的实现有AspectJ 和Spring AOPAspectJ是eclipse名下的一个子项目,可以说是AOP在Java中最早也最全面的实现。AspectJ提供原创 2020-08-02 21:50:18 · 396 阅读 · 0 评论 -
SpringBoot学习小结之EasyExcel
前言java处理excel表格常用的框架库有: jxl,POI, EasyExcel,EasyPoi, hutool。jxl , 韩国人开发的一套解析excel Java库,不支持xlsx。09年后一直没有更新,功能比较少。POI,apache提供的一套java解析office工具,包含excel。我之前有一篇博文介绍了一些POI中关于Excel API使用EasyExcel,阿里开源的JAVA解析Excel工具,对于POI解析耗内存进行了优化EasyPoi,对POI进行封装的一套工具库,简化原创 2020-07-30 20:34:15 · 4769 阅读 · 7 评论 -
SpringBoot学习小结之定时任务
一、Spring自带定时任务Spring自带定时任务相关类位于spring-context包1.1 注解@Scheduled标记方法定时执行。所标记的方法必须没有参数,返回值会被忽视。以下属性必须满足一个:cron 支持cron表达式,不支持year字段fixedDelay 上次调用结束和下次调用开始间隔时间,单位毫秒fixedDelayString 支持毫秒字符串、占位符、符合java.time.Duration解析的字符串fixedRate 上次调用开始和下次调用开始间隔时间,原创 2020-07-23 12:18:14 · 559 阅读 · 0 评论 -
SpringBoot学习小结之Dozer
前言Dozer是一个Java Bean到Java Bean的Mapper,可将数据从一个对象递归复制到另一个对象。Dozer支持简单属性、复杂属性映射,Java中常见集合相互映射和递归映射。Dozer可以看做是一个对象属性拷贝工具,适用于模型转换,同样的工具还有很多,例如Cglib的BeanCopier、Apache 的PropertyUtils、Spring的BeanUtils。Dozer与上述工具相比,最大的优势就是支持不同名属性映射。当然,最大的劣势就是性能差。这里附上一张其他博主做性能测试的表原创 2020-07-20 18:47:27 · 1252 阅读 · 2 评论 -
SpringBoot学习小结之缓存
前提使用缓存的好处有:在一个系统中,数据库中经常会有一些不怎么变动的数据,举个栗子:省市信息,不会经常变动。还有一些经过数据库耗时计算得到的结果,也可以存入缓存。使用缓存的主要好处就是减少数据库操作,减轻了数据库压力,提升系统性能。由于用户请求和数据库之间增加了缓存这一层,而缓存数据处于内存中,相比较而言数据库是读取磁盘文件,速度自然比缓存慢。使用缓存大大提高了系统对请求的响应速度,提升用户感知。缓存是支持高并发的主要策略坏处有:缓存是以空间换时间的策略,大量使用会占用大量内存高并发情况原创 2020-06-08 22:03:41 · 354 阅读 · 0 评论 -
SpringBoot学习小结之多数据源
SpringBoot学习小结之多数据源本文针对在Springboot使用多数据源的情况下, 满足分布式事务进行总结一、多数据源1. 数据库使用mysql数据库,这里有分别位于两个数据库的两张表student.student, teacher.teacher, SQL语句如下create database student;use student;-- ---------------...原创 2019-12-17 16:44:18 · 234 阅读 · 1 评论 -
SpringBoot学习小结之打包及windows注册服务自启动
SpringBoot 项目打包及注册windows服务自启动一、项目打包maven打包命令为mvn package, 打包去除测试为mvn package -DskipTests。项目可以打包成jar或war两种方式。jar包一个普通的springboot项目pom文件如下,包含了spring-boot-maven-plugin这个插件,能够将依赖包都加进最终生成的jar包里,并且能够直...原创 2019-11-22 22:52:18 · 252 阅读 · 0 评论 -
SpringBoot学习小结之SpringMVC处理流程
SpringBoot学习小结之SpringMVC前言所用SpringBoot版本为2.1.6.RELEASE,相对应的Spring版本为5.1.8.RELEASE<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http:...原创 2019-10-17 20:16:42 · 379 阅读 · 0 评论