![](https://img-blog.csdnimg.cn/20190927151026427.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
框架源码
文章平均质量分 73
框架源码
小明同学~~
以恒心,待初心
展开
-
【jvm源码】--1.synchronized实现原理以及锁升级过程
最近看了两天八股文,看到并发 synchronized的实现原理,里面总说monitor对象有enter有exit。也没看到java里面有monitor类 ,一怒之下,就直接干jvm源码。 首先,我的C和C++已经还给老师了,基本忘没了,但是没关系,先看着,看不懂再学学。连续看了三,四天,还是看懂一点点,但是感觉也够了,能了解jvm里面运行大概是这个意思就行了,太细致的也真看不懂。原创 2022-09-16 16:55:15 · 834 阅读 · 0 评论 -
2-4.spring源码--BeanPostProcessor
对于 BeanPostProcessor知道spring的同学都不会模式,只要面试都会被问到 bean的 生命周期,然后大家都回去背下BeanPostProcessor的postProcessBeforeInitialization和postProcessAfterInitialization两个方法。大多数人都是当时背一下,并不知道具体是怎么运行流转的,执行的原理是什么样子。...原创 2022-08-31 19:39:55 · 259 阅读 · 0 评论 -
2-3.spring源码--BeanFactoryPostProcessor
从上面 的文档上看就是可以修改bean信息,但是修改的触发节点是在bean实例化前才会有效果。从源码中可以看出,这个接口只有一个接口,所有的实现都是集成这个接口,下面 是实现接口的对应类型。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ShhFCT61-1661767517508)(…\picture\14.png)]......原创 2022-08-29 18:06:02 · 228 阅读 · 0 评论 -
2-2.spring源码--BeanDefinition
通过读取spring官方参考文献,你就应该对spring有一个清晰的认知,对于ioc的地位的描述请看spring文献开篇内容从上面内容看ioc的功能重要程度是最重要,aop还要排在ioc后面。对于ioc学习先铺垫下一些核心内容,本次介绍BeanDefinition以及相关子类。...原创 2022-08-26 09:36:19 · 226 阅读 · 0 评论 -
2-1-4.spring源码--AbstractApplicationContext
江湖上流传这样一个传说,只要把spring的refresh()搞明白,spring就学的七七八八了。今天来盘一下refresh方法,这个这是一个困难点了。在创建对象使用构造方法时候调用了refresh方法,也就是说,在程序启动,构建bean的过程中执行refresh方法。下面我们看下具体的refresh方法包括那些内容。......原创 2022-08-25 18:08:15 · 181 阅读 · 0 评论 -
2-1-1.spring源码--BeanFactory
在spring官方api文档中,查看BeanFactory介绍中,第一句对于BeanFactory的表述非常贴切。BeanFactory作为一个根接口用于访问spring bean的容器(原文 :The root interface for accessing a Spring bean container.)。原创 2022-08-08 16:49:45 · 239 阅读 · 0 评论 -
2-1.spring源码--Container
在参考文献上第一章就是ioc介绍,下面是第一章提到中心内容,是下面这句话:A bean is an object that is instantiated, assembled, and managed by a Spring IoC container。后面ioc的学习会围绕这两个内容进行展开,本次主要学习container相关内容。通过读取spring官方参考文献,你就应该对spring有一个清晰的认知,对于ioc的地位的描述请看spring文献开篇内容。...原创 2022-08-08 16:46:04 · 242 阅读 · 0 评论 -
2.spring源码--AOP和IOC
通常情况下 ,一聊到spring 基本就会提到aop和ioc。网上对于这两个核心内容已经讲的很多了,有点烂大街了,多数都从理论上去阐述aop是什么样的,ioc是什么样的。但是真正从代码来看,aop和ioc其实是不在量级上的 ,可以这么说,aop是实现ioc的过程中,一块小关键点的实现,在后面的代码中会拆解ioc的实现过程,从代码过程中可以体会到这个部分内容。首先需要理解到底什么是ioc?网上有很多玄乎的答案,其实他真正在做的事情就是 “通过spring获取一个bean的过程” 。我想最能表现ioc的就是原创 2022-07-11 17:34:45 · 253 阅读 · 0 评论 -
1.spring源码--学习方式
本人在互联网工作四年了,去年开始待10人小团队,开始接触管理相关内容,但是个人本身还是对于技术更感兴趣些,最近在看spring源码内容,记录下自己学习看源码的心路历程和一些实际经验进行分析。首先,要下载一份源码(废话但是很重要),下面是几个思路:先梳理脉络,不要深入细节(先看个大概面,再由面到点)尝试看注释 ( 看不懂英文,整个翻译插件 )有注释不懂可以大胆猜想做一些dome进行尝试debug学习源码确实有困难,最需要的是 坚持,坚持,还是坚持。这个虽然是屁话,但是真的很重要,每天坚持看一些,一点点记录,原创 2022-07-11 17:32:43 · 623 阅读 · 0 评论 -
定时任务Quartz
因为公司内部项目有使用定时任务管理的场景,所以对定时任务进行技术考察。根据当下的分布式定时任务管理工具相对较多,主要选取主流技术xxl-job,elastic-job,Quartz三种技术。经过技术对比三种最终选择Quartz,原因如下:1. 首先进行xxl-job和elastic-job对比,这两种使用层面相似,都支持分布式切片,提供了管理界面,还有一些高级特性,扩容,降级等等处理。但是elastic-job使用了zookeeper学习成本更高,且如今不在维护了,在这两个前提下,排除了elastic-原创 2022-06-13 15:03:24 · 762 阅读 · 0 评论 -
架构篇--系统监控--spring-boot2.0.X 系统原生信息监控,SQL信息监控,cpu温度监控报警,cup磁盘内存使用率监控报警,自定义端点监控以及子节点获取,系统异常邮件通知
spring-boot-actuator @author Simon Actuator模块测试demo,项目非工程化,功能基础,仅仅为了测试监控内容,前后端传值json形式,restful接口。项目一共分三个模块原生信息监控,druid信息监控,自定义端点监控。本项目使用2.0.2.RELEASE,请注意使用2.0.0之前的版本不会匹配。springboot推出2.0版本的ac...原创 2018-05-25 16:47:44 · 5630 阅读 · 0 评论 -
3 Spring Cloud Ribbon
Spring Cloud RibbonSpring Cloud Ribbon 是一套基于 Netflix Ribbon 实现的客户端负载均衡和服务调用工具。Netflix Ribbon 是 Netflix 公司发布的开源组件,其主要功能是提供客户端的负载均衡算法和服务调用。Spring Cloud 将其与 Netflix 中的其他开源服务组件(例如 Eureka、Feign 以及 Hystrix 等)一起整合进 Spring Cloud Netflix 模块中,整合后全称为 Spring Cloud N原创 2022-03-17 16:53:33 · 174 阅读 · 0 评论 -
1 Spring Cloud 如何进行技术选型
Spring Cloud 如何进行技术选型 我最近和一些面试的候选人聊,他们会说自己搭建过微服务的应用。这时我会进行追问,您对于微服务搭建技术选型是怎样思考的?问道这个问题很多候选人都开始答非所问了,有的说:跟进自己使用的经验;有的说:跟进公司统一的配置;有的说:这个是其他同事处理的。。。。。。。 面对很多候选人的回答,瞬间形象就减分很多,因为这样的回答不是很专业,所以今天写一篇关于微服务选型的文章,这篇文章作为后续微服务专题学习的开始第一张。大家在面试的时候,回答问题一定要有原创 2022-03-17 16:21:57 · 1106 阅读 · 0 评论 -
4 Spring Cloud OpenFeign
Spring Cloud OpenFeignOpenFeign 全称 Spring Cloud OpenFeign,它是 Spring 官方推出的一种声明式服务调用与负载均衡组件,它的出现就是为了替代进入停更维护状态的 Feign。OpenFeign 是 Spring Cloud 对 Feign 的二次封装,它具有 Feign 的所有功能,并在 Feign 的基础上增加了对 Spring MVC 注解的支持,例如 @RequestMapping、@GetMapping 和 @PostMapping 等。原创 2022-03-17 16:54:27 · 487 阅读 · 0 评论 -
2 Spring Cloud Eureka
Spring Cloud Eureka概述Eureka 是 Spring Cloud Netflix 模块的子模块,它是 Spring Cloud 对 Netflix Eureka 的二次封装,主要负责 Spring Cloud 的服务注册与发现功能。Spring Cloud 将 Eureka 与 Netflix 中的其他开源服务组件(例如 Ribbon、Feign 以及 Hystrix 等)一起整合进 Spring Cloud Netflix 模块中,整合后的组件全称为 Spring Cloud原创 2022-03-17 16:52:44 · 140 阅读 · 0 评论 -
5 Spring Cloud GateWay
Spring Cloud GateWay在微服务架构中,一个系统往往由多个微服务组成,而这些服务可能部署在不同机房、不同地区、不同域名下。这种情况下,客户端(例如浏览器、手机、软件工具等)想要直接请求这些服务,就需要知道它们具体的地址信息,例如 IP 地址、端口号等。这种客户端直接请求服务的方式存在以下问题:当服务数量众多时,客户端需要维护大量的服务地址,这对于客户端来说,是非常繁琐复杂的。在某些场景下可能会存在跨域请求的问题。身份认证的难度大,每个微服务需要独立认证。我们可以通过 API原创 2022-03-17 16:55:19 · 278 阅读 · 0 评论 -
6 Spring Cloud Alibaba
Spring Cloud AlibabaSpring Cloud AlibabaSpring Cloud Alibaba 是阿里巴巴结合自身丰富的微服务实践而推出的微服务开发的一站式解决方案,是 Spring Cloud 第二代实现的主要组成部分。Spring Cloud Alibaba 吸收了 Spring Cloud Netflix 的核心架构思想,并进行了高性能改进。自 Spring Cloud Netflix 进入停更维护后,Spring Cloud Alibaba 逐渐代替它成为主流的微服务原创 2022-03-17 16:55:40 · 967 阅读 · 0 评论 -
7 Spring Cloud Nacos
Spring Cloud NacosNacos 英文全称为 Dynamic Naming and Configuration Service,是一个由阿里巴巴团队使用 Java 语言开发的开源项目。Nacos 是一个更易于帮助构建云原生应用的动态服务发现、配置和服务管理平台。Nacos 的命名是由 3 部分组成:组成部分全称描述Nanaming/nameServer即服务注册中心,与 Spring Cloud Eureka 的功能类似。coconfiguration原创 2022-03-17 16:56:18 · 584 阅读 · 0 评论 -
框架源码 -- spring aware
框架源码 – spring awarebean实现了Aware系列接口可以访问Spring容器,其中涉及到bean的创建过程,其中包括BeanNameAware,BeanFactoryAware,ApplicationContextAware都有参与bean的创建。具体详情内容请查看【框架源码–spring bean]。这些Aware系列接口增强了Spring bean的功能,但是也会造成对Spring框架的绑定,增大了与Spring框架的耦合度。源码public interface Aware {原创 2021-12-09 18:54:03 · 390 阅读 · 0 评论 -
框架源码 -- springboot监听器原理
框架源码 -- 什么是监听器原创 2021-12-02 20:05:22 · 282 阅读 · 1 评论 -
源码解析 -- 什么是监听器
源码解析 – 什么是监听器什么是监听器监听器就是一个实现特定接口的普通java程序,这个程序专门用于监听另一个java对象的方法调用或属性改变,当被监听对象发生上述事件后,监听器某个方法将立即被执行。场景监听器可以用来检测网站的在线人数,统计网站的访问量等等!监听器组件事件源被监听对象事件事件源做了什么监听器监听的对象注册监听器将监听器与事件源进行绑定。代码实现监听/**实体类,时间源*/public class PersonEntity {publ原创 2021-12-02 20:02:07 · 922 阅读 · 0 评论 -
框架源码 -- springboot启动后Runner加载原理
启动后加载原理场景在项目启动后,马上进行一些一次性的初始化工作,如读取加载资源文件、或者执行其它外部程序。Runner两种形式ApplicationRunnerimport org.springframework.boot.ApplicationArguments;import org.springframework.boot.ApplicationRunner;import org.springframework.stereotype.Component;@Componentpubli原创 2021-12-01 19:11:51 · 382 阅读 · 0 评论 -
框架源码 – springboot启动过程
启动原理runspringboot启动代码@SpringBootApplicationpublic class AppApplication { public static void main( String[] args ){ SpringApplication.run(AppApplication.class, args); }}进入SpringApplication类的run()方法//SpringApplication类的run方法public static Conf原创 2021-11-30 16:29:58 · 396 阅读 · 0 评论 -
框架源码 -- springboot企业级日志
企业级日志配置 不整没用的,撸代码<?xml version="1.0" encoding="UTF-8" ?>&a原创 2018-07-23 18:41:06 · 558 阅读 · 0 评论 -
框架源码 -- springboot security
springboot2.0.x 集成security最近在接触安全模块,对于所涉及到的知识进行梳理总结,以下是我最近梳理的结果,构建思维导图,更直观的展示出所有注意到的模块。上代码:自己撸(项目源码)https://github.com/shimingda/security.git项目架构项目采用springboot2.0.2作为技术架构,需要使用权限角色处理,通过考察选...原创 2018-09-18 16:46:19 · 5286 阅读 · 9 评论 -
框架源码 -- springboot ES
今天搭配了elasticsearch基础环境,感觉还好,不是特别难。(您尽量不要使用高版本不是很稳定)由于elasticsearch是基于Java进行分布式检索,首先需要安装jdk,配置jdk的环境变量。(烂大街了网上有都是)。在进行elasticsearch环境搭建,首先在https://www.elastic.co/downloads/elasticsearch网站上进行...原创 2017-09-07 17:24:11 · 283 阅读 · 0 评论 -
框架源码 -- SpringBoot概况
SpringBootdome 简单是实现一个springboot的小例子,项目启动输出hello spring boot。首先创建一个maven项目,在pom文件内引入一下内容。pom.xml <!-- 使用spring-boot-starter-parent作为当前项目的parent可以享受到spring boot应用相关的一系列依赖(dependenc..原创 2018-05-22 18:14:18 · 714 阅读 · 0 评论 -
框架源码 -- springboot redis
Redis学习摘要Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。 Redis 与其他 key - value 缓存产品有以下三个特点: 1. Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。 2. Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据...原创 2018-04-17 16:20:14 · 215 阅读 · 0 评论 -
框架源码 -- spring web
Spring-WebSpring的Web框架就是为了帮你解决这些关注点而设计的。Spring MVC基于模型-视图-控制器(Model-View-Controller,MVC)模式实现,它能够帮你构建像Spring框架那样灵活和松耦合的Web应用程序。执行流程SpringMVC流程1、 用户发送请求至前端控制器DispatcherServlet。2、 Dispatch...原创 2018-10-23 18:21:50 · 672 阅读 · 2 评论 -
框架源码 -- Spring IOC
依赖注入(DI)和控制反转(IOC)的区别IOC就是原来的程序要自己new一个新对象,现在不用了,由程序统一管理,交给第三方统筹。DI:依赖注入又分构造函数注入,属性注入和接口注入。把需要的内容存入对应的的对象中。正转:主动创建对象反转:由容器帮忙来创建对象...原创 2018-10-23 17:05:25 · 136 阅读 · 0 评论 -
框架源码 -- Spring context
应用上下文Spring通过应用上下文(Application Context)装载bean的定义并把它们组装起来。Spring应用上下文全权负责对象的创建和组装。Spring自带了多种应用上下文的实现,它们之间主要的区别仅仅在于如何加载配置。1.AnnotationConfigApplicationContext:从一个或多个基于Java的配置类中加载 Spring应用上下文。2.An...原创 2018-10-23 17:04:31 · 9265 阅读 · 0 评论 -
框架源码 -- Spring AOP
AOP已经形成了自己的术语,描述切面的常用术语有通知(advice)、切点(pointcut)和连接点(join point)。通知(Advice)Spring切面可以应用5种类型的通知:前置通知(Before):在目标方法被调用之前调用通知功能;后置通知(After):在目标方法完成之后调用通知,此时不会关心方法的输出是什么;返回通知(After-returning):在目标...原创 2018-10-23 17:02:04 · 119 阅读 · 0 评论 -
框架源码 -- Spring bean
Spring Beanbean意义bean 是一个被实例化,组装,并通过 Spring IoC 容器所管理的对象。bean的生命周期正如你所见,在bean准备就绪之前,bean工厂执行了若干启动步骤。我们对图进行详细描 述:Spring对bean进行实例化; Spring将值和bean的引用注入到bean对应的属性中; 如果bean实现了BeanNameAware接...原创 2018-10-23 15:12:42 · 188 阅读 · 0 评论 -
框架源码 -- Spring概况
Spring是一个非常优秀的框架,基本上大多数公司都在运用。很好奇为什么会受到广大程序员的青睐那,于是我开始了解Spring的内部结构和设计模式。 理解spring应该先从整体框架结构开始,如下图核心容器核心容器由核心,Bean,上下文和表达式语言模块组成,它们的细节如下:l核心模块提供了框架的基本组成部分,包括 IoC 和依赖注入功能。lBean ...原创 2017-11-06 20:38:31 · 264 阅读 · 0 评论