本案需要引入已适配的 slf4j 日志框架(solon.logging.simple 或 logback-solon-plugin 或 log4j-solon-plugin)。 1、自定义添加器入门 实现自定义添加器 实现一个简单的日志添加器,并把将...
分布式事件总线在分布式开发(或微服务开发)时,是极为重要的架构手段。它可以分解响应时长,可以削峰,可以做最终一致性的分布式事务,可以做业务水平扩展。 1、分解响应时长 比如我们的一...
网上关于 Nacos 的使用介绍已经很多了,尤其是与 SpringBoot 的整合使用。怎么安装也跳过了,主要就讲 Nacos 在 Solon 里的使用,这个网上几乎是没有的。 1、认识 Solon Solon 一个高效的应用...
比如 k8s 或 docker bridge 运行环境下,每次重新部署后 ip 都可能会变化。在这种环境下,使用外部的注册与发现服务时,需要用到以下两点。 1、增加参数,申明当前为漂移环境 或者用启动参数...
所谓“安全的停止服务”是指:在一个集群内,一个服务停止时,即不影响已有请求,也不影响别人调用。Solon 在内核层面已提供了停全停止的机制: 1、操作说明(通过配置启用) 或者用启动参数...
今天也学别人用 Solon 框架写个 Kotlin 项目。自己搞配置还是有点难的,需要借助 “Solon Initializr” 生成个项目模板。 1、生成项目模板 打开“Solon Initializr” :https://solon.noear...
Solon 框架的 Bean 是被容器托管的,所以它的生命周期只限定在容器内部: 时机点 说明 补充 AopContext::new() 是在应用初始化时执行 ::new() AopContext::beanScan() 时,符合条件的才会被构...
Solon 框架的应用生命周期包括:一个初始化函数时机点 + 六个事件时机点 + 两个插件生命时机点 + 两个容器生命时机点(v2.2.0 版本的状态): 提醒: 启动过程完成后,项目才能正常运行(启动...
1、与 Springboot 的常用注解比较 Solon 2.2.0 Springboot 2.7.8 说明 @Inject * @Autowired 注入Bean(by type) @Inject("name") @Qualifier+@Autowired 注入Bean(by name) @Inject("${n...
串行的处理过程(含六个事件扩展点 + 两个函数扩展点),代码直接、没有什么模式。易明 提醒: 启动过程完成后,项目才能正常运行(启动过程中,不能把线程卡死了) AppBeanLoadEndEvent 之前...
约定参考: //资源路径约定(不用配置;也不能配置) resources/app.yml( 或 app.properties ) #为应用配置文件 resources/WEB-INF/static/ #为静态文件根目标 resources/WEB-INF/view/ #为...
插件热插拔管理机制,简称:H-Spi。是框架提供的生产时用的另一种高级扩展方案。相对E-Spi,H-Spi 更侧重隔离、热插热拔、及管理性。 应用时,是以一个业务模块为单位进行开发,且封装为一个...
插件体外扩展机制,简称:E-Spi。用于解决 fatjar 模式部署时的扩展需求。比如: 把一些“业务模块”做成插件包放到体外 把数据源配置文件放到体外,方便后续修改 其中, .properties 或 .y...
插件扩展机制,是基于 “插件” + “配置申明” 实现的解耦的扩展机制(类似 Spring Factories、Java Spi):简单、弹性、自由。它的核心作用,是为模块获得了应用启动入口,并参与了应用生命...
Solon Plugin 是框架的核心接口,简称“插件”。其本质是一个“生命周期”接口。它可让一个组件类参与程序的生命周期过程(这块看下:《应用启动过程与完整生命周期》): @FunctionalInter...
1、剖析 Bean 的装包与注册过程 比如,用配置器装配一个 Bean (本质是装配出一个 BeanWrap,并自动注册到容器): @Configuration public class Config{ //同时以名字和类型进行注册 //支持类...
1、定义构建能力注解,比如@Controller 注解类: @Target({ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface Controller { } 注解类能力注册: //注册...
想要环绕拦截一个 Bean 的函数。需要三个前置条件: 通过注解做为“切点”,进行拦截(不能无缘无故给拦了吧?费性能) Bean 的 method 是被代理的 在 Bean 被扫描之前,完成环绕拦截的注册 ...
没有更多内容
加载失败,请刷新页面