本次更新:
- 优化: 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) {
}
}
}