首页 > 技术专题 > SpringBoot
-
SpringBoot中如何优雅的使用多线程
在 SpringBoot 应用中,经常会遇到在一个接口中,同时做事情1,事情2,事情3,如果同步执行的话,则本次接口时间取决于事情1 2 3执行时间之和;如果三件事同时执行,则本次接口时间取决于事情1 2 3执行时间最长的那个,合理使用多线程,可以大大缩短接口时间。那么在 SpringBoot 应用中如何优雅的使用多线程呢?Don't bb, show me code.快速使用...
-
实践:把Springboot项目配置迁移至 Apollo 配置管理中心
导读:由于配置日益增多不方便管理且期望配置修改实时生效,因此笔者决定部署一个配置中心,经过分析对比之后决定采用携程开源的 Apollo 配置管理中心。本文分享笔者基于 Apollo 提供 quick start 搭建服务端,并将一个多环境配置的 Springboot 项目迁移至 Apollo 的实践,希望对各位熟悉 Apollo 有所帮助。本地部署 Apollo为了方便用户体验...
-
SpringBoot数据源配置原理
在数据库访问过程中,“数据源”无疑是最重要的概念之一,它不仅可以对与数据库访问相关的各种参数进行封装和统一管理,还可以管理数据库连接池,提高数据库连接性能。目前,在市面上有很多优秀的开源数据源,例如DBCP、C3P0、Druid、HikariCP等等。在SpringBoot2.x中,则采用目前性能最佳的HikariCP作为其默认数据源。接下来,我们就来具体介绍下SpringBo...
-
SpringBoot的核心注解
前言springboot的核心就是注解。springboot通过各种组合注解,极大地简化了spring项目的搭建和开发。在springboot中有一些注解是其中的关键,必须掌握。@Configuration@Configuration并不是一个新的注解,在Spring3.0时已经存在了。@Configuration用于定义配置类,可替换xml配置文件,被注解的类内部包含有一个或...
-
Spring Security 两种资源放行策略,千万别用错了
事情的起因是这样,有小伙伴在微信上问了一个问题:就是他使用 Spring Security 做用户登录,等成功后,结果无法获取到登录用户信息,松哥之前写过相关的文章(奇怪,Spring Security 登录成功后总是获取不到登录用户信息?),但是他似乎没有看懂。考虑到这是一个非常常见的问题,因此我想今天换个角度再来和大伙聊一聊这个话题。Spring Security 中,到底...
-
浅谈SpringBoot自动装配
说在前面我们都知道Ioc和AOP是Spring的两大核心特性,而近年来随着SpringBoot的越来越“智能”化,开发人员使用SpringBoot的也越来越多,那SpringBoot帮我们做了什么,又有哪些特性呢?SpringBoot的特性创建独立的Spring应用;直接嵌入Tomcat、Jetty或Undertow等Web容器(不需要部署WAR文件);提供固化的“starte...
-
springboot项目注册为windows系统服务并设置开机自启
springboot项目注册为windows系统服务并设置开机自启关于springboot项目的部署与SSM(框架)部署war包到Tomcat下有所不同,比较明显的是springboot打包为jar包,运行则是执行通过java -jar xxx.jar,不再需要放置在Tomcat下面运行。关于springboot项目部署相对于之前简化了一些步骤,只需要在服务器中安装好jdk环境...
-
Springboot中接口参数校验N种方法你会几个?
环境:springboot2.2.10.RELEASESpring Validation验证框架对参数的验证机制提供了@Validated(Spring's JSR-303规范,是标准JSR-303的一个变种),javax提供了@Valid(标准JSR-303规范),结合BindingResult对象可以直接获取错误信息。JSR是什么?JSR是Java Specificatio...
-
SpringBoot咋使用PageHelper实现数据分页?
前言我们在做页面查询的时候由于页面无法一次性展示所有的数据,所以采用一种分段式的展示策略—分页查询,实现分页查询的方式有很多种方式,比如sql中的limit,mybatisplus带的分页插件等等,这里我们介绍一下如何在SpringBoot中使用PageHelper插件实现分页查询。正文PageHelperPageHelper是针对MyBatis最方便的分页插件PageHelp...
-
分布式事务2阶段提交理论的落地方案seata的项目实战演示
背景看过我上一篇文章的小伙伴应该对seata 项目有了一个大概的认识,这一篇我就拿实际案例用户下订单->扣减库存->扣减用户余额,来演示。前期准备下载好seata-server 本示例以1.4.0版为例业务系统: 订单系统 仓储系统 用户系统所用框架 springboot , mybaits, httpclient项目调用结构实战引入jar包,spring-clou...
-
SpringBoot自动配置原理及手动实现自动配置
前言之前我们学习了SpringBoot中的配置文件及外部化配置,了解了SpringBoot对于配置文件的功能支持与增强,本篇我们将要来学习SpringBoot的自动配置原理及手动实现自动配置。数据库依赖引起的bug我们很多人在第一次使用SpringBoot的时候,往往对其原理认知不足,或者简单的了解以后就开始入门使用,往往最常见的就是使用SpringBoot添加一个持久化框架的...
-
SpringBoot 2.3.x分层构建Docker镜像实践
目录什么是镜像分层SpringBoot 2.3.x 新增对分层的支持创建测试的 SpringBoot 应用Maven 中引入相关依赖和插件创建测试的 Controller 类创建 SpringBoot 启动类创建两种构建镜像的 Dockerfile 脚本普通镜像构建脚本文件 dockerfile-number分层镜像构建脚本文件 dockerfile-layer使用两种 Doc...
-
Springboot jar中如何替换里面的class文件.
第一步 : 解压jar 创建bak 文件夹 cd bak jar xf lm.jar 第二步: 替换对应的class 文件,路径不能搞错 新文件 老文件 cp com/a.class com/a.class第三部: 在当前目录下执行: 进入bak 目录.执行下面的命令.jar -cvfM0 organize.jar BOOT-INF/ META-INF/ org/
-
SpringBoot集成Spring Security
1、Spring Security介绍Spring security,是一个强大的和高度可定制的身份验证和访问控制框架。它是确保基于Spring的应用程序的标准 ——来自官方参考手册Spring security 和 shiro 一样,具有认证、授权、加密等用于权限管理的功能。和 shiro 不同的是,Spring security拥有比shiro更丰富的功能,并且,对于Spr...
-
掌握SpringBoot-2.3的容器探针:深入篇
前文回顾本文是《掌握SpringBoot-2.3的容器探针》系列的第二篇,前文知道了kubernetes的存活和就绪探针,以及SpringBoot-2.3的actuator新增的两个endpoint,当我们把应用部署到kubernetes环境时,这些知识让我们能配置出官方推荐的探针方案,如下图:尽管上述配置已经可以覆盖多数场景,依然有三个问题未解决:首先,SpringBoot为...
-
Springboot整合工作流引擎Activiti(一)
环境:Springboot2.2.11.RELEASE + Activiti7.1.0.M6 + MySQL环境说明:不要通过如下方式引包:<dependencyManagement> <dependencies> <dependency> <groupId>org.activiti.dependencies&l...
-
SpringBoot2.x拥抱本地缓存之王Caffeine
环境配置:JDK 版本:1.8Caffeine 版本:2.8.0SpringBoot 版本:2.2.2.RELEASE一、本地缓存介绍缓存在日常开发中启动至关重要的作用,由于是存储在内存中,数据的读取速度是非常快的,能大量减少对数据库的访问,减少数据库的压力。之前介绍过 Redis 这种 NoSql 作为缓存组件,它能够很好地作为分布式缓存组件提供多个服务间的缓存,但是 Red...
-
Lombok在SpringBoot项目的中使用
SpringBoot结合Lombok整合对象我们之前介绍MyBatis Plus,AOP实现日志接口以及Swagger-UI等文章中都是使用了Lombok,可能有些人不是很了解Lombok,下面我们来介绍一下Java中的Lombok库。Lombok介绍Lombok是一个用于简化Java开发的,他的作用是自动插入编辑器和构建工具。通过注解方式,实现getter、setter、eq...
-
你们要的SpringBoot+JWT来了
什么是JWTJson Web Token (JWT)是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准(RFC 7519)该token被设计为紧凑且安全的 特别适用于分布式站点的单点登录(SSO)场景随着JWT的出现 使得校验方式更加简单便捷化JWT实际上就是一个字符串 它由三部分组成:头部 载荷和签名用[.]分隔这三个部分 最终的格式类似于:xxxx.xxxx....
-
细说SpringBoot的自动装配原理
1.什么是SpringBoot? 对于spring框架,我们接触得比较多的应该是spring mvc、和spring。而spring的核心在于IOC(控制反转对于spring框架来说,就是由spring来负责控制对象的生命周期和对象间的关系)和DI(依赖注入IoC的一个重点是在系统运行中,动态的向某个对象提供它所需要的其他对象。这一点是通过DI(Dependency Inje...
-
springboot2整合vue开发在线音乐网站系统设计
springboot+vue的前后端分离项目后台主要分为:用户管理、歌手管理、歌单管理用户在前端可以搜索歌曲名字、播放歌曲(如果上传了歌词,点击歌曲图片,可以显示歌词),可以评论歌曲,给歌曲评分等用户还可以设置自己的信息,上传头像。不过,歌曲取消收藏模块有点问题运行环境jdk7(8)+mysql+IntelliJ IDEA+maven项目技术(必填)springboot+vue...
-
自定义SpringBoot默认MVC配置?好几个坑,避一避
前言前些天,在项目实践过程中出现了一个奇怪的状况,Spring Boot 的参数绑定失效了。而起因只是因为同事把参数上的 @RequestParam 注解去掉了。我们都知道,如果参数名称和 Controller 的方法名相同时,根本不需要 @RequestParam 注解的,Spring Boot 会自动帮我们完成参数的绑定。但为什么自动绑定机制失效了呢?本篇文章会为大家揭开谜...
-
搭建mysql主从并用springboot读写分离
本文通过docker快速搭建mysql主从数据库,并用spring boot测试读写分离的实现,这是一个实验环境,便于开发人员开发业务功能代码。一、用docker进行msyql主从环境搭建在搭建环境之前保证已安装docker,本文不进行docker安装的介绍。1、安装master结点执行下面安装docker run --name mysql-master --privilege...
-
springboot 项目之默认全局异常拦截
在web项目中,不可避免地会出现系统异常,例如资源找不到的404错误,服务器异常的5**错误,如果对这些异常不进行任何处理,则是非常不友好的。今天就对springboot项目中的异常拦截处理进行一个简单的使用说明。这里我使用的是springboot默认的异常拦截,也就是新建一个BasicErrorController类继承BasicErrorController。默认异常拦截在...
-
搭建私有Sentry日志收集系统并集成到springboot
SentrySentry是一种由Python编写的跨平台程序监控应用, 可以帮助你实时监控和修复崩溃,主要关注错误报告。 Sentry包含一个完整的API,用于在任何应用程序中从任何语言发送事件。JavaScriptReact-NativePythonRubyPHPGoRustJavaObjective-C/SwiftC#PerlElixirLaravel...一、安装Sent...