• Aop proxy代理

    JDK代理只能通过接口实现代理 1234567891011121314151617181920212223242526272829// --public interface Play { void play();}// --public class Student implements Play { @Override public void ...
  • AspectJ Aop

    AspectJ 是一种面向切面编程(Aspect-Oriented Programming, AOP)的框架,它主要用于 Java 语言。AOP 是一种编程范式,它允许开发者将横切关注点(如日志记录、事务管理、安全性等)与业务逻辑分离,从而提高代码的模块化和可维护性。 AspectJ 的核心概念包括: 切面(Aspect):切面是包含横切关注点的模块,可以包含多个切点和通知。 切点(Joi...
  • Spring底层原理 Part2

    Aop实现的几种方式: AspectJ Aop agent Aop proxy代理
  • 工厂后处理器模拟实现-@MapperScanner

    通过@Bean获取 123456789101112131415161718192021222324252627282930313233343536373839404142434445package com.example.underlyingprinciple.config;import com.alibaba.druid.pool.DruidDataSource;import com.ex...
  • 工厂后处理器模拟实现-@Configuration工厂

    模拟实现 @Configuration 内的@Bean创建Bean 通过运行@Bean方法获取返回值注册到Bean 123456789101112131415161718GenericApplicationContext context = new GenericApplicationContext();DefaultListableBeanFactory defaultListable...
  • 工厂后处理器模拟实现-@ComponentScan组件扫描

    模拟实现 @ComponentScan 组件扫描创建Bean,以下是实现逻辑: 获取带有@Configuration和@ComponentScan的类,获取其中需要扫描的包路径 通过Spring提供的Resource获取所有包下class文件 遍历class文件找到所有直接或间接带有@Component注解的class 获取到符合的class,使用BeanDefinitionBuilder...
  • 观察者模式-实例1 观察订单状态变化

    由于公司订单每个订单状态更新时都有非常多的方法需要去执行,现在的代码有很多的耦合的现象,不同的方法纠缠在一起,非常的难以理解难以阅读,所以我准备用观察者模式对代码进行优化,下面是我代码的逻辑 创建观察者抽象类 每一个观察者都需要有一个观察的订单状态,所以这里的orderStatus在创建时就要确定,然后就是execute用来处理订单状态改变时需要做些什么的订单 1234567891011...
  • 模板

    123456789101112---title: 标题date: 2022-9-28 11:45:14tags: [标签1,标签2]categories: [一级分类,二级分类,三级分类]sticky: 999 # 值越大,顶置的文章越靠前thumbnail: "缩略图链接"excerpt: "这是文章摘要" # 关闭使用 falsecover: &q...
  • Spring底层原理 Part1

    BeanFactoryBeanFactory是Spring的核心容器 BeanFactory 的主要责任是创建和管理 Bean。 以下是一些它执行的重要任务: 实例化:创建一个新的 Bean 实例。 初始化:初始化 Bean,设置其属性、注入依赖关系,并调用初始化方法(例如 afterPropertiesSet())。 依赖注入:解析和注入 Bean 之间的依赖关系,使每个 Bean 都拥...
  • Hexo

    什么是 Hexo?Hexo 是一个快速、简洁且高效的博客框架。 Hexo 使用 Markdown (或其他标记语言)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。 安装需要先安装下列应用程序即可: Node.js (Node.js 版本需不低于 10.13,建议使用 Node.js 12.0 及以上版本) Git 然后执行安装命令 1npm install -g hexo-cl...
1567