loveqq-framewoek 1.0.5 发布,比 Spring 更强大的条件注解推断

来源: 投稿
作者: kfyty
2024-09-11 15:37:00

本次更新:

  • 优化: loveqq-boot-starter-netty,新增 WebSocketHandler 以支持 websocket 链接,并兼容命令式编码风格
  • 优化: loveqq-boot-starter-netty,新增 WsFilter,以支持 websocket 过滤器
  • 优化: loveqq-boot-starter-netty,新增 sse 响应支持
  • 优化:引入熟悉的 @AliasFor,全面支持注解继承、复合注解
  • 优化:ioc 容器启动性能、反射调用性能
  • 优化:支持 ide 中 shorten command line 启动
  • 优化:支持 ide 中,动态构建 jar index 启动应用
  • 优化:得益于自定义 JarIndexClassLoader,只需将 ClassFileTransformer 实现类配置到 k.factories 中,即可生效,而无需配置 javaagent 以及 Pre-Main
  • 优化:@Configuration 的自调用默认无需生成代理类

简介

轻量级 ioc/aop 框架,比 spring 更强大的条件推断;抽象出 mvc 模式,提供嵌入式 reactor-netty、tomcat 服务器;
提供 javafx mvvm 框架,可实现模型-数据的双向绑定;提供动态数据源配置支持;提供注解式缓存支持;
已集成 
    aspect、reactor-netty、tomcat、nacos、feign、mybatis、spring-tx、jsr303-valid、
    logback、jakarta-mail、quartz、xxl-job、pagehelper、redisson、shiro、thymeleaf、
    datasource-auto-config、baidu-uid-generator 等常用组件;
默认提供 jar 包瘦身方式打包,支持 jarindex 启动,启动速度更快;
已提供 Ruoyi-for-loveqq 版本,替换到 spring 及其全部 starter,开箱即用。

简单示例

@Slf4j
@EnableWebMvc
@BootApplication
public class Main {

    public static void main(String[] args) {
        K.run(Main.class, args);
    }

    @GetMapping
    public User hello(@Valid User user) {
        return user;
    }

    @Async
    @EventListener
    public void onStarted(ContextRefreshedEvent event) {
        log.info("started succeed !");
    }

    @Data
    public static class User {
        /**
         * 自定义条件校验注解
         * 以当前 bean 为 root 对象,可以基于 ognl 表达式实现参数校验
         */
        @Condition(when = "type == 1", then = "photo != null", message = "type=1时,图片不能为空")
        private Integer type;

        private String photo;
    }

    /**
     * 循环依赖及懒加载示例
     */
    @Component
    public static class AAA {
        /**
         * 虽然 BBB 并没有默认的构造器,但是在 @Lazy 加持下,依然可以全部注入成功
         */
        public AAA(@Lazy BBB bbb) {

        }
    }

    @Component
    public static class BBB {
        public BBB(AAA aaa) {

        }
    }
}
展开阅读全文
点击加入讨论🔥(2) 发布并加入讨论🔥
2 评论
1 收藏
分享
返回顶部
顶部