• 2023-04-11Solon2 的通讯服务线程配置
    Solon框架,关于通讯服务的所有配置#服务端口(默认为8080)server.port:8080#服务主机(ip)server.host:"0.0.0.0"#服务包装端口(默认为${server.port})//v1.12.1后支持//一般用docker+服务注册时才可能用到server.wrapPort:8080#服务包装主机(ip)//v1.12.1后支持server.wr
  • 2023-04-08Solon2 之 Groovy 语言开发后端接口项目
    今天再做个新的尝试,用Solon框架写个Groovy后端项目。借助“SolonInitializr”生成个项目模板,会比较方便。1、生成项目模板打开“SolonInitializr”:https://solon.noear.org/start/,在语言那儿选择"Groovy",再选上项目类型为“Gradle-Groovy”。然后点“生成”就会自
  • 2023-03-22Solon2 接口开发: 分布式 Api Gateway 开发预览
    建议使用专业的分布式网关产品,比如:nginxapisix[推荐]k8singresscontroller等...对Solon来讲,只有Gateway:它调用本地接口时,则为本地网关;调用远程接口时,则为分布
  • 2023-03-22Solon2 接口开发: 了解 LoadBalance
    上一文的代码HttpUtils.http(sevName,ctx.path())(来自"solon.cloud.httputils"插件的工具类),内部是通过sevName获取对应服务负载均衡,并最终获取服务实例地址。内部接
  • 2023-03-21Solon2 接口开发: 实战 Gateway 模式效果
    1、效果预览网关@Mapping("/api/v3/app/**")@ComponentpublicclassApiGateway3xextendsUapiGateway{@Overrideprotectedvoidregister(){fi
  • 2023-03-20Solon2 自定义 slf4j 日志添加器(比如存到数据库)
    本案需要引入已适配的slf4j日志框架(solon.logging.simple或logback-solon-plugin或log4j-solon-plugin)。1、自定义添加器入门实现自定义添加器实现一个简单的日
  • 2023-03-12Solon2 分布式事件总线的技术价值?
    分布式事件总线在分布式开发(或微服务开发)时,是极为重要的架构手段。它可以分解响应时长,可以削峰,可以做最终一致性的分布式事务,可以做业务水平扩展。1、分解响应时长比如我
  • 2023-03-06Solon2 项目整合 Nacos 配置中心
    网上关于Nacos的使用介绍已经很多了,尤其是与SpringBoot的整合使用。怎么安装也跳过了,主要就讲Nacos在Solon里的使用,这个网上几乎是没有的。1、认识SolonSolon
  • 2023-03-06Solon2 在微服务架构下,如何安全的停止服务?
    所谓“安全的停止服务”是指:在一个集群内,一个服务停止时,即不影响已有请求,也不影响别人调用。Solon在内核层面已提供了停全停止的机制:1、操作说明(通过配置启用)或者用启动
  • 2023-03-04Solon2 之 Kotlin 语言开发,很爽
    今天也学别人用Solon框架写个Kotlin项目。自己搞配置还是有点难的,需要借助“SolonInitializr”生成个项目模板。1、生成项目模板打开“SolonInitializr”:https:
  • 2023-03-02Solon2 的 Bean 生命周期
    Solon框架的Bean是被容器托管的,所以它的生命周期只限定在容器内部:时机点说明补充AopContext::new()是在应用初始化时执行::new()AopContext::beanSca
  • 2023-02-23Solon2 之基础:三、启动参数说明
    启动参数,在应用启动后会被静态化(为了内部更高效的利用)。比如,想通过体外扩展加载配置,是不能改掉它们的。1、启动参数启动参数对应的应用配置描述--envsolon.en
  • 2023-02-23Solon2 之基础:四、应用启动过程与完整生命周期
    串行的处理过程(含六个事件扩展点+两个函数扩展点),代码直接、没有什么模式。易明提醒:启动过程完成后,项目才能正常运行(启动过程中,不能把线程卡死了)AppBeanLoadEndEvent
  • 2023-02-13Solon2 开发之插件,三、插件体外扩展机制(E-Spi)
    插件体外扩展机制,简称:E-Spi。用于解决fatjar模式部署时的扩展需求。比如:把一些“业务模块”做成插件包放到体外把数据源配置文件放到体外,方便后续修改其中,.propert
  • 2023-02-13Solon2 开发之IoC,十、Bean 在容器的两层信息
    1、剖析Bean的装包与注册过程比如,用配置器装配一个Bean(本质是装配出一个BeanWrap,并自动注册到容器):@ConfigurationpublicclassConfig{//同时以名字和类型进
  • 2023-02-13Solon2 开发之插件,一、插件
    SolonPlugin是框架的核心接口,简称“插件”。其本质是一个“生命周期”接口。它可让一个组件类参与程序的生命周期过程(这块看下:《应用启动过程与完整生命周期》):@Function
  • 2023-02-13Solon2 开发之IoC,九、自定义注解开发汇总
    1、定义构建能力注解,比如@Controller注解类:@Target({ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Documentedpublic@interfaceController{}注解类
  • 2023-02-12Solon2 开发之容器,五、Bean 扫描的三种方式
    1、启动时扫描packageorg.example.demo;publicclassDemoApp{publicstaticvoidmain(String[]args){////DemoApp.clas的作用,是提供一个
  • 2023-02-12Solon2 开发之容器,六、提取 Bean 的函数进行定制开发
    为什么需要提取Bean的函数?绝不是闲得淡疼。比如:控制器的@Mapping;再比如:Xxl-Job的@XxlJob。这些都是要提取Bean的函数并定制加工的。1、比如提取@XxlJob注解的函数,并注册
  • 2023-02-12Solon2 开发之容器,七、切面与函数环绕拦截
    想要环绕拦截一个Bean的函数。需要三个前置条件:通过注解做为“切点”,进行拦截(不能无缘无故给拦了吧?费性能)Bean的method是被代理的在Bean被扫描之前,完成环绕拦截
  • 2023-02-12Solon2 开发之容器,八、动态代理的本质
    在Java里动态代理,主要分:接口动态代理和类动态代理。因为它的代理类都是动态创建的,所以名字里会带上“动态”。官网的有些地方叫“代理”,也有些地方叫“动态代理”。都
  • 2023-02-12Solon2 开发之容器,三、注入或手动获取 Bean
    1、如何注入Bean?先了解一下Bean生命周期的简化版:运行构建函数尝试字段注入(有时同步注入,没时订阅注入。不会有相互依赖而卡住的问题)@Init函数(是在容器初始化完成后才
  • 2023-02-12Solon2 开发之容器,四、注入依赖与初始化
    Solon强调有克制的注入+手动控制结合的模式。好处是,代码用料少、启动快。Bean的关键生命节点:节点说明1.Constructor(构造方法)不支持参数注入2.@In
  • 2023-02-12Solon2 开发之容器,一、注入或手动获取配置
    约定resources/app.yml(或app.properties)#为应用配置文件配置样例track:name:xxxurl:http://a.a.adb1:jdbcUrl:"jdbc:mysql://..."username:
  • 2023-02-12Solon2 开发之容器,二、构建一个 Bean 的三种方式
    1、手动简单的构建://生成普通的BeanSolon.context().wrapAndPut(UserService.class,newUserServiceImpl());//生成带注解的Bean(比如:@Controller)Solon.context().be