springboot
文章平均质量分 76
asoklove
这个作者很懒,什么都没留下…
展开
-
实时数据推送并非只有WebSocket一种选择
在Web应用中,有几种实时数据推送的选择方案,包括SSE(Server-Sent Events)、WebSocket、长轮询等。SSE是一种基于HTTP协议的服务器向客户端推送数据的技术。它的优点是实现简单、轻量级,对现有服务器软件兼容性好。但是,由于SSE是单向通信模型,只能由服务器向客户端推送数据,对于需要客户端向服务器发送数据的场景,SSE就无法满足需求。WebSocket是一种双向通信模型,允许客户端和服务器之间互相发送消息。原创 2023-11-20 09:05:03 · 869 阅读 · 0 评论 -
完全自定义实现SpringMVC核心组件
完全自定义实现SpringMVC核心组件原创 2023-02-09 10:35:44 · 183 阅读 · 1 评论 -
分布式环境下Spring Session Redis底层原理
分布式环境下Spring Session Redis底层原理原创 2022-12-05 14:37:05 · 1137 阅读 · 1 评论 -
Spring Cloud Gateway核心过滤器之请求限流详解
Spring Cloud Gateway核心过滤器之请求限流详解原创 2022-12-05 14:35:25 · 2508 阅读 · 0 评论 -
Spring Cloud 中断路器 Circuit Breaker的应用
Spring Cloud 中断路器 Circuit Breaker的应用原创 2022-03-01 16:25:55 · 2543 阅读 · 0 评论 -
SpringBoot WebFlux整合Spring Security进行权限认证
环境:Springboot2.5.8请先阅读:Reactor响应式编程(Flux、Mono)基本用法Spring WebFlux入门实例并整合数据库实现基本的增删改查Spring Boot Security防重登录及在线总数简介Spring Security的WebFlux支持依赖于WebFilter,对Spring WebFlux和Spring WebFlux.Fn的作用相同。WebMVC依赖于Filter。依赖管理<dependency> <gro原创 2022-01-14 09:16:00 · 2270 阅读 · 0 评论 -
Springboot整合工作流引擎Activiti(五)之网关路由
Springboot整合工作流引擎Activiti(五)之网关路由原创 2021-12-16 08:43:19 · 555 阅读 · 0 评论 -
Springboot接口参数是如何处理的你肯定不知道
SpringMVC接口参数处理原创 2021-11-22 09:11:36 · 521 阅读 · 0 评论 -
SpringMVC函数式接口Router Function你用过吗?
环境:Springboot2.4.12概述Spring Web MVC包括WebMvc.fn,这是一种轻量级函数式编程模型,其中函数用于路由和处理请求,参数及返回值设计为不可变。它是基于注释的编程模型的替代方案,但在其他方面还是运行在同一DispatcherServlet上。在WebMvc.fn中,HTTP请求由HandlerFunction处理:该函数接受ServerRequest并返回ServerResponse。请求和响应对象都有不可变,提供对HTTP请求和响应的JDK 8友好访问。Han原创 2021-11-15 09:11:58 · 4261 阅读 · 1 评论 -
Springboot定义Controller接口的这些方式你肯定不知道
环境:Springboot2.4.11概述当一个请求过来后Spring是如何进行处理的?下面简单的罗列下请个的过程中核心组件SpringMVC处理的流程:DispatcherServlet所有请求的入口 HandlerMapping将请求地址与处理程序关联 HandlerAdapter真正处理程序,如执行上一步中对应的处理程序 HandlerMethodArgumentResolver对参数进行解析,这里面还涉及到很多其它东西 HanlderMethodReturnValue...原创 2021-11-02 09:10:11 · 3983 阅读 · 0 评论 -
Springboot默认的错误页是如何工作及工作原理你肯定不知道?
环境:Springboot2.4.11环境配置接下来的演示都是基于如下接口进行。@RestController@RequestMapping("/exceptions")public class ExceptionsController { @GetMapping("/index") public Object index(int a) { if (a == 0) { throw new BusinessException() ; }原创 2021-10-23 17:09:08 · 947 阅读 · 0 评论 -
Springboot强大的类型转换功能你必须要掌握
环境:Springboot2.4.11Spring3引入了一个core.convert包,它提供了一个通用类型转换系统。系统定义一个SPI来实现类型转换逻辑,定义一个API来在运行时执行类型转换。在Spring容器中,你可以使用此系统作为PropertyEditor实现的替代方案,将外部化的bean属性值字符串转换为所需的属性类型。你还可以在应用程序中需要进行类型转换的任何位置使用公共API。Converter SPI实现类型转换逻辑的SPI是简单且强类型的,如以下接口定义所示:packa原创 2021-10-17 08:45:37 · 4101 阅读 · 0 评论 -
Springboot API接口统一输出消息格式保持原接口返回值不变
环境:Springboot2.4.11很多时候我们对接口的返回值都会做统一的处理,返回{code, message,data}等信息标识本次请求的处理结果,这统一的处理也都是在各自的Controller上做自行的处理。本篇内容告诉你如何通过ResponseBodyAdvice对象来实现对结果的统一处理,也就是说在Controller上我们不再对返回结果进行处理了,而是由统一的一个ControllerAdice Bean对象进行处理。这对我们的Controller接口来说可读性更强,也业务无关的东西一概不原创 2021-10-10 10:53:37 · 616 阅读 · 0 评论 -
Springboot强大的数据格式化功能你必须要知道
环境:Springboot2.4.11通常,当需要实现通用类型转换逻辑时,可以使用转换器SPI 例如,用于在java.util.Date和Long之间转换。当你在客户端环境(如web应用程序)中工作并且需要解析和打印本地化字段值时,可以使用格式化程序SPI。ConversionService为两个SPI提供统一的类型转换API。在Springboot环境下如何自定义数据类型的转换?Formatter SPIFormatter SPI 实现字段格式化逻辑非常简单,而且是强类型的。以下列表显示格原创 2021-09-30 13:53:52 · 1896 阅读 · 0 评论 -
Springboot强大的日志功能你真的了解吗?这些功能你肯定不知道
环境:Springboot2.4.10日志配置详解Spring Boot使用Commons Logging记录所有内部日志,但保留底层日志实现的打开状态。为JUL日志记录、Log4J2和Logback提供了默认配置。在每种情况下,记录器都预先配置为使用控制台输出,还可以使用可选的文件输出。默认情况下,如果使用 “Starters”,则使用Logback进行日志记录。还包括适当的Logback路由,以确保使用JUL日志、Commons Logging、Log4J或SLF4J的依赖库都能正常工作。原创 2021-09-28 19:10:02 · 1197 阅读 · 1 评论 -
Springboot如何动态注册处理请求接口?这个知识点你值得了解一下
环境:springboot2.2.10.RELEASE编写一个准备用来出来请求的方法@Servicepublic class UserHandler { @ResponseBody public Object getUsers(@PathVariable("id") String id, HttpServletRequest request) { System.out.println(request) ; return "查询用户ID为: " + id ; } }原创 2021-08-09 09:04:44 · 2239 阅读 · 0 评论 -
Springboot中接口参数校验N种方法你会几个?
环境:springboot2.2.10.RELEASESpring Validation验证框架对参数的验证机制提供了@Validated(Spring's JSR-303规范,是标准JSR-303的一个变种),javax提供了@Valid(标准JSR-303规范),结合BindingResult对象可以直接获取错误信息。JSR是什么?JSR是Java Specification Requests的缩写,意思是Java 规范提案。是指向JCP(Java Community Process)提出新原创 2021-08-04 08:58:48 · 1479 阅读 · 0 评论 -
Spring Cloud Gateway应用详解2内置过滤器
环境:springboot2.3.7 + spring cloud Hoxton.SR9路由过滤器允许以某种方式修改传入的HTTP请求或输出HTTP响应。路由过滤器的作用域为特定路由。Spring Cloud Gateway包括许多内置的GatewayFilter工厂。 AddRequestHeader 过滤器工厂 作用:在请求中添加header信息(向目标服务)。对应过滤器工厂AddRequestHeaderGatewayFilterFactory spring: cloud:原创 2021-07-27 09:09:25 · 399 阅读 · 0 评论 -
Springboot编程式事务使用方式详解
环境:springboot2.3.9.RELEASESpring提供两种编程式事务管理方法:使用TransactionTemplate 或 TransactionalOperator 直接创建TransactionManager的实现Spring官方推荐使用TransactionTemplate方式准备// 实体类@Entity@Table(name = "BC_USERS")@Datapublic class Users{ private String username ;原创 2021-07-13 09:03:37 · 1683 阅读 · 0 评论 -
SpringCloud SpringBoot 源码解读
Spring / Spring MVC / SpringBoot / SpringCloud 应用技巧,扩展点,源码解读来啦公众:Springboot实战案例锦集原创 2021-07-09 09:27:13 · 84 阅读 · 0 评论 -
Java分布式事务实现Atomikos
先了解X/Open DTP(Distributed Transaction Processing)模型X/Open DTP模型与XA规范X/Open,即现在的open group,是一个独立的组织,主要负责制定各种行业技术标准。官网地址:www。opengroup。org。X/Open组织主要由各大知名公司或者厂商进行支持,这些组织不光遵循X/Open组织定义的行业技术标准,也参与到标准的制定。下图展示了open group目前主要成员(官网截图):针对DTP,X/Open提供了以下参考原创 2021-07-06 08:55:41 · 521 阅读 · 0 评论 -
Spring Bean的作用域scope你知道多少?如何自定义作用域?
环境:spring5.3.31 Scope作用通过@Scope注解可以指定Bean的作用域,默认情况都是单例的(ConfigurableBeanFactory.SCOPE_SINGLETON=singleton)在创建bean实例时就是根据当前定义BeanDefinition中的Scope来做不同的创建,源码如下:protected <T> T doGetBean( String name, @Nullable Class<T> requi原创 2021-07-05 08:46:24 · 256 阅读 · 1 评论 -
Springboot整合百度开源分布式ID生成器UIDGenerator
环境:sprinboot2.3.12.RELEASE + uid-generator1.0.0简介UidGenerator是Java实现的, 基于Snowflake算法的唯一ID生成器。UidGenerator以组件形式工作在应用项目中, 支持自定义workerId位数和初始化策略, 从而适用于docker等虚拟化环境下实例自动重启、漂移等场景。 在实现上, UidGenerator通过借用未来时间来解决sequence天然存在的并发限制; 采用RingBuffer来缓存已生成的UID, 并行化UI原创 2021-07-02 07:19:00 · 1125 阅读 · 2 评论 -
Spring通过源码分析了解这3种Bean处理器的执行过程
环境:Spring5.3.3三种Bean处理器BeanFactoryPostProcessor BeanPostProcessor InstantiationAwareBeanPostProcessor1 BeanFactoryPostProcessor所有Bean在未初始化前执行,同时可以去修改常规Bean的相关定义信息,比如修改Bean的属性信息。准备类:public class CustomBeanFactoryPostProcessor implements BeanFa原创 2021-06-24 08:58:14 · 172 阅读 · 1 评论 -
Spring事务实现原理源码分析
Spring事务实现原理源码分析原创2021-06-14 09:21·FastCoder环境:spring5.3.3先阅读:《Spring IOC容器对Bean实例化的过程详解源码分析》目录:1、开启事务通过@EnableTransactionManagement注解开启事务功能@Configuration@EnableTransactionManagementpublic class AnnoConfig {} @Import(Transaction...原创 2021-06-22 09:01:30 · 167 阅读 · 0 评论 -
Java Cglib动态代理原理源码分析
环境:Java8Cglib代理使用System.setProperty(DebuggingClassWriter.DEBUG_LOCATION_PROPERTY, "E://cglib"); Enhancer enhancer = new Enhancer() ;enhancer.setSuperclass(PersonDAOImpl.class) ;enhancer.setCallback(new MethodInterceptor() { @Override public Ob原创 2021-06-20 11:15:59 · 538 阅读 · 0 评论 -
Springboot中常见的@Import注解的三种使用方式详解
环境:springboot2.3.9.RELEASE三种方法说明 直接导入普通数组的方式 导入ImportSelector类方式 导入ImportBeanDefinitionRegistrar方式 被导入的类加入到Spring IOC容器中。直接导入普通数组的方式public class A { @Bean public B b() { return new B() ; }}@Import({A.class})@Configurati原创 2021-06-15 09:35:15 · 746 阅读 · 0 评论 -
Spring IOC容器对Bean实例化的过程详解源码分析
环境:Spring5.3.3Spring容器启动时,创建DefaultListableBeanFactory 工厂实例化AnnotationConfigApplicationContext对象public AnnotationConfigApplicationContext(String... basePackages) { this(); scan(basePackages); refresh();}1.1 实例化单例Bean进入refresh方法中的原创 2021-06-12 07:14:08 · 236 阅读 · 1 评论 -
SpringBoot整合MyBatis完全使用注解方式定义Mapper
环境:springboot2.3.11 + MyBatis3.5.6依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId></dependency><dependency> <groupId>org.mybatis.spring.原创 2021-06-09 08:50:19 · 789 阅读 · 0 评论 -
elasticsearch 多条件时间范围查询
{ "query": { "bool": { "must": [ { "match": { "name": "张" } }, { "range": { "settlement_time": { "gte": "2019-01-01 04:00:00", "lte": "2019-01-01 04:59:59", .原创 2021-06-07 19:22:09 · 3212 阅读 · 0 评论 -
异步编程还在用Future?快来学习下CompletableFuture超级详细
环境:Java8Future基本应用Future是从JDK1.5开始有的,目的是获取异步任务执行的结果,通常情况会结合ExecutorService及Callable一起使用。1、Future结合Callable使用单任务执行private static class Task implements Callable<String> { @Override public String call() throws Exception { TimeUnit.SE原创 2021-06-05 08:15:59 · 185 阅读 · 1 评论 -
Spring AOP动态代理失效的解决方法@Transactional为何会失效
环境:springboot2.3.10演示类JavaBeanpublic class User { private Integer id ; private String name ; public User(Integer id, String name) { this.id = id; this.name = name; }}DAO接口public interface UserDAO { User save(User user) ;原创 2021-06-04 08:50:31 · 1205 阅读 · 1 评论 -
Springboot基础使用@Conditional多条件注册Bean
环境:springboot2.3.10需求:有这么一个Bean它被注册的条件是需要满足多个条件下才能被注册。如下pack: datasource: enabled: true---pack: cache: enabled: true只有在这两个属性都为true时才注册Bean。方法1 @ConditionalOnExpression注解说明:@Retention(RetentionPolicy.RUNTIME)@Target({ ElementTyp原创 2021-06-01 11:23:00 · 1114 阅读 · 0 评论 -
Kafka(zookeeper)环境配置超级详细
Kafka(zookeeper)环境配置超级详细2020-12-30 10:00:00·FastCoder环境:CentOS Linux release 8.1.1911 (Core) + zookeeper-3.6.2+kafka_2.13-2.7.0(2.13是scala版本,2.7.0是kafka版本,kafa使用scala开发的)+ jdk8zk下载地址:kafka下载地址:一、环境准备将下载的3个软件(jdk,zk,kafka)放在/root/sf目录(..原创 2021-05-28 08:59:55 · 6412 阅读 · 0 评论 -
JVM常用参数说明
汇集下所有的参数,方便查阅,收藏下参数类型:标准参数 '-' 直接就是 一个横杠。 非标准参数 ‘-X’ 一个‘X’ -X 选项是非标准选项, 如有更改, 恕不另行通知。 非稳定参数 '-XX' 两个 ‘XX’ 官方解释:The -XX options are subject to change at any time.(意思是:随时可能更改)。标准参数像这类的就是标准参数,基本是各个版本都差不多,有些可能不同版本下新增的。非标准参这非标准的都有说明。...原创 2021-05-26 09:02:29 · 129 阅读 · 0 评论 -
Springboot整合openfeign使用详解
环境:springboot2.3.8.RELEASE+springcloudHoxton.SR8引入依赖:<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> &..原创 2021-05-23 11:42:16 · 2202 阅读 · 1 评论 -
Springboot面试题整理附答案
以下面试题都来源网络整理什么是 SpringBoot?spring Boot 是为 spring 服务的,是用来简化新 spring 应用的初始搭建以及开发过程的。Spring Boot是Spring开源组织下的子项目,是Spring组件一站式解决方案,主要是简化了使用Spring的难度,简省了繁重的配置,提供了各种启动器,开发者能快速上手。为什么要用SpringBoot?为了解决java开发中的问题,繁多的配置、低下的开发效率,复杂的部署流程,和第三方技术集成难度大的问题,产生了sprin原创 2021-05-21 08:57:58 · 1078 阅读 · 1 评论 -
Java线程池中的线程发生OOM会如何?
环境:JDK1.8线程池中如果发生OOM后会如何?线程池ThreadPoolExecutor当有线程发生了OOM,线程池会停止工作吗?public static void main(String[] args) { ThreadPoolExecutor pool = new ThreadPoolExecutor(3, 3, 60, TimeUnit.SECONDS, new ArrayBlockingQueue<Runnable>(2)) ; pool.execute(()原创 2021-05-19 08:53:04 · 1465 阅读 · 1 评论 -
Springboot整合第三方OAuth2登录详解及避坑
环境:springboot2.3.10.RELEASE + OAuth2请先阅读《SpringBoot2 整合OAuth2实现统一认证》文章,本篇内容是调用之前写的一个OAuth2认证服务。相关依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId></depe.原创 2021-05-18 10:30:22 · 10742 阅读 · 0 评论 -
使用rocketmq-console管理RocketMQ
环境:RocketMQ4.8.0 + rocketmq-console2.0.0简介rocketmq-console是RocketMQ项目的扩展插件,是一个图形化管理控制台,提供Broker集群状态查看,Topic管理,Producer、Consumer状态展示,消息查询等常用功能,这个功能在安装好RocketMQ后需要额外单独安装、运行。下载并安装通过如下地址下载修改相关配置进入src\main\resources修改application.properties文件,修改端口.原创 2021-05-13 09:02:10 · 4416 阅读 · 1 评论