个人创作公约:本人声明创作的所有文章皆为自己原创,如果有参考任何文章的地方,会标注出来,如果有疏漏,欢迎大家批判.如果大家发现网上有抄袭本文章的,欢迎举报,并且积极向这个 github 仓库 提交 issue,谢谢支持~ 我们知道从 Spring Boot 2.3.x 这个版本开始,引入了优雅关闭的机制.我们也在线上部署了这个机制,来增加用户体验.虽然现在大家基本上都通过最终一致性,以及事务等机制,来保证了就算非优雅关闭,也可以保持业务正确.但是,这样总会带来短时间的数据不一致,影响用户体验.所…
一. 导读 本文大纲 读取HTTP Cookie 设置HTTP Cookie 读取所有Cookie[] 为Cookie设置过期时间 Https与Cookie HttpOnly Cookie 删除Cookie HTTP Cookie(也称为Web cookie,浏览器cookie)是服务器在用户浏览器中存储的小部分数据.服务器端应用程序在返回浏览器请求响应的时候设置cookie,浏览器存储cookie,并将它们在下一个请求一起发送的时候自动带回服务器端应用程序. Cookies提供了一种在服务器和…
文章目录 介绍 使用Property文件 在程序中指定 使用命令行参数 值生效的顺序 如何在Spring boot中修改默认端口 介绍 Spring boot为应用程序提供了很多属性的默认值.但是有时候,我们需要自定义某些属性,比如:修改内嵌服务器的端口号. 本篇文章就来讨论这个问题. 使用Property文件 第一种方式,也是最常用的方式就是在属性文件中,覆盖默认的配置.对于服务器的端口来说,该配置就是:server.port. 默认情况下,server.port值是8080. 我们可以在ap…
说到事务,那什么是事务呢? 事务(Transaction),一般是指要做的或所做的事情. 原子性(Atomicity):事务作为一个整体被执行,包含在其中的对数据库的操作要么全部被执行,要么都不执行. 一致性(Consistency):事务应确保数据库的状态从一个一致状态转变为另一个一致状态.一致状态的含义是数据库中的数据应满足完整性约束. 隔离性(Isolation):多个事务并发执行时,一个事务的执行不应影响其他事务的执行. 持久性(Durability):已被提交的事务对数据库的修改应该永…
让Spring Boot项目启动时可以根据自定义配置决定初始化哪些Bean 问题描述 实现思路 思路一 [不符合要求] 思路二[满足要求] 思路三[未试验] 问题描述 目前我工作环境下,后端主要的框架是Spring Boot,目前面临的问题也是在Spring Boot中出现的. 具体情况是这样的,期望是搭建一个公用的框架,适用于多种业务场景的,集成好如Redis,日志管理,定时任务管理等一系列配置即用的框架,但是在集成好Activiti框架后我发现有的项目并不需要使用Activiti框架,但是由…
前言 在 Spring Boot 中已经移除了 web.xml 文件,如果需要注册添加 Servlet.Filter.Listener 为 Spring Bean,在 Spring Boot 中有两种方式: 使用 Servlet 3.0 API 的注解 @WebServlet.@WebFilter.@Listener 用来配置. Spring Boot JavaConfig 注解配置 Bean 的方式来进行配置. 注册之前 在使用 Servlet 时,需要在 Spring Boot 入口类添加…
1.前言 有些时候我们需要在 Spring Boot Servlet Web 应用中声明一些自定义的 Servlet Filter 来处理一些逻辑.比如简单的权限系统.请求头过滤.防止 XSS 攻击等.本篇将讲解如何在 Spring Boot 应用中声明自定义 Servlet Filter 以及定义它们各自的作用域和顺序. 2. 自定义 Filter 可能有人说声明 Servlet Filter 不就是实现 Filter 接口嘛,没有什么好讲的!是的这个没错,但是很多时候我们并不想我们声明的 F…
spring boot集成mybatis-plus插件进行自定义sql方法开发时报nested exception is org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): Servlet.service() for servlet [dispatcherServlet] in context with path [/boot] threw exception [Request proc…
https://my.oschina.net/bianxin/blog/2876640 https://cs.xieyonghui.com/java/55.html 其实spring boot拦截器的配置方式和springMVC差不多,只有一些小的改变需要注意下就ok了.下面主要介绍两种常用的拦截器: 一.基于URL实现的拦截器: public class LoginInterceptor extends HandlerInterceptorAdapter{ /** * 在请求处理之前进行调用(…
在Spring Boot应用程序中使用Redis缓存的步骤: 1.要获得Redis连接,我们可以使用Lettuce或Jedis客户端库,Spring Boot 2.0启动程序spring-boot-starter-data-redis默认使用了Lettuce.要获得Redis的池化连接工厂,我们需要在类路径上提供commons-pool2,下面展示使用Lettuce情况下的Maven依赖项配置: org.springframework.bootspring-boot-starter-data-r…
本篇文章的目的是记录并实现在Spring Boot中,动态设定与执行定时任务. 我的开发项目是 Maven 项目,所以首先需要在 pom.xml 文件中加入相关的依赖.依赖代码如下所示: <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>RELEASE</version> </de…
1. 前言 不知道你有没有接到这种需求,项目启动后立马执行一些逻辑.比如简单的缓存预热,或者上线后的广播之类等等.如果你使用 Spring Boot 框架的话就可以借助其提供的接口CommandLineRunner和 ApplicationRunner来实现. 2. CommandLineRunner org.springframework.boot.CommandLineRunner 是Spring Boot提供的一个接口,当你实现该接口并将之注入Spring IoC容器后,Spring Bo…
背景 在使用SpringBoot的过程中,你肯定遇到过404错误.比如下面的代码: @RestController @RequestMapping(value = "/hello") public class HelloWorldController { @RequestMapping("/test") public Object getObject1(HttpServletRequest request){ Response response = new Resp…
Payment Spring Boot 是微信支付V3的Java实现,仅仅依赖Spring内置的一些类库.配置简单方便,可以让开发者快速为Spring Boot应用接入微信支付. 演示例子: payment-spring-boot-samples 文档:Payment Spring Boot文档 有疑问请提交ISSUE会及时跟进,欢迎Star ,欢迎PR贡献. 1.0.3.SNAPSHOT 已经进入测试阶段 目前功能 实现微信支付多商户 集成支付宝SDK.快速接入Spring Boot 实现微信…
本篇 将针对[日志使用自定义的logback-spring.xml文件后,application.properties中关于日志的相关配置还会起作用么]这一个主题进行探索. 这个测试项目是根据[spring boot]8.spring boot的日志框架logback使用中建立的项目进行测试的 在配置了logback-spring.xml 这个logback自定义的配置文件之后: <?xml version="1.0" encoding="UTF-8"?>…
一.简单介绍 1.redis的发布订阅功能,很简单. 消息发布者和消息订阅者互相不认得,也不关心对方有谁. 消息发布者,将消息发送给频道(channel). 然后是由 频道(channel)将消息发送给对自己感兴趣的 消息订阅者们,进行消费. 2.redis的发布订阅和专业的MQ相比较 1>redis的发布订阅只是最基本的功能,不支持持久化,消息发布者将消息发送给频道.如果没有订阅者消费,消息就丢失了. 2>在消息发布过程中,如果客户端和服务器连接超时,MQ会有重试机制,事务回滚等.但是Red…
本文摘自于<Spring Cloud微服务 入门 实战与进阶>一书.  作者:尹吉欢 Spring Boot的方便体现在简化了很多繁琐的配置,对开发人员来说是一个福音,通过引入各种Spring Boot Starter包可以快速的搭建出一个项目的脚手架. 目前提供的Spring Boot Starter包有: spring-boot-starter-web:快速构建基于Spring MVC的Web项目,使用Tomcat做默认嵌入式容器. spring-boot-starter-data-red…
1.配置application.properties文件 打开application.properties追加 spring.mvc.view.prefix=/WEB-ROOT/ spring.mvc.view.suffix=.jsp 2. 在pom.xml中添加访问jsp页面的jar包 <!-- 访问jsp页面所需要的以下依赖包 -->       <dependency>             <groupId>org.springframework.boot&l…
直入主题 我们都知道,设计模式(Design Pattern)是前辈们对代码开发经验的总结,是解决特定问题的一系列套路.它不是语法规定,而是一套用来提高代码可复用性.可维护性.可读性.稳健性以及安全性的解决方案. 那么,我们可能都了解过设计模式,但是在项目中怎么使用可能还是会有点疑惑,今天,公司的项目刚好有一个场景来让我使用一个设计模式:策略模式. 场景 关于用户订单充值(订单支付同理),我们都知道,现今的支付方式是非常的多的,例如:支付宝.微信.银联.钱包(各个APP的账户余额)等等. 查询实…
前言 我们的springboot 架手架已经包含了mysql,redis,定时任务,邮件服务,短信服务,文件上传下载,以及docker-compose 构建镜像等等. 接下来让我们解决另一个常见的问题.一般的情况下,都是前后端分离的,我这个架手架的初衷也是前后端进行分离,所以这里就涉及到一个很严重的问题啦,当协议,端口,IP三者有其一不同就会产生跨域,所以需要做跨域支持. 测试跨域的文件 在这之前,我们先写一个测试接口是否跨域的html ,这样下面的测试比较方便. <!DOCTYPE html>…
项目截图 解决方法 我之前用的@RestController注解,而@RestController这个控制器返回数据而不是视图,改成@Controller 就好了(以下是修改后的) @Controller public class WebController { @Autowired private WxService service; @Autowired private HttpServletRequest request; @Autowired private HttpServletRes…
默认情况下,所有敏感的 HTTP 端点都是安全的,只有具有 ACTUATOR 角色的用户才能访问它们.安全性是使用标准的 HttpServletRequest.isUserInRole 方法实施的. 我们可以使用来禁用安全性.只有在执行机构端点在防火墙后访问时,才建议禁用安全性.…
前言 SpringMVC 中 Controller 中方法的参数非常灵活,得益于它的强大自动装配,这次将根据上次遗留下的问题,将研究下装配参数. 正文 SpringMVC中使用了两个接口来处理参数: * HandlerMethodArgumentResolver 处理方法请求参数: * HandlerMethodReturnValueHandler 处理方法的返回参数. 这里我们将使用 HandlerMethodArgumentResolver 来处理方法上的参数. 未完成 大家可以参考使用Ha…
简介 ResponseBody是通过RequestResponseBodyMethodProcessor起作用的. 我们的做法是写一个包装类,替换掉他 问题:怎么替换呢? 取出 Spring的List<HandlerMethodReturnValueHandler>,替换掉原来的RequestResponseBodyMethodProcessor类型的Handle了 详情:https://gitee.com/jacky-lulu/spring-custom…
一.引入Maven坐标 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> <optional>true</optional> </dependency> 二.定义自定义属性 /** * @author zhangboqing *…
最近做一个项目,自定义了404页面,本地测试可以到自定义页面,但是打包放到tomcat里面就不行.搞了一天终于看到一个比较正确的方法.下面附上连接,非常感谢各位博主们 1.https://blog.csdn.net/cckevincyh/article/details/79630182. 2.https://blog.csdn.net/loongshawn/article/details/50915979. 3.https://blog.csdn.net/linzhiqiang0316/arti…
Spring Boot 内嵌容器 Tomcat / Undertow / Jetty 优雅停机实现 Anoyi 精讲JAVA 精讲JAVA 微信号 toooooooozi 功能介绍 讲解java深层次开发,解析各大流行框架的源码 2018-04-19 Spring Boot 在关闭时,如果有请求没有响应完,在不同的容器会出现不同的结果,例如,在 Tomcat 和 Undertow 中会出现中断异常,那么就有可能对业务造成影响.所以,优雅停机非常有必要性,目前官方是没有提供很好的策略来实现. Ea…
爱生活,爱编码,本文已收录架构技术专栏关注这个喜欢分享的地方. 开源项目: 分布式监控(Gitee GVP最有价值开源项目 ):https://gitee.com/sanjiankethree/cubic 摄像头视频流采集:https://gitee.com/sanjiankethree/cubic-video 优雅停机 目前Spring Boot已经发展到了2.3.4.RELEASE,伴随着2.3版本的到来,优雅停机机制也更加完善了. 目前版本的Spring Boot 优雅停机支持Jetty,…
上篇文章介绍了Spring boot初级教程:spring boot(一):入门篇,方便大家快速入门.了解实践Spring boot特性:本篇文章接着上篇内容继续为大家介绍spring boot的其它特性(有些未必是spring boot体系桟的功能,但是是spring特别推荐的一些开源技术本文也会介绍),对了这里只是一个大概的介绍,特别详细的使用我们会在其它的文章中来展开说明. web开发 spring boot web开发非常的简单,其中包括常用的json输出.filters.propert…
Spring boot 提高篇 上篇文章介绍了Spring boot初级教程:构建微服务:Spring boot 入门篇,方便大家快速入门.了解实践Spring boot特性:本篇文章接着上篇内容继续为大家介绍spring boot的其它特性(有些未必是spring boot体系桟的功能,但是是spring特别推荐的一些开源技术本文也会介绍),对了这里只是一个大概的介绍,特别详细的使用我们会在其它的文章中来展开说明. github博文地址,阅读更佳 web开发 spring boot web开发…