自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

weixin_42478399的博客

知识分享 记录成长

  • 博客(16)
  • 收藏
  • 关注

原创 什么是CI/CD

CI-CD,持续集成-持续部署

2022-06-05 22:43:12 154

原创 curl命令简单介绍

curl命令介绍及在工作中用法

2022-06-05 15:05:08 942

原创 charles抓包工具使用及手机抓包教程

目录1.前言2.操作环境条件3.操作步骤3.1.电脑配置3.2.手机配置4.抓包实战5.网络代理6.参考文章1.前言 不知道怎么抓包手机(移动端) 如何抓取手机HTTPS的包 2.操作环境条件 电脑系统:Mac OS 手机系统:Android 安装软件:Charles(4.1.2) 3.操作步骤3.1.电脑配置3.1.1.安装Charles证书到Mac1.启动Charles程序,依次点击H...

2022-04-10 18:11:16 10751

原创 Log4j漏洞复现及原理(附github源码)

1.背景之前在公司收到Log4j2爆出一个重大漏洞,公司有大部分应用使用到了Log4j的2.14.0以下的版本,全公司内部程序员收到消息之后,加班加点升级Log4j的版本到2.14.1(这个版本也不稳定),在此记录一下。2.Log4j的重大漏洞我们复现一下Log4j 2.14.0版本中出现的安全问题。首先,我们新建一个Maven项目,引入Log4j的jar包<?xml version="1.0" encoding="UTF-8"?><project xmlns="htt

2022-02-15 01:08:34 5555 1

原创 手写spring(7)- AOP模拟实现

AOP就是通过BeanPostProcessor的postProcessorAfterInitialization方法(初始化后)实现的AOP常见的时候方法有cglib与JDK动态代理,项目中采用JDK动态代理实现AOP。使用JDK动态代理要求bean实现接口,项目中定义了UserService这个接口public interface UserService { void test();}UserServiceImpl实现了UserService接口public class UserSe

2021-12-26 22:00:44 259

原创 手写spring(6)-BeanPostProcessor模拟实现

BeanPostProcessor是spring对外提供的bean的扩展机制,用于对bean进行扩展操作,常见的比如AOP就是采用BeanPostProcessor接口实现的。模拟BeanPostProcessor接口public interface BeanPostProcessor { /** * 初始化前执行该方法 * @param bean * @param beanName * @return */ Object postPro

2021-12-26 21:59:45 224

原创 手写spring(5)-初始化机制模拟实现

在spring中有一个InitializingBean实现,用于spring中bean的初始化操作,项目中模拟实现一个InitializingBean接口public interface InitializingBean { void afterPropertiesSet() throws Exception;}UserServiceImpl类也实现了InitializingBean接口@Overridepublic void afterPropertiesSet() throws Ex

2021-12-26 21:58:56 164

原创 手写spring(4)-Aware回调接口

对于bean中非依赖注入的属性,也可以在创建bean的时候也可以去设置值,spring中提供了Aware回调接口,用于到bean生命周期中依赖注入之后设置其他属性值。UserServiceImpl类中有一个beanName属性,实现了BeanNameAware接口// 不能通过"beanName"从spring容器中找到对应的bean,通过beanNameAware接口private String beanName;BeanNameAware接口public interface BeanName

2021-12-26 21:58:07 430

原创 手写spring(3)-依赖注入模拟实现

依赖注入在spring中可以通过@Autowired实现,本章主要用于实现spring中bean的生命周期中的依赖注入环节。@Autowired注解实现如下:@Retention(RetentionPolicy.RUNTIME)@Target({ElementType.FIELD,ElementType.METHOD})public @interface Autowired {}现在在UserServiceImpl中定义了OrderService属性,用于自动注入@Autowiredpri

2021-12-26 21:56:27 219

原创 手写spring(2)-启动和扫描逻辑实现

在spring容器启动的过程中,会去扫描指定包路径下的class文件,判断当前类是否是一个bean对象,如果是一个bean对象,将其注入到spring容器中。本次,我们来实现spring启动过程中的扫描逻辑。1.基础配置信息AppConfig配置类的信息如下:@ComponentScan("com.zhouyu.service")public class AppConfig {}其中,@ComponentScan是由我们自己定义的一个注解类,主要用来定义包扫描的路径,spring在容器启动的

2021-12-26 21:43:51 365

原创 手写spring(1)-开发前准备

IDEA新建一个MAVEN项目,项目目录结果如下(现在暂时不用关心目录下的类,后续会详细说明的)com.spring包下是手写spring框架中的代码逻辑zhouyu.service包下是我们业务开发功能的代码pom.xml文件中不需要引用任何依赖参考B站视频:链接...

2021-12-26 21:27:57 188

原创 第7章:Dubbo集群容错

第7章:Dubbo集群容错Dubbo容错机制对上层透明(上层看不到具体的实现)1.容错机制概述1.1 FailoverCluster接口上有SPI注解@SPI(FailoverCluster.NAME),即默认实现是Failover使用for循环实现重试,for循环次数就是重试的次数。具体流程如下:校验。如果for循环次数大于1,即有过1次重试。则会再次娇艳节点是否被销毁,传入的Invoker列表是否为空。负载均衡。调用select方法做负载均衡,得到要调用的节点,并记录这个节点到保存出现异

2021-12-11 13:21:17 1341

原创 第6章:Dubbo远程调用

第6章:Dubbo远程调用1.Dubbo调用介绍RPC调用:客户端会将服务调用接口、方法名、方法参数类型和方法参数值等序列化为二进制流,经过网络传输到服务端,服务端经过反序列化为请求对象Request,进行反射调用,最后将结果进行返回。客户端请求时会从注册中心拉取和订阅对应的服务列表,Cluster会把拉取的服务列表聚合为一个Invoker,每个接口名都有一个Directory(RegistryDIrectory实例,一对一)所有的路由和负载均衡都是在客户端实现的(这个也是之前李宗根讲的)。先路由

2021-11-28 17:44:48 1075

原创 第4章:Dubbo扩展点加载机制

第4章:Dubbo扩展点加载机制1.Java SPISPI,Service Provider InterfaceJava SPI使用策略模式,一个接口多种实现。我们只申明接口,具体的实现并不在程序中直接指定,而是由程序之外的配置掌控。具体步骤如下:(1)定义一个接口及对应的方法(2)编写一个该接口的实现类(3)在META-INF/services目录下,创建一个以接口全路径命名的文件,如com.test.spi.PrintService。(4)文件内容为具体实现类的全路径名,如果有多个,以分

2021-11-24 21:15:26 239

原创 第3章:Dubbo注册中心

1.注册中心工作原理Provider:服务提供者Consumer:服务消费者Registry:注册中心Dubbo-admin:服务治理中心Provider启动时,会向Registry写入自己的元数据信息,同时会订阅配置元数据信息。Consumer启动时,也会向Registry写入自己的元数据信息,并订阅服务提供者、路由和配置元信息。Dubbo-admin启动时,会同时订阅所有Consumer、Provider、路由和配置元信息。当有Provider离开或有新的Provider加入时,注册中

2021-11-21 21:08:22 1878

原创 spring IOC容器源码分析(上)

spring ioc容器源码最重要的是这两部分,一部分是创建bean容器,加载、注册bean,一部分是实例化(初始化)bean,本篇文章是针对第一部分进行分析的。IOC容器的简单使用获取IOC容器public static void main(String[] args){ ApplicationContext ac=new ClassPathXmlApplicationContex...

2019-09-30 21:03:52 168

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除