1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/kfyty725-loveqq-framework

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

loveqq-framework, легковесный ioc/aop/javafx фреймворк

loveqq-framework

Легковесный ioc/aop фреймворк, с более мощными возможностями условного вывода по сравнению с Spring; абстрагирует MVC-модель, предоставляя встроенные серверы reactor-netty и tomcat; Предоставляет фреймворк javafx mvvm, который позволяет реализовать двустороннее связывание модели и данных; поддерживает динамическое конфигурирование источников данных; поддерживает аннотации для кэширования; Включает аспекты, reactor-netty, tomcat, nacos, feign, mybatis, spring-tx, jsr303-valid, logback, jakarta-mail, quartz, xxl-job, pagehelper, redisson, shiro, thymeleaf, автоматическое конфигурирование источников данных, генератор уникальных идентификаторов от Baidu и другие часто используемые компоненты; По умолчанию предоставляет уменьшенные jar-пакеты, поддерживающие запуск с помощью jarindex, что позволяет быстрее запускать приложение; Предоставлен Ruoyi-for-loveqq версия, которая заменяет Spring и все его starter, готовая к использованию.

loveqq-core

Ядро проекта, включает общие утилиты, запуск jar index, утилиты для обобщенных типов, утилиты для доступа к базе данных JDBC, утилиты для обертки bean, утилиты для чтения пакетов, утилиты для преобразования json, а также интерфейсы и аннотации для автоматического конфигурирования. Для получения подробной информации нажмите loveqq-core модуль README.md.## loveqq-boot Конкретная реализация ioc-контейнера, автоматическое подключение, агенты области действия (одиночный/прототип/обновление), агенты ленивого подключения, автоматическое связывание свойств конфигурационных файлов (поддерживает связывание сложных вложенных типов), условные аннотации, проверка условий JSR, асинхронные события, динамические агенты, SPI, пользовательские загрузчики классов jar index и т. д. Для получения подробной информации нажмите loveqq-boot модуль README.md.

loveqq-aop

Модуль AOP, поддерживающий совпадение путей ant, совпадение типов аннотаций, интеграцию с AspectJ для совпадения выражений pointcut. Для получения подробной информации нажмите loveqq-aop модуль README.md.

loveqq-boot-starter-datasource

Запускатель источников данных, поддерживающий автоматическое конфигурирование HikariCP, druid, tomcat-jdbc, динамическое конфигурирование источников данных. Для получения подробной информации нажмите loveqq-boot-starter-datasource модуль README.md.## loveqq-data-korm Утилиты для доступа к базе данных, реализованные на основе прокси для интерфейсного доступа JDBC, поддерживающие аннотации для написания SQL или динамического SQL на основе шаблонных движков (например: enjoy/freemarker).

loveqq-data-codegen

Генератор кода и шаблоны по умолчанию, поддерживающие шаблоны программирования на Java, enjoy/freemarker, а также шаблоны JSP (требуется поддержка k-jte) или пользовательские шаблонные движки.## loveqq-mvc-core Основные абстракции MVC для поддержки различных веб-серверов, включающие регистрацию маршрутов, привязку параметров, диспетчеризацию запросов, интерцепторы запросов и т.д. Для получения подробной информации перейдите по ссылке loveqq-mvc-core модуль README.md.

loveqq-mvc-servlet

Реализация servlet для паттерна MVC, включающая реализацию DispatcherServlet, а также автоматическое конфигурирование Filter и Servlet. Сопутствующий запускатель — loveqq-boot-starter-tomcat. Для получения подробной информации перейдите по ссылке loveqq-mvc-servlet модуль README.md.

loveqq-mvc-netty

Реализация паттерна MVC для Netty, включающая реализацию DispatcherHandler и автоматическое конфигурирование пользовательских Filter. Сопутствующий запускатель — loveqq-boot-starter-netty. Для получения подробной информации перейдите по ссылке loveqq-mvc-netty модуль README.md.

loveqq-cache-core

Основные абстракции кэширования loveqq, по умолчанию использующие встроенный кэш. Поддерживает аннотации кэширования, а также унифицированный подход к использованию командных и реактивных аннотаций кэширования. Для получения подробной информации перейдите по ссылке loveqq-cache-core модуль README.md.

loveqq-cache-redis

Реализация кэширования loveqq на основе Redis

loveqq-boot-cloud-bootstrap

Обязательный модуль для запуска микросервисной архитектуры## loveqq-boot-starter-validator Интеграция jsr303-validator и добавление пользовательских аннотаций ограничений, позволяющая реализовать динамическое связывание проверки на основе выражений OGNL.

loveqq-boot-starter-discovery-nacos/loveqq-boot-starter-config-nacos

Интеграция сервиса открытия и конфигурации Nacos

loveqq-boot-starter-dubbo

Интеграция автоматического конфигурирования Dubbo

loveqq-boot-starter-feign

Интеграция автоматического конфигурирования Feign, совместимая с центром регистрации, поддерживает аннотации loveqq-mvc

loveqq-boot-starter-rocketmq

Интеграция автоматического конфигурирования RocketMQ

loveqq-boot-starter-redisson

Интеграция поддержки Redis на основе Redisson, а также встроенного простого реализации MQ на основе Redis

loveqq-sdk

Быстрое создание SDK, требующее только написания моделей запросов и ответов, поддерживает интерцепторы, легко расширяемо, поддерживает командный и реактивный стили

loveqq-javafx

Фреймворк Javafx MVVM, реализующий двустороннее связывание представления и модели данных. В коде достаточно оперировать данными, чтобы они отражались в представлении, а редактирование данных в представлении отражалось в модели. Для получения подробной информации перейдите по ссылке loveqq-javafx модуль README.md.

Ruoyi-for-loveqq

Основанный на фреймворке loveqq монолитный вариант Ruoyi, который удаляет нижележащие Spring и Spring Boot Starter. Подробности можно найти в списке репозиториев.### Пример

package com.kfyty.demo;

import com.kfyty.loveqq.framework.boot.K;
import com.kfyty.loveqq.framework.boot.validator.annotation.Condition;
import com.kfyty.loveqq.framework.core.autoconfig.annotation.Async;
import com.kfyty.loveqq.framework.core.autoconfig.annotation.SpringBootApplication;
import com.kfyty.loveqq.framework.core.autoconfig.annotation.EventListener;
import com.kfyty.loveqq.framework.core.event.ContextRefreshedEvent;
import com.kfyty.loveqq.framework.data.cache.core.annotation.Cacheable;
import com.kfyty.loveqq.framework.web.core.annotation.GetMapping;
import com.kfyty.loveqq.framework.web.core.autoconfig.annotation.EnableWebMvc;
import lombok.Data;

@Async
@EnableWebMvc
@EventListener
@SpringBootApplication
public class Main {

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

    @Cacheable
    @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 {
        @Condition(when = "type == 1", then = "photo != null", message = "type=1时,图片不能为空")
        private Integer type;

        private String photo;
    }
}

Лучшие практики

Maven

Рекомендуется, чтобы проект наследовался от родительского модуля loveqq-framework

<parent>
    <groupId>com.kfyty</groupId>
    <artifactId>loveqq-framework</artifactId>
    <version>1.1.1</version>
</parent>

<dependencies>
    <dependency>
        <groupId>com.kfyty</groupId>
        <artifactId>loveqq-boot</artifactId>
        <version>${loveqq.framework.version}</version>
    </dependency>
    
    <dependency>
        <groupId>com.kfyty</groupId>
        <artifactId>loveqq-boot-starter-logback</artifactId>
        <version>${loveqq.framework.version}</version>
    </dependency>
</dependencies>

При сборке необходимо добавить следующую конфигурацию в подмодуль, чтобы задать запускаемый класс и сгенерировать jar index

<properties>
    <boot-start-class>com.kfyty.demo.Main</boot-start-class>
</properties>

Пример

package com.kfyty.demo;

import com.kfyty.loveqq.framework.boot.K;
import com.kfyty.loveqq.framework.boot.validator.annotation.Condition;
import com.kfyty.loveqq.framework.core.autoconfig.annotation.Async;
import com.kfyty.loveqq.framework.core.autoconfig.annotation.SpringBootApplication;
import com.kfyty.loveqq.framework.core.autoconfig.annotation.EventListener;
import com.kfyty.loveqq.framework.core.event.ContextRefreshedEvent;
import com.kfyty.loveqq.framework.data.cache.core.annotation.Cacheable;
import com.kfyty.loveqq.framework.web.core.annotation.GetMapping;
import com.kfyty.loveqq.framework.web.core.autoconfig.annotation.EnableWebMvc;
import lombok.Data;

@Async
@EnableWebMvc
@EventListener
@SpringBootApplication
public class Main {

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

    @Cacheable
    @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 {
        @Condition(when = "type == 1", then = "photo != null", message = "type=1时,图片不能为空")
        private Integer type;

        private String photo;
    }
}

Лучшие практики

Maven

Рекомендуется, чтобы проект наследовался от родительского модуля loveqq-framework

<parent>
    <groupId>com.kfyty</groupId>
    <artifactId>loveqq-framework</artifactId>
    <version>1.1.1</version>
</parent>

<dependencies>
    <dependency>
        <groupId>com.kfyty</groupId>
        <artifactId>loveqq-boot</artifactId>
        <version>${loveqq.framework.version}</version>
    </dependency>
    
    <dependency>
        <groupId>com.kfyty</groupId>
        <artifactId>loveqq-boot-starter-logback</artifactId>
        <version>${loveqq.framework.version}</version>
    </dependency>
</dependencies>

При сборке необходимо добавить следующую конфигурацию в подмодуль, чтобы задать запускаемый класс и сгенерировать jar index

<properties>
    <boot-start-class>com.kfyty.demo.Main</boot-start-class>
</properties>
```<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-antrun-plugin</artifactId>
        </plugin>
``````md
### gradle
Необходимо добавить следующие зависимости
```groovy
apply plugin: 'java'

group = 'com.kfyty.example'
version = '1.0-SNAPSHOT'

ext {
    bootLibOutput = 'boot-lib'
    bootMainClass = 'com.kfyty.loveqq.framework.core.support.BootLauncher'
    bootStartClass = 'com.kfyty.demo.Main'
}

dependencies {
    implementation 'com.kfyty:loveqq-framework:1.1.1@pom'
    implementation 'com.kfyty:loveqq-boot:1.1.1'
    implementation 'com.kfyty:loveqq-boot-starter-logback:1.1.1'
    implementation 'org.ow2.asm:asm:9.5'
    implementation 'org.javassist:javassist:3.29.0-GA'
    compileOnly "org.projectlombok:lombok:1.18.30"
    annotationProcessor "org.projectlombok:lombok:1.18.30"
}

allprojects {
    compileJava {
        options.encoding = "UTF-8"
    }
}

При сборке необходимо добавить следующие конфигурации в подмодули для установки запускаемого класса и генерации jar index

// Копирование зависимостей
tasks.register('copyDependencies', Copy) {
    from configurations.runtimeClasspath
    into "$buildDir/libs/$rootProject.ext.bootLibOutput"
}

// Сборка jar index
tasks.register('buildJarIndex', JavaExec) {
    mainClass = 'com.kfyty.loveqq.framework.core.lang.task.BuildJarIndexAntTask'
    classpath = configurations.runtimeClasspath
    args "-OUTPUT_DIRECTORY=$project.buildDir/libs"
    args "-OUTPUT_JAR=$project.name-$project.version" + '.jar'
    args "-OUTPUT_DEFAULT_JAR=$project.name-$project.version" + '.jar'
}

// jar, который заменяет по умолчанию jar
jar {
    dependsOn copyDependencies

    manifest {
        attributes 'Main-Class': "$rootProject.ext.bootMainClass"
        attributes 'Start-Class': "$rootProject.ext.bootStartClass"
        attributes 'Class-Path': configurations.runtimeClasspath.files.collect { "$rootProject.ext.bootLibOutput/$it.name" }.join(' ')
    }
}

// build, который заменяет по умолчанию build
build {
    dependsOn buildJarIndex
}

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Легковесный ioc/aop-фреймворк с более мощными условиями вывода, чем у Spring; абстрагирует MVC-паттерн и предоставляет встроенные серверы reactor-netty и tomcat; предоставляет фреймворк javafx mvvm для двусторонней привязки модели-данных; поддерживает динамическое конфигурирование источников данных; поддерживает аннотированный кэш; интегрированы... Развернуть Свернуть
GPL-3.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/kfyty725-loveqq-framework.git
git@api.gitlife.ru:oschina-mirror/kfyty725-loveqq-framework.git
oschina-mirror
kfyty725-loveqq-framework
kfyty725-loveqq-framework
master