kfyty-framework 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
kfyty-framework 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
kfyty-framework 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !
授权协议 Apache-2.0
开发语言 Java
操作系统 跨平台
软件类型 开源软件
所属分类 Web应用开发Web框架
开源组织
地区 国产
投 递 者 kfyty
适用人群 未知
收录时间 2024-05-07

软件简介

loveqq-framework 全新的轻量级 ioc/aop 框架,比 spring 更强大的条件注解推断,打包后支持 jar index 启动,启动速度更快

注解式 ioc/aop、自动装配、异步事件、动态代理、注解式 mvc(支持 Restful)、嵌入式 tomcat、
注解式 jdbc 框架、javafx mvvm 框架,并基于此开发了一套支持 java/enjoy/freemarker/jsp 模板的代码生成器。

loveqq-core

项目核心,包含一些通用工具类、jar index 启动引导、泛型推断工具、jdbc 访问工具、bean 封装工具、包读取工具、json 转换工具以及自动配置接口、自动配置注解等

loveqq-data-jdbc

数据库访问工具,基于代理实现了接口式 jdbc 访问,支持注解编写 SQL 或者基于模板引擎(如:enjoy/freemarker) 的动态 SQL; 内置代码生成器和默认生成模板,支持 java 编程模板、enjoy/freemarker 模板以及 jsp 模板(需要 k-jte 支持),或者自定义模板引擎。

loveqq-mvc

注解式 mvc,支持嵌入式 tomcat、复杂参数自动转换绑定、 restful/ant 风格路径匹配、全局异常处理、请求拦截器等。

loveqq-aop

AOP 模块,支持 ant 路径匹配、支持注解类型匹配、集成 AspectJ,可以单独使用,也可以集成到 kfyty-boot 自动配置。

loveqq-sdk

用于快速封装 sdk,只需编写请求及响应模型,支持拦截器,易于拓展,支持命令式、响应式风格

loveqq-javafx

javafx mvvm 框架,实现了视图和数据模型的双向绑定。代码中只需操作数据即可反应到视图上,视图上编辑数据即可反应到模型里。详见 javafx 模块 README.md.

loveqq-boot

注解式 ioc、自动装配、作用域代理(单例/原型/刷新)、懒加载代理、配置文件属性自动绑定(支持嵌套的复杂类型绑定)、条件注解、jsr 条件注解校验器、异步事件、动态代理、spi、自定义 jar index 类加载器 等。

条件推断示例:

package com.kfyty.condition;

import cn.hutool.core.lang.Assert;
import org.springframework.beans.factory.FactoryBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.event.ContextRefreshedEvent;
import org.springframework.context.event.EventListener;
import org.springframework.stereotype.Component;

import java.util.List;

/**
 * 描述: 条件注解测试
 *
 * @author kfyty725
 * @date 2022/4/23 11:06
 * @email kfyty725@hotmail.com
 */
@SpringBootApplication
public class ConditionTest {
    private boolean isOverride;

    @Autowired(required = false)
    private List<Inter> cons;

    @Bean
    public BB bbOverride() {
        this.isOverride = true;
        return new BB();
    }

    @EventListener
    public void onComplete(ContextRefreshedEvent event) {
        Assert.isTrue(this.isOverride);
        Assert.isTrue(this.cons.size() == 5);
    }

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

interface Inter {}

@Component
@ConditionalOnBean({CC.class, BB.class})
@ConditionalOnClass(name = "com.kfyty.condition.ConditionTest")
class AA implements Inter {}

@Component
@ConditionalOnMissingBean(BB.class)
class BB implements Inter {}

@Component
@ConditionalOnBean(BB.class)
class CC implements Inter {

    @Bean
    @ConditionalOnBean(AA.class)
    public EE ee() {
        return new EE();
    }
}

class DD implements Inter {}

@Component
@ConditionalOnMissingBean(DD.class)
class DDF implements FactoryBean<DD> {

    @Override
    public Class<?> getObjectType() {
        return DD.class;
    }

    @Override
    public DD getObject() {
        return new DD();
    }
}

class EE implements Inter {}

上述代码,首先 BB 是无条件直接定义的,所以 BB 一定存在;
而 CC 仅依赖 BB 存在,所以 CC 一定存在;
而 AA 仅依赖 BB、CC 的存在,以及主类的存在,因此 AA 一定存在;
而 EE 仅依赖 AA,因此 EE 一定存在;
而我们没有直接定义 DD,因此 DDF 一定存在,而 DDF 属于 FactoryBean,它生产了 DD,所以 DD 一定存在;
所以 AA、BB、CC、DD、EE 的条件都成立,cons.size() 应该是 5。
而上述代码在 spring 下无法通过测试,但是在 kfyty-framework 中是可以测试通过的。

目前该框架还已经集成了下述框架:
loveqq-aop:aspect-j 集成
loveqq-javafx:一个实现了 javafx 模型与数据双向绑定的 mvvm 框架
loveqq-data-jdbc:一个半 orm 框架,支持集成任意第三方模板引擎编写 SQL
loveqq-boot-starter-spring-tx:集成 spring 事务管理器
loveqq-mvc/loveqq-boot-starter-tomcat:mvc 模块/嵌入式 tomcat 服务器
loveqq-boot-starter-datasource:数据源自动配置
loveqq-boot-starter-validator:jsr 校验器自动配置
loveqq-boot-starter-uid-generator:集成百度 uid 生成器
loveqq-boot-starter-quartz:集成 quartz
loveqq-boot-starter-xxl-job:集成 xxl-job
loveqq-boot-starter-redisson:集成 redisson

loveqq-boot-starter-shiro:集成 shiro

loveqq-boot-starter-thymeleaf:集成 thymeleaf

loveqq-boot-starter-pagehelper:集成 pagehelper
loveqq-boot-starter-config-nacos:集成 nacos 配置中心,支持自动刷新配置
loveqq-boot-starter-discovery-nacos:集成 nacos 服务发现中心
loveqq-boot-starter-feign:集成 feign,可远程调用,可使用服务发现

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论

点击引领话题📣 发布并加入讨论🔥
发表了资讯
今天 12:10

轻量级 ioc/aop 框架 loveqq 1.0 发布,完全替换掉若依底层 spring 及其 starter

loveqq-framework 轻量级 ioc/aop 框架,比 spring 更强大的条件注解推断,打包后支持 jar index 启动。 本次更新: 正式更名为:loveqq-famework 新增:loveqq-boot-starter-mybatis 新增:loveqq-boot-starter-pagehelper 新增:loveqq-boot-starter-shiro 新增:loveqq-boot-starter-thymeleaf 新增:RuoYi-for-loveqq 项目,将若依项目底层 spring 及其所有 starter 全部移除,并替换为 loveqq 框架,基本只需要修改包名即可...

2
0
发表了资讯
05/08 11:46

​​​​​​​轻量 ioc/aop 框架 kfyty-framework,比 spring 更强大的条件推断

kfyty-framework 轻量级 ioc/aop 框架,比 spring 更强大的条件注解推断,打包后支持 jar index 启动,启动速度更快 注解式 ioc/aop、自动装配、异步事件、动态代理、注解式 mvc(支持 Restful)、嵌入式 tomcat、 注解式 jdbc 框架、javafx mvvm 框架,并基于此开发了一套支持 java/enjoy/freemarker/jsp 模板的代码生成器。 kfyty-core 项目核心,包含一些通用工具类、jar index 启动引导、泛型推断工具、jdbc 访问工具、...

6
4
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
发表了问答
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
暂无内容
0 评论
4 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部