
SpringBoot
文章平均质量分 77
keep one's resolveY
保持清醒!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
SpringBoot集成Quartz
springboot使用yml配置时可直接给工具类注入。,获取的是默认的属性配置,yml不会生效,需使用。在使用yml自动配置时,配置自定义的。原创 2025-05-27 15:15:22 · 478 阅读 · 0 评论 -
Springboot整合Swagger3
原创 2025-05-11 17:30:47 · 170 阅读 · 0 评论 -
通过 Request 请求获取真实 IP 地址以及对应省份城市
通过 Request 请求获取真实 IP 地址以及对应省份城市 - 凡223 - 博客园原创 2025-04-15 09:39:58 · 136 阅读 · 0 评论 -
Spring ApplicationListener事件监听
【JavaWeb】Spring ApplicationListener-优快云博客原创 2024-11-23 15:46:18 · 308 阅读 · 0 评论 -
SpringBoot3整合SpringDoc实现在线接口文档的详细过程
SpringBoot3整合SpringDoc实现在线接口文档的详细过程。原创 2024-11-04 14:11:43 · 467 阅读 · 0 评论 -
SpringBoot 容器启动之后初始化操作
在项目开发中,有时候会在 Spring 应用启动后做一些初始化的操作,比如数据字典缓存,状态通知,配置读取等操作。Event执行优先级 @PostConstruct > SmartLifecycle.start() > ContextRefreshedEvent > ApplicationStartedEvent >ApplicationRunner > CommandLineRunner > ApplicationReadyEvent。原创 2024-11-23 14:20:04 · 1085 阅读 · 0 评论 -
Mybatis数据脱敏-自定义一个TypeHandler类型的处理器,用于处理数据的加密和解密
SpringBoot接口返回数据脱敏(Mybatis、Jackson)_java_脚本之家原创 2024-11-11 09:09:16 · 184 阅读 · 0 评论 -
分页查询同时更新数据漏处理
分页查询在某些场景下引发的数据漏处理问题 - 翎野君 - 博客园原创 2024-10-25 17:30:22 · 159 阅读 · 0 评论 -
@EnableConfigurationProperties的使用方式以及作用
在测试代码上加上@EnableConfigurationProperties,参数指定那个配置类,该配置类上必须得有@ConfigurationProperties注解。(提外话:具体的yml文件字符串、List、Map的书写方式并使用@ConfigurationProperties注入配置类.)结果图,仍然可以绑定。转载 2024-08-08 16:50:03 · 567 阅读 · 0 评论 -
@ConditionalOnXXXXX条件注解
首先看matchIfMissing属性,用来指定如果配置文件中未进行对应属性配置时的默认处理:默认情况下matchIfMissing为false,也就是说如果未进行属性配置,则自动配置不生效。简单来讲,一般是在配置类上或者是@Bean修饰的方法上,添加此注解表示一个类是否要被Spring上下文加载,若满足条件则加载,若不满足条件则不加载。如:http编码的自动配置类中,当配置文件中没有配置spring.http.encoding.enabled,自动配置仍然会生效。转载 2024-06-21 12:52:47 · 2689 阅读 · 0 评论 -
SpringBoot Starter 通用接口加密组件(防篡改)+ RequestBodyAdvice和ResponseBodyAdvice原理
防篡改:参考博客:(防篡改)原创 2025-01-18 09:36:26 · 644 阅读 · 0 评论 -
接口防篡改+防重放攻击
nonce的意思是仅一次有效的随机字符串,要求每次请求时该参数要保证不同。实际使用用户信息+时间戳+随机数等信息做个哈希之后,作为nonce参数。如果没有,则创建这个key,把这个key失效的时间和验证timestamp失效的时间一致,比如是60s。如果有,说明这个key在60s内已经被使用了,那么这个请求就可以判断为重放请求。去redis中查找是否有key为nonce:{nonce}的string。原创 2025-01-18 09:31:17 · 2124 阅读 · 0 评论 -
MAVEN-SNAPSHOT和RELEASE + 打包到远程仓库
RELEASE版本和SNAPSHOT是相对的,⾮SANPSHOT版本即RELEASE版本,RELEASE版本是⼀个稳定的版本号,看清楚咯,是⼀个,不是⼀系列,可以认为RELEASE版本是不可变化的,⼀旦发布,即永远不会变化。虽然RELEASE版本是稳定不变的,但是仓库还是有策略让这个原则变得可配置,有的仓库会配置成redeploy覆盖,这样RELEASE版本就变成SNAPSHOT了,伪装成RELEASE的SNAPSHOT,会让问题更费解和棘⼿,我⼀般称这类⼈为“挖坑专家”。原创 2024-06-12 17:07:46 · 3521 阅读 · 0 评论 -
RestTemplate之java.io.IOException:stream closed 异常的原因及处理
我尝试了一次,把该代码注释掉,果然不出所料,是这里的原因,那么接下来就是如何解决流只能读取一次的问题,上网搜索了一番,网上好多人解决都是说用包装类可以解决该问题,将该对象缓存下来,就不会有问题,这也就是Servlet中Fileter的实现,Filter调用链如果不包装,也可能会出现该问题。解决方案:怀疑是我加了拦截器的原因,我把拦截器注释掉,则不会报该错误,思考:为啥加了拦截器就会报错呢?springboot集成resttemplate时想打印相关请求日志,设置统一的拦截器。转载 2024-05-20 11:08:35 · 301 阅读 · 0 评论 -
SpringBoot之自定义starter
SpringBoot中的starter是一种非常重要的机制(自动化配置),能够抛弃以前繁杂的配置,将其统一集成进starter,应用者只需要在maven中引入starter依赖,SpringBoot就能自动扫描到要加载的信息并启动相应的默认配置。starter让我们摆脱了各种依赖库的处理,需要配置各种信息的困扰。SpringBoot会自动通过classpath路径下的类发现需要的Bean,并注册进IOC容器。转载 2024-04-16 10:32:33 · 270 阅读 · 0 评论 -
Springboot之Jasypt配置文件加密/解密
前言在大多数项目中,配置文件中的 mysql 数据库密码、redis 密码等其他敏感性密码都是以明文形式存在,这种配置本身没有任何问题,但是,在某些情况下,可能会对公司造成不可挽救的损失,比如:某一天,小明因为加班过度,头脑发昏,不小心把公司项目上传到自己的 GitHub 仓库里面了,导致的后果就是,公司数据库用户名密码泄露,被某些大佬加以利用…所以,基于上面这种情况,加入配置文件中数据库用户密码等其他敏感信息都是经过加密处理过的呢???是不是可以大概率避免这种情况。Jasypt 因此应运而生。转载 2024-04-16 09:26:21 · 12883 阅读 · 0 评论 -
CommandLineRunner、ApplicationRunner、ApplicationListener、@PostConstruct对比
1、一些比较独立,内容小巧的初始化逻辑,不影响springboot启动速度的使用@postConstruct注解2、若想通过ApplicationListener事件监听的方式,则需要处理好指定的容器、3、在数据初始化层面,不推荐@PostConstruct和ApplicationListener,原因是两者都会影响程序的启动,如果执行逻辑耗时很长,启动服务时间就很长。转载 2023-12-14 23:36:53 · 1002 阅读 · 0 评论 -
springboot集成阿里云短信服务
Springboot整合阿里云短信服务_spring boot集成阿里短信验证码-优快云博客原创 2023-12-05 13:10:29 · 637 阅读 · 0 评论 -
springboot使用编程式事务
1.事务的定义包含:事务的隔离级别、事务的传播属性、超时时间设置、是否只读红线上方是些常量定义,关于常量定义(事务的隔离级别和事务的传播属性等等)具体事务常量定义//略复制事务的传播属性为,如果存在一个事务,则支持当前事务。如果没有事务则开启一个新的事务。被设置成这个级别时,会为每一个被调用的方法创建一个逻辑事务域。如果前面的方法已经创建了事务,那么后面的方法支持当前的事务,如果当前没有事务会重新建立事务,其他请看事务的传播属性事务的隔离级别采用底层数据库默认的隔离级别超时时间。转载 2023-11-23 14:08:26 · 2879 阅读 · 0 评论 -
Spring--WebMvcConfigurer详解
目录1. 简介2. WebMvcConfigurer接口2.1 addInterceptors:拦截器2.2addViewControllers:页面跳转2.3addResourceHandlers:静态资源2.4configureDefaultServletHandling:默认静态资源处理器2.5configureViewResolvers:视图解析器2.6configureContentNegotiation:配置内容裁决的一些参数2.7addCorsM......转载 2021-12-09 23:12:24 · 41615 阅读 · 1 评论 -
Spring声明式事务@Transactional注解详解(事务)
前面讲过了如何使用使用xml中实现声明式事务,详见博客:Spring5_狂神(IOC,AOP,SpringMybatis,事务)https://blog.youkuaiyun.com/weixin_45433031/article/details/115976938通过xml配置文件很不方便,那么现在我们来学习通过@Transactional注解实现Spring声明式事务文章目录 一. 使用位置 二. 参数说明 三. 事务传播行为 四. 隔离级别 1. SQL标准规范 .转载 2021-08-30 22:24:23 · 9221 阅读 · 2 评论 -
springboot 配置允许循环依赖
解决方式。原创 2022-08-07 12:00:26 · 16965 阅读 · 0 评论 -
Spring 参数默认值设置
SpringMVC实体参数默认值设置一、实体参数赋值过程Controller:@RestController@RequestMapping("test/")public class TestController { @PostMapping("post_test2") public Message postTest(@RequestBody QueryConditionsDTO qc) { return MessageBox.ok(qc); ..转载 2022-01-10 15:13:26 · 8339 阅读 · 0 评论 -
SpringBoot启动过程详解
这是一个扩展功能,callRunners(context, applicationArguments) 可以在启动完成后执行自定义的run方法;实现 ApplicationRunner 接口实现 CommandLineRunner 接口接下来我们验证一把,为了方便代码可读性,我把这2种方式都放在同一个类里面/*** 自定义run方法的2种方式*/@Component@Override。转载 2023-05-12 09:39:03 · 3110 阅读 · 1 评论 -
一文了解SpringBoot如何开启热部署
当执行构建项目后,由于jar中的信息不会变化,因此base类加载器无需再次执行,所以仅仅运行restart类加载即可,也就是将开发者自己制作的内容重新加载就行了,这就完成了一次热部署的过程,也可以说热部署的过程实际上是重新加载restart类加载器中的信息。 通过修改项目中的文件,你可以发现其实并不是所有的文件修改都会激活热部署的,原因在于在开发者工具中有一组配置,当满足了配置中的条件后,才会启动热部署,配置中默认不参与热部署的目录信息如下。 以上目录中的文件如果发生变化,是不参与热部署的。转载 2023-06-14 13:36:03 · 1103 阅读 · 0 评论 -
Springboot集成Junit4
二、在test文件夹下编写测试类。原创 2023-01-12 14:13:33 · 2931 阅读 · 0 评论 -
SpringBoot狂神27-(跟着狂神聊聊现在和未来)
架构--->解耦开发框架 Spring IOC AOP IOC :控制反转 约泡: 泡温泉,泡茶..... 泡友 附近的人,打招呼。加微信,聊天,天天聊,--->约泡 浴场(容器) :温泉,茶庄,泡友 直接进温泉,就有人和你- -起了! ...转载 2021-08-22 14:36:37 · 238 阅读 · 0 评论 -
SpringBoot狂神26-(redis集成)
SpringBoot整合SpringBoot操作数据:是封装在Spring-data中的,jpa、jdbc、mongodb、redis在SpringBoot2.x以后与原来使用的jedis被替换成来看lettuce,底层已经不使用jedis了jedis:采用的直连,多个线程操作的话,不安全,要提高安全性要使用jedis pool连接池lettuce:采用netty,高性能网络框架,异步请求,实例在多线程中可以共享,不存在线程不安全的情况,dubbo底层也是用netty,可以减少线程数量,更像NI转载 2021-08-21 18:03:52 · 531 阅读 · 1 评论 -
SpringBoot狂神25-(Dubbo和Zookeeper集成)
分布式理论什么是分布式系统?在《分布式系统原理与范型》一书中有如下定义:“分布式系统是若干独立计算机的集合,这些计算机对于用户来说就像单个相关系统”;分布式系统是由一组通过网络进行通信、为了完成共同的任务而协调工作的计算机节点组成的系统。分布式系统的出现是为了用廉价的、普通的机器完成单个计算机无法完成的计算、存储任务。其目的是利用更多的机器,处理更多的数据。分布式系统(distributed system)是建立在网络之上的软件系统。首先需要明确的是,只有当单个节点的处理能力无法满足转载 2021-08-18 00:36:55 · 347 阅读 · 0 评论 -
SpringBoot狂神24-(富文本编辑器)
聊聊富文本编辑器简介思考:我们平时在博客园,或者优快云等平台进行写作的时候,有同学思考过他们的编辑器是怎么实现的吗?在博客园后台的选项设置中,可以看到一个文本编辑器的选项:其实这个就是富文本编辑器,市面上有许多非常成熟的富文本编辑器,比如: Editor.md——功能非常丰富的编辑器,左端编辑,右端预览,非常方便,完全免费 官网:https://pandao.github.io/editor.md/ wangEditor——基于javascript和转载 2021-08-18 00:32:59 · 259 阅读 · 0 评论 -
SpringBoot狂神23-(异步@Async@EnableAsync、定时@Scheduled@EnableScheduling、邮件任务)
前言在我们的工作中,常常会用到异步处理任务,比如我们在网站上发送邮件,后台会去发送邮件,此时前台会造成响应不动,直到邮件发送完毕,响应才会成功,所以我们一般会采用多线程的方式去处理这些任务。还有一些定时任务,比如需要在每天凌晨的时候,分析一次前一天的日志信息。还有就是邮件的发送,微信的前身也是邮件服务呢?这些东西都是怎么实现的呢?其实SpringBoot都给我们提供了对应的支持,我们上手使用十分的简单,只需要开启一些注解支持,配置一些配置文件即可!那我们来看看吧~ 最后编辑于2020.3.2.转载 2021-08-18 00:31:15 · 2125 阅读 · 0 评论 -
SpringBoot狂神22-(项目集成Swagger2)
项目集成Swagger学习目标: 了解Swagger的概念及作用 掌握在项目中集成Swagger自动生成API文档 Swagger简介前后端分离 前端 -> 前端控制层、视图层 后端 -> 后端控制层、服务层、数据访问层 前后端通过API进行交互 前后端相对独立且松耦合 产生的问题 前后端集成,前端或者后端无法做到“及时协商,尽早解决”,最终导致问题集中爆发 解决方案 首先定义schema [ 计划的转载 2021-08-18 00:27:09 · 1963 阅读 · 2 评论 -
SpringBoot狂神21-(分析开源项目)
github上已收藏该项目:七牛云:云存储原创 2021-08-18 00:25:01 · 377 阅读 · 0 评论 -
SpringBoot狂神20-(权限框架Shiro)
文章目录1. 概述1. 简介2. 功能3. 从外部看4. 外部架构5. 认证流程2. 快速入门1. 拷贝案例2. 分析案例3. SpringBoot 集成 Shiro1. 编写配置文件2. 搭建简单测试环境3. 使用1. 登录拦截2. 用户认证3. 退出登录1. 概述1. 简介Apache Shiro是一个强大且易用的Java安全框架可以完成身份验证、授权、密码和会话管理Shiro 不仅可以用在 JavaSE 环境中,也可以用在 JavaEE 环境中官网:转载 2021-08-14 00:11:31 · 1456 阅读 · 0 评论 -
SpringBoot狂神19-(权限框架SpringSecurity集成)
SpringSecurity安全简介在 Web 开发中,安全一直是非常重要的一个方面。安全虽然属于应用的非功能性需求,但是应该在应用开发的初期就考虑进来。如果在应用开发的后期才考虑安全的问题,就可能陷入一个两难的境地:一方面,应用存在严重的安全漏洞,无法满足用户的要求,并可能造成用户的隐私数据被攻击者窃取;另一方面,应用的基本架构已经确定,要修复安全漏洞,可能需要对系统的架构做出比较重大的调整,因而需要更多的开发时间,影响应用的发布进程。因此,从应用开发的第一天就应该把安全相关的因素考虑进来,并在整转载 2021-08-10 21:44:44 · 738 阅读 · 0 评论 -
SpringBoot狂神18-(SpringBoot整合MyBatis)+Classpath*
整合MyBatis官方文档:http://mybatis.org/spring-boot-starter/mybatis-spring-boot-autoconfigure/Maven仓库地址:https://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-starter/2.1.1整合测试1、导入 MyBatis 所需要的依赖<dependency> <grou转载 2021-08-08 22:56:13 · 605 阅读 · 0 评论 -
SpringBoot狂神17-(SpringBoot集成Druid及Druid自带数据源的监控)
集成DruidDruid简介Java程序很大一部分要操作数据库,为了提高性能操作数据库的时候,又不得不使用数据库连接池。Druid 是阿里巴巴开源平台上一个数据库连接池实现,结合了 C3P0、DBCP 等 DB 池的优点,同时加入了日志监控。Druid 可以很好的监控 DB 池连接和 SQL 的执行情况,天生就是针对监控而生的 DB 连接池。Druid已经在阿里巴巴部署了超过600个应用,经过一年多生产环境大规模部署的严苛考验。Spring Boot 2.0 以上默认使用 Hik转载 2021-08-07 21:57:24 · 555 阅读 · 0 评论 -
SpringBoot狂神16-(SpringBoot整合SpringData-JDBC)
SpringData简介对于数据访问层,无论是 SQL(关系型数据库) 还是 NOSQL(非关系型数据库),Spring Boot 底层都是采用 Spring Data 的方式进行统一处理。Spring Boot 底层都是采用 Spring Data 的方式进行统一处理各种数据库,Spring Data 也是 Spring 中与 Spring Boot、Spring Cloud 等齐名的知名项目。Sping Data 官网:https://spring.io/projects/spring-da转载 2021-08-07 13:37:59 · 604 阅读 · 0 评论 -
SpringBoot狂神15-(员工管理系统-增/改/删/404/注销)
(七)增加员工实现——增1. list页面增加添加员工按钮首先在list.html页面增添一个增加员工按钮,点击该按钮时发起一个请求/add<h2><a class="btn btn-sm btn-success" th:href="@{/add}">添加员工</a></h2>然后编写对应的controller,处理点击添加员工的请求这里通过get方式提交请求,在EmployeeController中添加一个方法add用来处理list页转载 2021-08-06 00:45:00 · 567 阅读 · 0 评论 -
SpringBoot狂神14-(员工管理系统-展示员工信息—查)
(六)展示员工信息——查1. 实现Customers视图跳转目标:点击dashboard.html页面中的Customers展示跳转到list.html页面显示所有员工信息因此,我们首先给dashboard.html页面中Customers部分标签添加href属性,实现点击该标签请求/emps路径跳转到list.html展示所有的员工信息同样修改list.html对应该的代码为上述代码(还需要修改list.xml,加入th:href是因为前端代码问题)我们在templates目录下新.转载 2021-08-06 00:27:49 · 584 阅读 · 2 评论