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

OSCHINA-MIRROR/mirrors-java-xutils

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

Введение

Как Java-разработчик, в процессе разработки часто приходится использовать определенные фрагменты кода. Некоторые из них могут быть сторонними JAR-файлами, но есть и такие, которые мы создаем самостоятельно. Использование собственных решений обычно более удобно. Этот инструментальный класс создан именно для этих целей и представляет собой накопленный опыт, который я решил открыть для других разработчиков.

Принципы

Постарайтесь не зависеть от сторонних JAR-файлов. Это наш выбор, и мы не хотим зависеть от чужих решений.# Модуль lock С помощью базы данных был создан распределенный блокировщик. Поддерживает таймаут блокировки, рекурсивные блокировки и т. д. Когда нагрузка на проект не слишком велика (что считается большим, зависит от того, сколько нагрузки может выдержать база данных, обычно для одного сервера это менее 1000 запросов в секунду), стабильность остаётся высокой. Вот пример использования:

// Подключение к базе данных, здесь используется Druid
DruidDataSource dataSource = new DruidDataSource();
dataSource.setUrl("jdbc:mysql://127.0.0.1:3306/xxx?useUnicode=true&characterEncoding=utf8");
dataSource.setUsername("xxx");
dataSource.setPassword("xxx");
// Создание распределённой рекурсивной блокировки и инициализация, можно использовать как синглтон
DbLock lock = new DbReentrantLock();
lock.init(dataSource);
// Использование
try{
    // Захват блокировки, установка таймаута в 10 секунд
    lock.tryLock("testResource", 10 * 1000);
}catch(Exception e){
    // Игнорировать
}finally{
    // Освобождение блокировки
    lock.unLock("testResource");
}

Описание модуля sequence

Разработчики, которые работали с запросами к таблицам базы данных, знают, что каждая запись должна иметь уникальный идентификатор. Если это одна таблица, то обычно можно использовать автоинкремент MySQL. Однако при использовании распределённых баз данных этот подход не работает. Этот модуль предназначен для решения задачи генерации последовательных уникальных идентификаторов в распределённой системе.

Описание модуля mix

Модуль CacheРеализует локальное кэширование.

Модуль concurrent

Простая упаковка встроенных API для планирования задач JDK.

Модуль jdbc

Основан на упаковке операций по конкатенации SQL-синтаксиса.

Модуль io

Основан на упаковке API для работы с файлами типа File.

Модуль http

Упаковка Java-нативного URLConnection, поддерживающая GET, POST, загрузку и отправку файлов.

Модуль utils

По моему мнению, самый полезный модуль, содержащий различные полезные утилиты. Каждая утилита достаточно автономна и может быть использована отдельно.

Модуль domain

Основан на использовании часто встречающихся доменов.

Модуль bt

Здесь находятся некоторые необычные "черные технологии". Вы можете не знать, когда вам понадобится что-то из этого списка. (1) tracker — инструмент для отслеживания затрат времени на логи, используется для временного отслеживания логики выполнения с длительным временем выполнения. (2) tabooed — фильтр для отсеивания запрещенных слов, по моему мнению, эффективность может быть не очень высокой, требует проверки. (3) status — инструмент для проверки состояния, в настоящее время реализованы проверки использования памяти и состояния загрузки. # Чат-группа 650927052

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

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

Введение

Как Java-разработчик, в процессе разработки часто приходится использовать определённые фрагменты кода. Развернуть Свернуть
Отмена

Обновления

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

Участники

все

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

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