【SpringBoot】
文章平均质量分 81
现在的SpringBoot是2.x , 1.x已经不推荐使用了 2020-4-10
CBeann
大厂高级Java开发工程师,CSDN博客专家,阿里云博客专家,专注于后端技术的分享。如果你迷茫,不妨来瞅瞅码农的轨迹。模拟面试简历辅导、内推加VX:CHAI956056312
展开
-
Springboot 配置文件脱敏的实践
SpringBoot配置文件脱敏原创 2023-05-29 00:12:20 · 1329 阅读 · 1 评论 -
用StopWatch 统计代码耗时
用StopWatch统计代码耗时原创 2022-07-04 23:26:56 · 358 阅读 · 1 评论 -
SpringBoot定时任务源码分析
写作目的 最近看了一篇文章“ [Spring Boot实现定时任务的动态增删启停](https://mp.weixin.qq.com/s/7deN_VIp3f9k1fRXsZS4NQ),其实实现这个需求的前提是你要搞明白 定时任务 的实现原理,这样你才有可能实现定时任务的动态增删启停,所以下面从源码的角度跟 SpringBoot定时任务原理。代码下载https://gitee.com/cbeann/Demooo/tree/master/springboot-demo/src/main/java/c原创 2021-10-20 14:09:40 · 925 阅读 · 0 评论 -
使用RestTemplate上传文件
写作目的最近维护一个项目,里面用了RestTemplate进行服务之前的调用,不过最近有一个Excel解析的需求,百度了几篇,内容不是很全,所以写篇博客记录一下,不过我还是推荐使用Feign调用,毕竟面向接口编程,方便。代码亲测可用@RestControllerpublic class DataExcelImportController { private static final String REST_URL_PRFIX = "http://abc"; @Aut原创 2021-07-08 18:38:25 · 9313 阅读 · 0 评论 -
SpringSecurity认证流程
写作目的最近在学习SpringSecurity,中间就遇到了一个问题:我在浏览器中第一次输入localhost:8080/hello,提示我没有登陆,自动跳转到登陆页面,等我登陆成功后,我在输入localhost:8080/hello,就成功访问了,验证第二次的时候,验证信息是存储在哪呢?案例代码https://gitee.com/cbeann/Demooo/tree/master/springboot-security-demo源码分析初始化我们从WebSecurityCo原创 2021-07-03 13:47:14 · 918 阅读 · 2 评论 -
接口参数注解验证案例
写作缘由 写接口的时候经常会有请求体里某字段不为null的需求;也有使用一个dto对象,但是插入和修改都想使用这个dto,原创 2021-06-19 13:57:29 · 473 阅读 · 0 评论 -
SpringBoot实现Excel解析和下载
写作原因 操作Excel一般有三种poi、EasyExcel和Hutool工具包,百度一下你会fa源码下载原创 2021-06-04 20:14:42 · 823 阅读 · 0 评论 -
启动Jar包时打印GC日志
案例nohup java -jar -XX:+PrintGCDetails springboot-0.0.1-SNAPSHOT.jar > log.log 2>&1 &参考https://blog.csdn.net/weixin_42870683/article/details/103636187原创 2021-04-19 22:20:23 · 1694 阅读 · 0 评论 -
ApplicationEventPublisher的简单使用
s从需求开始一个简单的场景,就是用户注册成功后,发短信通知和发邮件通知,其实这样的场景就是两种处理情况注册成功后起一个线程执行发短信和发邮件通知 发送用户ID到mq,然后mq去执行也许还有其他,那就是我的知识盲区了。其实如果正规的话这种耗时的操作应该是使用MQ,但是使用MQ其实无形之间就增加了系统的复杂性,那么此时可以使用ApplicationEventPublisher代替MQ源码下载https://gitee.com/cbeann/Demooo/tree/master/springb原创 2021-04-19 10:41:03 · 16340 阅读 · 5 评论 -
SpringBoot获得application.yml中数据的几种方式
源码下载https://gitee.com/cbeann/Demooo/tree/master/springboot-demo/src/main/java/com/example/ymllist配置白名单需求List集合ymlmyproject: whitelist: users: - zhangsan - lisi - 王五properties@Configuration@ConfigurationProperties("m原创 2021-04-02 10:34:28 · 1549 阅读 · 5 评论 -
SpringBoot整合RateLimiter实现限流
写作缘由 在和某学长炫耀在自己会用Redis+Lua实现滑动窗口限流时,他说现在都用RateLimiter,所以就想搞个Demo,但是度娘了一下,感觉我搜索到的博客有几个个人认为不太完善的地方,比如只贴了部分代码,没贴依赖。尤其是你用AOP实现的时候,其实依赖哪个还有有讲究的;还有一个问题就是大多都是基于AOP实现,拦截器实现也是一个不错的方式,所以此处用拦截器HandlerInterceptorAdapter实现。源码下载https://github.com/cbeann/De...原创 2021-03-21 22:06:34 · 1104 阅读 · 0 评论 -
基于Redis的窗口计数场景
需求每一个月用户只能申请三次加塞上厕所,这个需要该咋做呢?这个需求等价于每一个小时只允许发三次短信验证码,真的等价吗???每一个小时只允许发三种短信有两种场景场景一:1:59分发3条,2:01分发3条成立 场景二:1:59分发3条,2:01分发3条不成立,因为在1:50到2:10这个窗口时间段里发送了6条场景一...原创 2021-03-13 17:48:35 · 766 阅读 · 2 评论 -
springboot整合MybatisPlus
文章来源 最近遇到了项目需要用到MybatisPlus,所以想自己整理一篇demo,自己当笔记本查阅源码下载亲测有效实践pom <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </d..原创 2021-03-11 09:31:45 · 487 阅读 · 0 评论 -
Transactional注解不生效案例
Transactional注解不生效案例原创 2021-03-06 18:51:15 · 445 阅读 · 1 评论 -
SpringBoot读写分离
前提2台mysql可以开两个docker,也可以在一个MySQL服务器中用2个数据库 docker run -d -p 3307:3306 --name mysql01 -e MYSQL_ROOT_PASSWORD=123456 docker.io/mysql docker run -d -p 3308:3306 --name mysql02 -e MYSQL_ROOT_PASSWORD=123456 docker.io/mysqlSpringBoot代码代码下载:https..原创 2020-12-31 12:21:28 · 1436 阅读 · 0 评论 -
SpringBoot整合多数据源
需求 最近有一个需求,需要把安某服务器中MySQL中的数据导入到另一个MySQL中,当时感觉导出到xxx.sql,然后导入进新的数据库,发现MySQL导出到xxx.sql已经实现不了了,每次导出都会卡住,时间继续,但是导出条数一直不变,后来就想了个比较 笨的方法,就是查数据库1,然后插入数据库2,所以需要SpringBoot整合多数据源,从而记录搭建环境的过程。源码下载SpringBoot+MyBatis+MySQLhttps://github.com/cbeann/Demooo/t..原创 2020-11-01 16:36:28 · 366 阅读 · 2 评论 -
Java中运行shell脚本
需求 忽然想写个东西,然后发现自己的linux中端口开放问题以及端口占用问题很麻烦,因为我经常用8080端口,如果有一个图形化界面看某个端口被占用以及被什么占用就好了。落地实现直接执行shell命令(参数为命令)ShellUtils.exceShell("ls -l /");package com.example.portinterpretationplugin.utils;import com.example.portinterpretationplugin.constan..原创 2020-10-12 21:20:23 · 10791 阅读 · 4 评论 -
从jar包内复制文件到系统目录内
需求 最近想实现一个java执行shell脚本的小demo,其实执行的一条命令是比较容易的,一百度一大堆;执行脚本也特别简单,参数为路径即可,但是有没有想过下面的这种情况? 你想执行一个名字叫 helloword.sh脚本,你的脚本放在 /opt下,你在自己的SpringBoot代码运行shell的命令的参数为/opt/ helloword.sh ,你的代码在自己的服务上跑的美滋滋,但是你的代码跑到别人服务器上,那你怎么能保证别人的/opt下有你的helloword.sh ??...原创 2020-10-12 21:15:01 · 3135 阅读 · 0 评论 -
SpringCloud向注册中心注册IP为内网IP
项目SpringBoot 1.5.9SpringCloud Dalston.SR1问题有一个微服务为station,在consumer微服务中使用rebbion远程调用station微服务,请求结果为超时connect timed out ,(1)一开始我以为端口没开,我看了看,发现端口开了,可以访问(2)我以为代码有问题,我把所有的微服务,包括eureka等,都在本地起了起来,然后发现没有问题(3)然后重新在服务器集群上重新部署了一套,发现还是超时connect timed..原创 2020-09-30 20:46:48 · 2066 阅读 · 0 评论 -
用Redis来实现接口幂等性校验
项目简介springboot redis @ApiIdempotentAnn注解 + 拦截器对请求进行拦截 压测工具: jmeter实现思路 为需要保证幂等性的每一次请求创建一个唯一标识token, 先获取token, 并将此token存入redis, 请求接口时, 将此token放到header或者作为请求参数请求接口, 后端接口判断redis中是否存在此token:如果存在, 正常处理业务逻辑, 并从redis中删除此token, 那么, 如果是重复请求, 由于token已被...原创 2020-09-23 18:25:58 · 3058 阅读 · 6 评论 -
在IDEA中使用Docker部署SpringBoot项目
Docker安装及使用https://blog.csdn.net/qq_37171353/article/details/94216641原创 2020-09-08 20:53:24 · 1957 阅读 · 0 评论 -
全局时间格式化
需求经常会需要后端给前端传时间,有各种类型的时候,date、java8中LocalDateTime等等,虽然挺简单一个小需求,但是也挺繁琐的,毕竟大家容易犯懒。实践代码(SpringBoot)添加jackson依赖 <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind --> <dependency> <原创 2020-09-05 19:50:36 · 318 阅读 · 0 评论 -
SpringBoot启动成功后调用接口、方法
问题 线上问题遇到一个接口第一次访问特别慢的问题,后来说是某加了某注解,所以第一次请求比较慢,初步解决办法就是启动后先请求一次就好了。代码接口 @RequestMapping("/hello") public String hello() { return LocalDateTime.now().toString(); }核心接口CommandLineRunnerpackage com.example.autorequest;import lombok...原创 2020-08-01 00:10:16 · 7717 阅读 · 0 评论 -
SpringBoot指定端口的几种方式
想法的来源(1)其实我Linux用的贼烂,一开始的时候我搭建一个服务的时候我不清楚端口是否开放,比如我把阿里云的防火墙关闭了,但是我没有配置安全组,我任然不能通过某某端口访问(2)比如你学习nginx的时候,你需要做映射,如果你需要好几个服务,那我原来的操作是在IDEA写完SpringBoot打包然后放到Linux上,然后在修改端口,在打包在放在Linux上,贼麻烦SpringBoot指定端口的3种方式(亲测有效) @Value("${server.port}") private原创 2020-06-21 16:43:31 · 12856 阅读 · 0 评论 -
自定义redis-spring-boot-starter
项目结构原创 2020-05-30 17:13:37 · 2490 阅读 · 8 评论 -
springboot的定时任务的方法周期比方法的运行时间长
1原创 2020-03-23 00:54:14 · 2284 阅读 · 0 评论 -
Spring Boot 参数校验
校验实践前提SpringBoot+web添加依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-validation</artifactId>...原创 2020-01-11 22:01:59 · 883 阅读 · 0 评论 -
json日期格式化与json日期转化为对象
项目基础SpringBoot+web+fastjson问题1提出:返回JSON对象的日期需要格式化测试代码对象@Data@Accessors(chain = true)public class Student { private Integer id; private String name; private Date date;}接口...原创 2020-01-08 23:17:43 · 4617 阅读 · 0 评论 -
SpringBoot整合MyBatis
环境1 MySQL2Spring Tool Suite ,和Eclipse操作差不多,但是不推荐用Eclipse下载地址:http://spring.io/tools3/sts/all项目代码下载百度网盘下载(两种配置方式)构建项目(第一种方式:无***Mapper.xml)新建项目File ----->New ----->Spr...原创 2017-09-17 16:00:13 · 1405 阅读 · 0 评论 -
SpringBoot上传下载
上传上传页面:注意上传域的name属性要和controller参数名一致,enctype属性 文件: 上传参数控制package com.example.demo.config;import javax.servlet.MultipartConfigElement;import org.springframework.boot.w原创 2017-10-08 19:50:47 · 1984 阅读 · 0 评论 -
SpringBoot笔记
SpringBoot加入webjars依赖将原来的BootStrap.js用依赖的方式加入到项目中(以BootStrap为例)1)访问https://www.webjars.org/ 2)选择好 版本 和 引入的方式3)在依赖中查看静态资源的路径4)开启服务器并且访问http://localhost:8080/webjars/bootstrap/4.0....原创 2017-10-08 19:15:55 · 546 阅读 · 0 评论 -
SpirngBoot整合redis做缓存Demo
环境准备下载项目代码https://gitee.com/cbeann/Demoo/tree/master/SpringBootCacheRedisredis可视化工具RedisDesktopManager下载链接:https://pan.baidu.com/s/1e3hVvR5du4Ullv9InjqdSw提取码:yq07复制这段内容后打开百度网盘手机App,操作更方便...原创 2019-06-29 19:17:56 · 354 阅读 · 0 评论 -
SpringBoot整合email
构建项目(以QQ邮箱为例)构建SpringBoot项目(web)pom.xml<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </depe...原创 2019-05-25 15:32:53 · 3176 阅读 · 0 评论 -
SpringBoot怎么获取到上传到Linux服务器(非项目内)的图片
问题介绍:到我们把SpringBoot项目打包到Linux服务器上,文件的上传和上传的文件的下载路径及其获取就是一个比较棘手的问题。通俗一点就是解决像下面demo.jar中访问到110.png图片的文件,比如在页面显示啊(图片很重要,图片很重要,图片很重要)解决问题思路:如果你用过kaptcha验证码插件,那你就应该猜到我的思路了,用流的方式请求URL返回到前端,而不能用...原创 2019-01-22 20:17:55 · 7575 阅读 · 6 评论 -
SpringBoot处理Exce表格Demo
项目构建项目下载源代码下载pom.xml<!-- EXCEL下载 poi --> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.17&a原创 2019-01-13 16:29:39 · 1117 阅读 · 0 评论 -
如何在Linux中使SpringBoot项目关闭终端后不关闭项目进程
编写一个shell脚本,名字是startup.sh#!/bin/shnohup java -jar /usr/Bean/FoodSystem.jar &执行脚本 ./startup.sh出现下图问题,解决如下sudo chmod -R 777 某一目录查看启动的进程ps -ef | grep java关闭某一个...原创 2018-11-25 16:26:59 · 9054 阅读 · 1 评论 -
SpringBoot整合Shiro_HelloWorld
Shiro介绍Apache Shiro是一个功能强大、灵活的,开源的安全框架。它可以干净利落地处理身份验证、授权、企业会话管理和加密。Apache Shiro的首要目标是易于使用和理解。安全通常很复杂,甚至让人感到很痛苦,但是Shiro却不是这样子的。一个好的安全框架应该屏蔽复杂性,向外暴露简单、直观的API,来简化开发人员实现应用程序安全所花费的时间和精力。Shiro能做...原创 2017-12-25 15:28:01 · 5438 阅读 · 3 评论 -
SpringBoot用Druid整合MyBatis
Druid介绍Druid是Java语言中最好的数据库连接池。Druid能够提供强大的监控和扩展功能。Druid是阿里巴巴开源平台上的一个项目,整个项目由数据库连接池、插件框架和SQL解析器组成。该项目主要是为了扩展JDBC的一些限制,可以让程序员实现一些特殊的需求,比如向密钥服务请求凭证、统计SQL信息、SQL性能收集、SQL注入检查、SQL翻译等,程序员可以通过定制来实现自己需要的...原创 2017-11-18 06:43:59 · 5613 阅读 · 0 评论