![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
框架
文章平均质量分 60
spring框架
Chris_Chris_
梦想架构师
展开
-
spring security部分源码分析 鉴权流程
鉴权的流程在FilterSecurityInterceptor中我们需要先执行登陆的操作,然后访问一个需要有权限鉴定的接口,进入org.springframework.security.web.access.intercept.FilterSecurityInterceptor#doFilter方法进入org.springframework.security.access.intercept.AbstractSecurityInterceptor#beforeInvocationorg.spring原创 2022-07-06 22:41:43 · 292 阅读 · 1 评论 -
spring security部分源码分析 记住我的功能
在security 的UsernamePasswordAuthenticationFilter 登陆成功时会进入rememberMeServices.loginSuccess的逻辑进入org.springframework.security.web.authentication.rememberme.JdbcTokenRepositoryImpl#createNewToken之后如果再进行登陆,那么就会在RememberMeAuthenticationFilter过滤器执行记住我的逻辑...原创 2022-07-01 00:01:59 · 228 阅读 · 0 评论 -
spring security部分源码分析 认证流程
spring security 认证流程部分源码原创 2022-06-15 22:42:41 · 166 阅读 · 0 评论 -
spring security部分源码分析 过滤器加载流程
在引入的springframework.boot.autoconfigure的包中的spring.factories中注入了//过滤器自动配置org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration原创 2022-06-08 22:06:18 · 199 阅读 · 0 评论 -
OAuth2的简单使用
OAuth2 协议:认证服务器允许⽤户授权第三⽅应⽤访问他们存储在另外的服务提供者(用户服务)上的信息,⽽不需要将⽤户名和密码提供给第三⽅应⽤或分享他们数据的所有内容Spring Cloud OAuth2 是 Spring Cloud 体系对OAuth2协议的实现,可以⽤来做多个微服务的统⼀认证(验证身份合法性)授权(验证权限)。通过向OAuth2服务(统⼀认证授权服务)发送某个类型的grant_type进⾏集中认证和授权,从⽽获得access_token(访问令牌),⽽这个token是受其他微服务信任原创 2022-02-15 16:46:21 · 1289 阅读 · 0 评论 -
springboot 整合日志
pom文件中排除默认的log的包 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupI原创 2021-06-04 01:28:57 · 250 阅读 · 0 评论 -
mybatis部分源码
mybatis源码初始化的时候读取配置获得一个SqlsessionFactory //读取配置文件成流InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml"); //解析配置文件流,获得一个SqlsessionFactorySqlSessionFactory factory = new SqlSessionFactoryBuilder().build(inputStream);进入new Sql原创 2021-05-02 17:39:38 · 85 阅读 · 0 评论 -
mybatis的插件使用
mybatis插件mybatis可以对四大组件(executor、statementhandler、resultsethandler、parameterhandler)进行拦截比如增强parameterhandler的时候 public ParameterHandler newParameterHandler(MappedStatement mappedStatement,Object object, BoundSql sql, InterceptorChain interceptorChain){原创 2021-05-02 17:39:11 · 203 阅读 · 0 评论 -
mybatis的缓存
一级缓存在执行器executor的查询方法中 @Overridepublic <E> List<E> query(MappedStatement ms, Object parameter, RowBounds rowBounds, ResultHandler resultHandler) throws SQLException { BoundSql boundSql = ms.getBoundSql(parameter); // 根据参数生成一个缓存的key Cach原创 2021-05-02 17:38:48 · 42 阅读 · 0 评论 -
spring基础整理ioc aop 和事务控制
spring基础iocaop动态代理的两种实现方式手写ioc和aop事务控制注入的几种方式xml创建beanxml注入bean注解插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入spring 基础知识整理ioc什么是ioc:–> 控制反转(Inversion of Contro原创 2020-08-09 23:19:52 · 119 阅读 · 0 评论 -
springmvc基础整理
springmvc springmvc经典三层架构经典三层架构表现层(view 视图+ controller):负责接收请求,转发请求,它转发给业务层业务层:执行业务逻辑,需要操作数据源则使用持久层的功能持久层:操作数据库springmvc是一个应用于表现层的框架,是对servlet的封装,简化了servlet的开发M:(数据模型(各种vo,po,dto)+业务模型(业务逻辑代码))V:view视图(jsp,html)C:controller控制器(servlet)配置<servl原创 2020-08-22 03:40:52 · 134 阅读 · 0 评论 -
springboot
springboot约定优于配置,快速使用spring的一种方式>>>遵循约定开发springboot的两大核心,起步依赖,自动配置使用springboot注意 :创建springboot项目的时候这里要选择一个稳定的版本springboot启动的时候,时候会扫描启动类所在的包及其子包,所以@Controller等要注入ioc的bean的类要写在启动类的所在包的子包下面springboot热部署引入依赖修改idea配置Ctrl+Shift+Alt+/ 修改设置原创 2020-09-01 04:00:57 · 96 阅读 · 0 评论 -
quartz和elastic-job任务调度的使用
quartz 任务调度逻辑梳理引入jar包<dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>2.3.2</version></dependency>1.创建任务调度器public static Scheduler createScheduler() thr原创 2020-09-15 20:26:13 · 194 阅读 · 0 评论 -
mybatis基础知识
mybatisorm框架 : 对象关系映射ORM完成面向对象的编程语言到关系数据库的映射。当ORM框架完成映射后,程序员既可以利用面向对象程序设计语言的简单易用性,又可以利用关系数据库的技术优势。ORM把关系数据库包装成面向对象的模型。ORM框架是面向对象设计语言与关系数据库发展不同步时的中间解决方案。采用ORM框架后,应用程序不再直接访问底层数据库,而是以面向对象的放松来操作持久化对象,而ORM框架则将这些面向对象的操作转换成底层SQL操作。ORM框架实现的效果:把对持久化对象的保存、修改、删除等操作原创 2020-09-18 22:00:16 · 258 阅读 · 1 评论 -
dubbo的基础知识
dubbo 是一款高性能,轻量级rpc框架,可以和spring集成三大核心能力:面向接口的远程方法调用智能容错和负载均衡服务自动注册和发现其他特性:高度可扩展能力 :协议,传输,序列化都被设计成扩展点运行期流浪调度:配置路由规则实现灰度发布等功能可视化服务治理和运维dubbo配置项 <dubbo:application name="service-consumer" > <dubbo:parameter key="qos.enable" va原创 2020-10-18 02:44:34 · 262 阅读 · 0 评论 -
dubbo源码
dubbo源码构建参考官方文档Provider: 暴露服务的服务提供方Protocol 负责提供者和消费者之间协议交互数据Service 真实的业务服务信息 可以理解成接口 和 实现Container Dubbo的运行环境Consumer: 调用远程服务的服务消费方Protocol 负责提供者和消费者之间协议交互数据Cluster 感知提供者端的列表信息Proxy 可以理解成 提供者的服务调用代理类 由它接管 Consumer中的接口调用逻辑Registry: 注册中心,用于作为服务发原创 2020-10-18 02:48:44 · 2720 阅读 · 1 评论 -
spring源码bean的初始化过程和循环依赖
spring 容器初始化流程spring初始化的核心在refresh()方法@Override public void refresh() throws BeansException, IllegalStateException { // 对象锁加锁 synchronized (this.startupShutdownMonitor) { /* Prepare this context for refreshing. 刷新前的预处理 表示在真正做refresh原创 2020-10-20 22:10:24 · 281 阅读 · 0 评论 -
springmvc 源码分析
springmvc流程FrameworkServlet.doGet/doPost()->FrameworkServlet->processRequest()->DispatcherServlet.doservice()->DispatcherServlet.doDispatch()SpringMVC处理请求的流程即为 org.springframework.web.servlet.DispatcherServlet#doDispatch方法的执行过程1)调用getHandler原创 2021-05-01 11:15:07 · 88 阅读 · 0 评论 -
spring cloud使用Gateway
gateway路由GateWay不需要使用web模块,它引入的是WebFlux(类似于SpringMVC)新建路由项目然后导入maven<!--spring boot 父启动器依赖--><parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <v原创 2021-04-30 14:30:02 · 219 阅读 · 0 评论 -
spring cloud使用Feign
feign远程调用组件Feign是Netflix开发的一个轻量级RESTful的HTTP服务客户端(用它来发起请求,远程调用的),是以 Java接口注解的方式调用Http请求,而不用像Java中通过封装HTTP请求报文的方式直接调用,Feign被 广泛应用在Spring Cloud 的解决方案中。它封装了http调用流程。Feign = RestTemplate+Ribbon+Hystrix使用feign:引入依赖的jar包<dependencies> <!--eureka原创 2021-04-30 14:29:12 · 177 阅读 · 0 评论 -
spring cloud使用Hystrix
Hystrix熔断器包裹请求:使用HystrixCommand包裹对依赖的调用逻辑。跳闸机制:当某服务的错误率超过一定的阈值时,Hystrix可以跳闸,停止请求该服务一段时间。资源隔离:Hystrix为每个依赖都维护了一个小型的线程池(舱壁模式)(或者信号量)。如果该线程 池已满, 发往该依赖的请求就被立即拒绝,而不是排队等待,从而加速失败判定。监控:Hystrix可以近乎实时地监控运行指标和配置的变化,例如成功、失败、超时、以及被拒绝 的请求等。回退机制:当请求失败、超时、被拒绝,或当断路器打开原创 2021-04-30 14:28:22 · 170 阅读 · 0 评论 -
spring cloud使用ribbon
使用ribbon负载均衡注入RestTemplate的时候加注解@LoadBalanced@Bean@LoadBalancedpublic RestTemplate getRestTemplate() { return new RestTemplate();}@GetMapping("/checkState/{userId}")public Integer findResumeOpenState(@PathVariable Long userId) { String url = "原创 2021-04-30 14:27:52 · 130 阅读 · 0 评论 -
spring cloud服务注册与发现
spring cloudEurekaeureka客户端eureka服务端使用ribbon负载均衡Hystrix熔断器Eureka分布式微服务架构中,服务注册中心用于存储服务提供者地址信息、服务发布相关的属性信息,消费者 通过主动查询和被动通知的方式获取服务提供者的地址信息,消费者只需要知道当前系统发布了那些服务,而不需要知道服务具体存在于什么位置。服务端:eureka注册中心,需要创建工程,引入服务端jar客户端:服务提供者和消费者对于,eureka来说都是客户端,提供者和消费者向eureka注册自原创 2020-11-11 02:02:26 · 125 阅读 · 0 评论 -
spring cloud 源码 feign
feign源码进入启动类上的@EnableFeignClients进入org.springframework.cloud.openfeign.EnableFeignClients@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.TYPE)@Documented@Import(FeignClientsRegistrar.class)public @interface EnableFeignClients {}进入org.spri原创 2021-04-30 10:52:06 · 80 阅读 · 0 评论 -
spring cloud 源码 Hystrix
Hystrix源码入口@EnableCircuitBreaker注解@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documented@Inherited//导入断路器导入选择器@Import(EnableCircuitBreakerImportSelector.class)public @interface EnableCircuitBreaker {}进入org.springframework.cloud原创 2021-04-30 10:51:15 · 336 阅读 · 0 评论 -
spring cloud 源码 Ribbon
Ribbon负载均衡策略spring cloud是基于springboot的框架,它会加载每个包里面的spring.factories中的类相关组件IRule:是在选择实例的时候的负载均衡策略对象IPing:是用来向服务发起心跳检测的,通过心跳检测来判断该服务是否可用 ServerListFilter:根据一些规则过滤传入的服务实例列表ServerListUpdater:定义了一系列的对服务列表的更新操作@LoadBalanced注解//被这个注解标记的RestTemplate bean会被L原创 2021-04-30 10:25:39 · 128 阅读 · 0 评论 -
spring cloud 源码 EurekaClient
EurekaClientspring cloud是基于springboot的框架,它会加载每个包里面的spring.factories中的类EurekaClient服务注册找到spring.factories的org.springframework.cloud.netflix.eureka.EurekaClientAutoConfiguration依然使用SpringBoot的自动装配进入org.springframework.cloud.netflix.eureka.EurekaClientA原创 2021-04-30 10:19:57 · 90 阅读 · 0 评论 -
spring cloud 源码 EurekaServer
spring cloudEurekaServer启动过程Eureka Server服务接口暴露springboot启动时会去根目录下的META-INF/spring.factories文件中扫描文件里面配置好的类并加载,springcloud利用了SpringBoot的这一个特点打开eureka-server的jar包找到META-INF/spring.factories配置文件SpringBoot启动时会自动加载org.springframework.cloud.netflix.eureka.se原创 2021-01-13 20:36:55 · 168 阅读 · 0 评论