spring-framework
文章平均质量分 89
spring framework
demon7552003
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
SSE实现消息推送
摘要:本文介绍了使用Java开发SSE(Server-Sent Events)流式接口的实现方法。SSE是一种基于HTTP的单向服务器推送技术,适合服务器主动推送数据的场景。原创 2025-06-22 16:02:18 · 1298 阅读 · 0 评论 -
Feign针对每个接口单独设置超时
Feign可以通过配置文件来定义调用服务器端REST API的超时设置,可以指定全局超时,也可以指定声明`@FeignClient`的单个Client,但是不可以设置Client中的每个接口方法的超时。由于项目中部分接口需要较大的超时,如果通过单独定义一个额外的Client,则需要调整大量代码,那能否通过底层框架解决呢。原创 2025-06-22 15:58:05 · 734 阅读 · 0 评论 -
Mybatis技术内幕-基础支撑层
MyBatis 的整体架构分为三层, 分别是基础支持层、核心处理层和接口层。基础支持层包含整个MyBatis 的基础模块,这些模块为核心处理层的功能提供了良好的支撑。原创 2024-05-12 12:10:09 · 855 阅读 · 0 评论 -
sentinel与nacos集成
sentinel与nacos集成实战原创 2024-04-05 11:06:04 · 2961 阅读 · 0 评论 -
Spring Retry机制详解
Spring框架提供了Spring Retry能让在项目工程中很方便的使用重试。原创 2024-01-27 08:48:05 · 2907 阅读 · 0 评论 -
Java Bean Validation API
Java Bean Validation API原创 2024-01-01 10:11:37 · 1524 阅读 · 0 评论 -
Java Bean Validation规范
约束是一系列约束注解与约束校验实现的组合。约束注解可以应用在types, fields, methods,constructors, parameters, container elements 或其他约束注解。Bean校验API的默认包名为。在指定一个注解应用于Java Bean的同时,需要指定属性,这些属性映射为注解元素。messagegroups和payload,为保留名称,注解元素命名不能以valid开头,constraint 可以使用其他元素名称作为其属性。原创 2024-01-01 10:06:00 · 1356 阅读 · 0 评论 -
Spring国际化实现
spring 国际化的详解解释原创 2023-02-19 15:08:21 · 862 阅读 · 0 评论 -
Spring中的数据校验--进阶
Spring数据校验进阶原创 2023-02-19 11:54:36 · 811 阅读 · 0 评论 -
Spring中的数据校验
spring数据校验详解原创 2023-02-19 11:52:16 · 1022 阅读 · 0 评论 -
Spring注入详解
spring bean注入的各种情况原创 2022-06-01 20:43:14 · 671 阅读 · 0 评论 -
webflux系列--reactor源码(二)
操作符(Operator)合并多个FluxcombineLatestconcatconcatMapmergerepeatcache行为(behavior)聚合操作collectreducedistinctgroup byscan其他错误处理Backpressure(背压)eventretryusingdematerialize,materialize发布和订阅(hot流和cold流)subscribe //subscribe(consumer,原创 2021-01-14 19:20:15 · 559 阅读 · 0 评论 -
webflux系列--reactor源码(一)
文章目录基础顶级接口reactor核心原理core声明阶段FluxOperatorOptimizableOperatorInternalFluxOperatorInnerOperator核心类继承结构subscribe 阶段onSubscribe 阶段request 阶段调用阶段调用流程图onAssembly源码解析SourceProduce原创 2021-01-14 19:18:54 · 3723 阅读 · 0 评论 -
webflux系列--源码解析二
accept包RequestedContentTypeResolver处理mediaType的接口。public interface RequestedContentTypeResolver { List<MediaType> MEDIA_TYPE_ALL_LIST = Collections.singletonList(MediaType.ALL); /**将给定的请求解析为请求的媒体类型列表。返回的列表首先按特异性排序,然后按质量参数排序。*/ List<MediaTyp原创 2021-01-14 08:26:08 · 434 阅读 · 0 评论 -
webflux系列--源码解析一
文章目录基础接口DispatcherHandlerHandlerMappingHandlerAdapterHandlerResultHandlerResultHandlerhandler包AbstractHandlerMappingAbstractUrlHandlerMappingSimpleUrlHandlerMappingconfig包EnableWebFluxWebFluxConfigurerDelegatingWebFluxConfigurationPathMatchConfigurerCorsRe原创 2021-01-14 08:24:32 · 1185 阅读 · 0 评论 -
webflux系列--基础
文章目录Spring Mvc 和 Spring WebFluxWebFlux 的优势&提升性能WebFlux 应用场景异同点响应式编程Reactive Streams顶级接口ReactorReactor实现FluxMonoFlux常用函数**调试reactor**StepVerifier方法Reactor中的多线程**Schedulers**Schedulers.immediate()Schedulers.single()Schedulers.elastic()Schedulers.parallel原创 2021-01-14 08:21:33 · 1148 阅读 · 0 评论 -
webflux系列--reactor功能
创建一个新的Fluxjust指定序列中包含的全部元素。创建出来的 Flux 序列在发布这些元素之后会自动结束。 即有限序列。public static <T> Flux<T> just(T... data);public static <T> Flux<T> just(T data);empty()创建一个不包含任何元素,只发布结束消息的序列public static <T> Flux<T> empty();erro原创 2020-12-13 12:18:24 · 2446 阅读 · 0 评论 -
Spring AOP源码解析(三)—— AOP引入(续)
上篇文章提到Advisor由AspectJAdvisorFactory 的具体实现类ReflectiveAspectJAdvisorFactory真正创建。然后由ProxyFactory使用Advisors实现代理对象的创建。AbstractAspectJAdvisorFactoryAbstractAspectJAdvisorFactory主要提供了一些通用方法。主要主要涉及的AspectJ注解包括: private static final Class<?>[] ASPEC.原创 2020-08-15 08:38:58 · 463 阅读 · 0 评论 -
Spring AOP源码解析(二)—— AOP引入
目录配置类AopAutoConfigurationAspectJAutoProxyingConfigurationClassProxyingConfiguration@EnableAspectJAutoProxyAspectJAutoProxyRegistrarAopConfigUtils代理生成AnnotationAwareAspectJAutoProxyCreatorAwareBeanPostProcessorAopInfrastructur...原创 2020-08-15 06:54:25 · 598 阅读 · 0 评论 -
Spring的@Configuration配置类-Full和Lite模式
前言各位小伙伴大家好,我是A哥。这是一篇“插队”进来的文章,源于我公众号下面的这句评论:官方管这两种模式分别叫:Full @Configuration和lite @Bean mode,口语上我习惯把它称为Spring配置的Full模式和Lite模式更易沟通。的确,我很简单的“调研”了一下,知晓Spring配置中Lite模式和Full模式的几乎没有(或者说真的很少吧)。按照我之前的理论,大多人都不知道的技术(知识点)那肯定是不流行的。但是:不流行不代表不重要,不流行不代表不值钱,毕竟高薪往往只有少数转载 2020-08-13 19:08:25 · 7552 阅读 · 4 评论 -
Spring Boot Transaction 源码解析(二)
JDBC事务时Spring 事务的具体实现。DataSourceTransactionManagerpublic class DataSourceTransactionManager extends AbstractPlatformTransactionManager implements ResourceTransactionManager, InitializingBean { //数据库DataSource private DataSource dataSource; p...原创 2020-08-12 20:22:02 · 586 阅读 · 0 评论 -
Spring AOP源码解析(一)——核心概念
在了解Spring事务源码时,根据调用跟踪,最后发现是TransactionAttributeSourcePointcut判断是否应用了@Transactional注解,来进行AOP。TransactionAttributeSourcePointcut是Pointcut接口的一个实现。PointcutPointcut的唯一作用就是筛选要拦截的目标方法,Pointcut只是一种筛选规则(或者叫过滤器)。Pointcut由ClassFilter(类过滤器)和MethodMatcher(方法匹配器)两原创 2020-08-12 20:20:42 · 596 阅读 · 0 评论 -
Spring Boot Transaction 源码解析(一)
在使用Spring事务时,会使用@Transactional注解。@Transactional指定了PlatformTransactionManager。public @interface Transactional { @AliasFor("transactionManager") String value() default ""; /*PlatformTransactionManager */ @AliasFor("value") String transactionManag原创 2020-08-11 20:07:34 · 685 阅读 · 0 评论 -
Spring Security OAuth2源码解析(三)——单点登录。
引入@EnableOAuth2Client@EnableConfigurationProperties(OAuth2SsoProperties.class)@Import({ OAuth2SsoDefaultConfiguration.class, OAuth2SsoCustomConfiguration.class, ResourceServerTokenServicesConfiguration.class })public @interface EnableOAuth2Sso {}原创 2020-08-08 14:37:52 · 520 阅读 · 0 评论 -
Spring Security OAuth2源码解析(二)
鉴权服务器对客户端鉴权之后,会生成token,客户端使用token,就可以去资源服务器获取资源。@EnableResourceServer@Import(ResourceServerConfiguration.class)public @interface EnableResourceServer {}ResourceServerConfigurationResourceServerConfiguration是WebSecurityConfigurerAdapter的子类实现。引入.原创 2020-08-08 11:21:54 · 705 阅读 · 0 评论 -
Spring Security OAuth2源码解析(一)
目录引入AuthorizationServerEndpointsConfiguration属性AuthorizationEndpointOAuth2RequestFactoryDefaultOAuth2RequestFactoryTokenEndpointTokenGranterAuthorizationServerTokenServicesDefaultTokenServicesTokenStoreAuthorizationServerSecu...原创 2020-08-07 08:17:31 · 1255 阅读 · 0 评论 -
JWT
目录1. JSON Web Token是什么2. 什么时候你应该用JSON Web Token3. JSON Web Token的结构是什么样的HeaderPayloadSignature4. JSON Web Tokens是如何工作的5. 基于Token的身份认证 与 基于服务器的身份认证5.1 基于服务器的身份认证5.2. JWT与Session的差异5.3. 基于Token的身份认证是如何工作的5.4. 用Token的好处5.5. JWT与O..转载 2020-08-07 08:15:21 · 229 阅读 · 0 评论 -
OAuth2(二)——实现
OAuth客户端向授权服务器注册 OAuth 客户端OAuth 客户端(一般是一个应用)由一个称为“客户端标识符”的特殊字符串来标识(一般:client_id),每个客户端的标识符必须唯一,因此,客户端标识符几乎总是由授权服务器来分配。还需要一个客户端凭据(一般用client_secret标识),用于与授权服务器交互时对自身进行身份认证。客户端 需要知道授权端点和令牌端点的位置,除此之外不需要知道有关服务器的任何其他信息。使用授权码许可类型获取令牌OAuth 客户端要从授权服务器获取令原创 2020-08-02 10:42:05 · 1021 阅读 · 0 评论 -
Spring Boot Actuator
spring boot 包含一些额外的特点来帮助你监控和管理你的应用,当你将它放到生产环境中。你能够选择管理和监控你的应用通过Http 端点或者使用JMX。审计,健康和指标收集也可以自动应用于您的应用程序。Enabling Production-ready FeaturesSpring-boot-actuator模块提供了所有的Spring boot的准生产特点。简单的使用方式是添加一个依赖spring-boot-starter-actuator到“Starter”中。添加actuator到M.原创 2020-07-26 10:37:37 · 918 阅读 · 0 评论 -
OAuth2(一)——核心概念
OAuth 2.0 是什么OAuth 2.0 是一个授权协议,它允许软件应用代表(而不是充当)资源拥有者去访问资源拥有者的资源。应用向资源拥有者请求授权,然后取得令牌(token),并用它来访问资源。这一切都不需要应用去充当资源拥有者的身份,因为令牌明确表示了被授予的访问权。作为一个授权框架,OAuth 关注的是如何让一个系统组件获取对另一个系统组件的访问权限。在OAuth 的世界中,最常见的情形是客户端应用代表资源拥有者(通常是最终用户)访问受保护资源。需要关心如下组件。资源拥有者有权访问AP原创 2020-07-18 08:44:29 · 489 阅读 · 0 评论 -
Spring Security源码解析(一)——认证和鉴权
Spring Security解决用户认证(Authentication)和用户授权(Authorization)2个问题。源码地址:https://github.com/spring-projects/spring-security/tree/5.2.1.RELEASE认证过程AuthenticationManager该对象提供了认证方法的入口,接收一个Authentiaton对象作为参数;public interface AuthenticationManager { Authe原创 2020-07-16 20:00:23 · 1651 阅读 · 1 评论 -
Spring Security源码解析(二)——引入
https://github.com/spring-cloud/spring-cloud-security/tree/v2.2.1.RELEASESpring Security的引入在使用Spring Security时,会定义一个WebSecurityConfigurerAdapter的子类,并同时加上注解@EnableWebSecurity。// org.springframework.security.config.annotation.web.configuration;@En.原创 2020-07-15 20:43:02 · 580 阅读 · 0 评论 -
Spring Security源码解析(三)—— HttpSecurity
HttpSecurity的performBuild()方法,会构造一个DefaultSecurityFilterChain,需要传入Filters。 private List<Filter> filters = new ArrayList<>(); @Override protected DefaultSecurityFilterChain performBuild() { filters.sort(comparator); return new Defau原创 2020-07-15 20:42:20 · 2362 阅读 · 0 评论 -
Spring Security源码解析(四)—— 过滤器
WebSecurity的performBuild()方法,会构造一个FilterChainProxy实例。参数类型为List<SecurityFilterChain>。 FilterChainProxy filterChainProxy = new FilterChainProxy(securityFilterChains); if (httpFirewall != null) { filterChainProxy.setFirewall(httpFirewall); }原创 2020-07-15 20:41:09 · 873 阅读 · 0 评论 -
Sentinel 源码分析(二)
SlotProcessorSlotChainpublic abstract class ProcessorSlotChain extends AbstractLinkedProcessorSlot<Object> { public abstract void addFirst(AbstractLinkedProcessorSlot<?> protocolProcessor); public abstract void addLast(AbstractLin.原创 2020-06-16 12:12:39 · 325 阅读 · 0 评论 -
Sentinel 源码分析(一)
总体逻辑入口public enum EntryType { /** * Inbound traffic */ IN("IN"), /** * Outbound traffic */ OUT("OUT");} public static Entry entry(String name) throws BlockException { return Env.sph.entry(name, EntryT原创 2020-06-16 12:12:11 · 646 阅读 · 0 评论 -
Ribbon服务器状态:ServerStats及其断路器原理
目录前言正文统计数据/属性成员方法状态/指标信息使用场景举例默认值不合理代码示例总结前言我们知道Ribbon它是一个客户端负载均衡器,因此它内部维护着一个服务器列表ServerList,当实例出现问题时候,需要将这部分异常的服务Server从负载均衡列表中T除掉,那么Ribbon是以什么作为参考,决定T除/不T除Server的呢???这就是本文将要讲述的服务...转载 2020-05-03 08:46:14 · 1423 阅读 · 0 评论 -
Spring ribbon
Ribbon是一个客户端负载均衡器,可以让你对HTTP和TCP客户端的行为进行大量控制,Feign已经使用了Ribbon,因此,如果你使用@FeignClient,此部分也适用。Ribbon中的一个核心概念是命名客户端,每个负载均衡器都是一组组件的一部分,这些组件一起工作以按需联系远程服务器,并且该集合具有你作为应用程序开发人员提供的名称(例如,通过使用@FeignClient注解)。根据需要...原创 2020-05-03 08:44:08 · 988 阅读 · 0 评论 -
Feign深入学习(一)
介绍Feign版本https://github.com/Netflix/feign不再维护,修改为https://github.com/OpenFeign/feign。Maven<dependency> <groupId>io.github.openfeign</groupId> <artifactId>feign-c...原创 2020-05-03 08:43:43 · 751 阅读 · 0 评论 -
Feign深入学习(二)
编码器Encoder编码器将对象编码到HTTP请求体中。当方法参数没有标注@Param注解时,编码器会起作用。不给参数标注@Param注解,就可以通过Encoder编码器把POJO编码进Body体里(如果需要JSON格式,可以借助JSON库)public interface Encoder { // 变量输入到Map<String, ?>,表示要编码的对象是一个表单 T...原创 2020-05-03 08:42:44 · 557 阅读 · 0 评论
分享