摘要: 在 Java 里动态代理,主要分:接口动态代理 和 类动态代理。因为它的代理类都是动态创建的,所以名字里会带上“动态”。 官网的有些地方叫“代理”,也有些地方叫“动态代理”。都是一个意思。 1、接口动态代理 这是 jdk 直接支持的能力。内在的原理是:框架会动态生成目标接口的一个代理类(即接口的实现 阅读全文
posted @ 2023-02-12 22:08 带刺的坐椅 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 想要环绕拦截一个 Bean 的函数。需要三个前置条件: 通过注解做为“切点”,进行拦截(不能无缘无故给拦了吧?费性能) Bean 的 method 是被代理的 在 Bean 被扫描之前,完成环绕拦截的注册 1、定义切点和注册环绕拦截 Solon 的切点,通过注解实现,得先定义一个。例如:@Loggi 阅读全文
posted @ 2023-02-12 22:06 带刺的坐椅 阅读(23) 评论(0) 推荐(0) 编辑
摘要: 为什么需要提取Bean的函数?绝不是闲得淡疼。比如:控制器的@Mapping;再比如:Xxl-Job的@XxlJob。这些都是要提取Bean的函数并定制加工的。 1、比如提取 @XxlJob 注解的函数,并注册到执行器 对Xxl-Job框架来说@XxlJob注解是已经存在的。适配,只需要注册一个Be 阅读全文
posted @ 2023-02-12 22:03 带刺的坐椅 阅读(20) 评论(0) 推荐(0) 编辑
摘要: 1、启动时扫描 package org.example.demo; public class DemoApp{ public static void main(String[] args){ // // DemoApp.clas 的作用,是提供一个扫描范围;DemoApp.class 所在包名下的b 阅读全文
posted @ 2023-02-12 21:57 带刺的坐椅 阅读(22) 评论(0) 推荐(0) 编辑
摘要: Solon 强调 有克制的注入 + 手动控制 结合的模式。好处是,代码用料少、启动快。 Bean 的关键生命节点: | 节点 | 说明 | | | | | 1. Constructor(构造方法) | 不支持参数注入 | | 2. @Inject(注入) | 基于订阅,不确定具体依赖什么时候会被注入 阅读全文
posted @ 2023-02-12 21:54 带刺的坐椅 阅读(49) 评论(0) 推荐(0) 编辑
摘要: 1、如何注入Bean? 先了解一下Bean生命周期的简化版: 运行构建函数 尝试字段注入(有时同步注入,没时订阅注入。不会有相互依赖而卡住的问题) @Init 函数(是在容器初始化完成后才执行) ... 释放(基本不会发生) 了解这个生命过程后,可以知道注入的内容,在构建函数里是不可用的: @Ser 阅读全文
posted @ 2023-02-12 21:52 带刺的坐椅 阅读(54) 评论(0) 推荐(0) 编辑
摘要: 1、手动 简单的构建: //生成普通的Bean Solon.context().wrapAndPut(UserService.class, new UserServiceImpl()); //生成带注解的Bean(比如:@Controller) Solon.context().beanMake(Us 阅读全文
posted @ 2023-02-12 21:50 带刺的坐椅 阅读(27) 评论(0) 推荐(0) 编辑
摘要: 约定 resources/app.yml( 或 app.properties ) #为应用配置文件 配置样例 track: name: xxx url: http://a.a.a db1: jdbcUrl: "jdbc:mysql://..." username: "xxx" password: " 阅读全文
posted @ 2023-02-12 21:45 带刺的坐椅 阅读(59) 评论(0) 推荐(0) 编辑