接触Spring快半年了,前段时间刚用Spring4+S2H4做完了自己的毕设,但是很明显感觉对Spring尤其是IOC容器的实现原理理解的不到位,说白了,就是仅仅停留在会用的阶段,有一颗想读源码的心于是买了一本计文柯的<Spring技术内幕>,第二章没看完,就被我扔一边了,看的那是相当痛苦,深深觉得自己资质尚浅,能力还不够,昨天在网上碰巧看到一个实现简单的SpringIOC容器的视频教程,于是跟着做了一遍,竟然相当顺利,至少每一行代码都能理解,于是细心整理了一番,放在这里. 主要思想: 提到…
  涉及技术   序列化.Socket通信.Java动态代理技术,反射机制   角色   1.服务提供者:运行在服务端,是真实的服务实现类   2.服务发布监听者:运行在RPC服务端,1将服务端提供的服务暴露为远程服务并2监听客户端请求3调用真实服务   3.客户端代理:运行在RPC客户端,通过该代理调用远程服务提供者,将结果封装返回本地消费者   4.客户端消费者:委托客户端代理实现透明的RPC调用   代码实现   (1)服务提供者代码实现   接口 public interface IRe…
大家好,我是老三,Spring是我们最常用的开源框架,经过多年发展,Spring已经发展成枝繁叶茂的大树,让我们难以窥其全貌. 这节,我们回归Spring的本质,五分钟手撸一个Spring容器,揭开Spring神秘的面纱! 从什么是IOC开始? Spring--春天,Java编程世界的春天是由一位音乐家--Rod Johnson带来的. Rod Johnson先后编写了两本巨著<Expert One-on-One J2EE Design and Development>.<Expert…
作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 上学时,老师总说:不会你就问,但多数时候都不知道要问什么! 你总会在小傅哥的文章前言里,发现一些关于成长.学习.感悟以及对当篇内容的一个介绍,其实之所以写这样的铺垫性内容,主要是为了让大家对接下来的内容学习有一个较轻松的开场和过度. 就像我们上学时如果某一科的内容不会时,老师经常会说,你有不会的就要问.但对于学生本身来讲,可能已经不会的太多了,或者压根不知道自己不会什么,只有等看到…
手撸一个springsecurity,了解一下security原理 转载自:www.javaman.cn 手撸一个springsecurity,了解一下security原理 今天手撸一个简易版本的springsecurity,带大家理解下springsecurity的原理: 安全框架的两个特点就是认证和授权,让我们来通过代码了解下认证和授权的处理方式: 1.认证 认证就是指需要登录才能进行系统操作,如:登录qq.微信或者是web系统的登录都是认证的过程 1.1 工程目录 1.2 maven配置p…
说明 项目链接 微服务框架都包括什么? 如何实现 RPC 远程调用? 开源 RPC 框架 限定语言 跨语言 RPC 框架 本地 Docker 搭建 ZooKeeper 下载镜像 启动容器 查看容器日志 RPC 接口 Netty RPC server 接口实现 服务启动 注册服务 ZooKeeper 实现 Netty RPC Client 创建代理 远程调用 编解码 RpcDecoder RpcEncoder RpcServerInboundHandler Server 在 ZooKeeper 的…
1. 简介 通过了解SpringBoot的原理后,我们可以手撸一个spring-boot-starter来加深理解. 1.1 什么是starter spring官网解释 starters是一组方便的依赖描述符(根据功能特点将用到的依赖标记封装到同一个pom中),可以将其包含在应用程序中. 通过starters可以获取所需的所有Spring和相关技术的一站式服务,而无需搜索示例代码或复制粘贴加载的依赖项描述符. 1.2 命名规则 所有官方首发都遵循类似的命名模式:spring-boot-start…
原文连接:使用Java Socket手撸一个http服务器 作为一个java后端,提供http服务可以说是基本技能之一了,但是你真的了解http协议么?你知道知道如何手撸一个http服务器么?tomcat的底层是怎么支持http服务的呢?大名鼎鼎的Servlet又是什么东西呢,该怎么使用呢? 在初学java时,socket编程是逃不掉的一章:虽然在实际业务项目中,使用这个的可能性基本为0,本篇博文将主要介绍如何使用socket来实现一个简单的http服务器功能,提供常见的get/post请求支持…
[手撸一个ORM]第一步.约定和实体描述 [手撸一个ORM]第二步.封装实体描述和实体属性描述 [手撸一个ORM]第三步.SQL语句构造器和SqlParameter封装 [手撸一个ORM]第四步.Expression(表达式目录树)扩展 [手撸一个ORM]第五步.查询条件表达式目录树解析和插入.更新查询目录树解析 [手撸一个ORM]第六步.对象表达式解析和Select表达式解析 [手撸一个ORM]第七步.SqlDataReader转实体 [手撸一个ORM]第八步.实体查询和按需查询 [手撸一个O…
目录 一.实现原理 二.代码实战 三.测试 最近线上排查问题时候,发现请求太多导致日志错综复杂,没办法把用户在一次或多次请求的日志关联在一起,所以就利用SpringBoot+Logback手写了一个简单的链路追踪,下面详细介绍下. 一.实现原理 Spring Boot默认使用LogBack日志系统,并且已经引入了相关的jar包,所以我们无需任何配置便可以使用LogBack打印日志. MDC(Mapped Diagnostic Context,映射调试上下文)是log4j和logback提供的一种…