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

OSCHINA-MIRROR/dugukuangshao-dk-foundation

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

Проект dk-foundation

Проект

Spring — это инструмент быстрой разработки, который автоматически интегрирует MyBatis, Sharding-JDBC и Redis.

Использование

  1. Модуль dk-foundation-common содержит некоторые базовые инструменты.
  2. Пакет dk-foundation-engine-sharding-jdbc представляет собой пакет для быстрой разработки с интегрированным Sharding-JDBC.
  3. Пакет dk-foundation-engine-declare-datasource — это пакет для быстрой разработки, позволяющий определять источник данных через конфигурацию com.dk.foundation.engine.DynamicDataSourcePlugin и @DataSource. Приоритет использования @DataSource выше, чем у DynamicDataSourcePlugin, а приоритет транзакций самый высокий. Этот пакет позволяет удобно поддерживать несколько источников данных и разрабатывать программное обеспечение с разделением чтения и записи. Примечание: если ваш проект включает сегментирование базы данных, вы можете использовать пакет Sharding-JDBC или выбрать другое промежуточное ПО для баз данных.

В соответствии с принципом «соглашение важнее конфигурации» модули проекта должны называться com.dk.*.worker, где * — произвольный символ. Это позволит Spring автоматически сканировать соответствующие пакеты и внедрять bean-компоненты, обеспечивая начальные возможности проекта.

@ComponentScan(basePackages = "com.dk.foundation.common,com.dk.foundation.engine,com.dk.*.mapper,com.dk.*.service,com.dk.*.worker")
public class EngineConfig {
}

Быстрая разработка

Чтобы добавить зависимости проекта, используйте следующий код:

<dependency>
    <groupId>com.dk.foundation</groupId>
    <artifactId>dk-foundation-engine-declare-datasource</artifactId>
    <version>1.0-SNAPSHOT</version>
</dependency>

Для предоставления проекту начальных возможностей добавьте в файл запуска @EnableEngineStart, как показано ниже:

@MapperScan("com.dk.test.*.mapper")
@EnableEngineStart
public class Startup {

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

Способ 1: DynamicDataSourcePlugin

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTDConfig 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <plugins>
        <plugin interceptor="com.dk.foundation.engine.DynamicDataSourcePlugin" />
    </plugins>
</configuration>

Плагин определяет, является ли SQL-скрипт оператором вставки, обновления или удаления, и автоматически выбирает основной источник данных. Если это запрос, он случайным образом выбирает источник данных для чтения. При включённой транзакции он выбирает источник данных на основе транзакции.

Способ 2: аннотация @DataSource

@DataSource(name="master")
public List<User> selectListBySQL()
{
     List<User> users = userMapper.selectListBySQL();
     return users;
}

Если вы используете DynamicDataSourcePlugin вместе с аннотацией @DataSource, будет выбран источник данных, указанный в аннотации.

@Transactional
@DataSource(name="db_slave_0")
public void insert()
{
    List<User> users = userMapper.selectListBySQL();
    for (User user:users
         ) {
        user.setName(user.getName()+"_testInsert");
        userMapper.insert(user);
    }
}

При использовании DynamicDataSourcePlugin и аннотации @DataSource одновременно и при включенной транзакции, для userMapper.selectListBySQL(), DynamicDataSourcePlugin и аннотация @DataSource выбирают источник данных. Для userMapper.insert(user), DynamicDataSourcePlugin выбирает основной источник данных, но фактически используется основной источник данных из-за включенной транзакции. Транзакция имеет наивысший приоритет.

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

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

Введение

Описание недоступно Развернуть Свернуть
LGPL-2.1
Отмена

Обновления

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

Участники

все

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

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