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

OSCHINA-MIRROR/mgang-mgfinal

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

mgfinal

Основан на mgwork (множество экземпляров servlet3.0 без singleton), использует MVC-фреймворк, MyBatis в качестве ORM-фреймворка, MGIoC как контейнер синглтонов, создаёт MGFinal-фреймворк, MGUtil для управления логами и часто используемых методов, целится на создание практичной основы Java-сервера.

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

Использование Maven для сборки проекта (2016-5-23)

Обновление документации

Путь: /doc/mgfinal-1.0_Использование_руководства.pdf

Каталоги исходного кода mgfinal

Взаимозависимости

(mgwork-ioc-2.0.jar - коллекция MVC и IoC фреймворков (MVC + IoC) ---- переместите исходный код внутрь mgfinal)

	--fastjson.jar 			JSON-парсер
	--freemarker.jar 			Шаблонизатор, поддерживающий Freemarker
	--jedis.jar				Redis DB0 используется для контейнера IoC
mgutil-1.0.jar				Модуль общих утилит, содержащий сканирование пакетов, Proputil, логгер Log4j
	--log4j.jar				Log4j логи
mybatis-xx.jar 	   			MyBatis ORM-фреймворк
	--jsqlparser.jar 		
	--pagehelper.jar 			MyBatis плагин для пагинации
	--mybatisext.jar			MyBatis расширение для CRUD операций объектов
Общие источники данных
	--c3p0 
		--c3p0-0.9.5.1.jar		Зависимость C3P0 источника данных
		--mchange-commons-java.jar
	--druid
		--druid-1.0.5.jar		Зависимость Druid источника данных
mybatis-redis.jar				MyBatis вторичный кеш запросов (опционально)
	--commons-pool2-.jar		Зависимость Pool2Jar
	--jedis.jar				Клиентская библиотека Java для работы с Redis## Версия mgfinal-1.0

2016-5-13 1:25, созданная версия mgfinal 1.0. Особенности: 1. Быстрое MVC-перенаправление на основе servlet3.0. 2. Высокоскоростной IOK-ввод/вывод на основе Redis (@ToBean, @UseBean). 3. Поддерживает JSP, HTML, Freemarker шаблоны. 4. Интегрирована MyBatis Dynamic SQL и универсальный ORM. 5. Интегрирована простая работа с объектами через MyBatis-ext. 6. Интегрировано вторичное кэширование запросов через MyBatis-redis. 7. Поддерживает популярные источники данных druid, c3p0 и встроенные источники данных mybatis.

О разработчике

Любящий код энтузиаст, известный под именами "Мечта", "Мечты", "mg0324" и другими. QQ: 1092017732 GitHub: https://github.com/mg0324 Gitee: https://git.oschina.net/mgang

Если вам понравилось, не забудьте поставить звезду. Спасибо.

Первый взгляд на проект

2016-5-11 демо-изображение

2016-5-13 пример использования PageHelper

История обновлений

2016-5-3

  1. Интеграция mgwork-2.0 и mybatis 3.* в фреймворк mgfinal.
  2. Создание базовой структуры mybatis с первоначальным добавлением богатых запросов (selectOne), (selectList), (selectMap), (selectListMap), (selectForInt), (selectForString) и т.д.
  3. Интеграция PageHelper для реализации пагинации mybatis, добавление примеров пагинации и метод selectPage.

2016-5-4

  1. Интегрирована работа с фреймворком mgwork-ioc, тестирование пройдено успешно.
  2. Добавлены два метода executeUpdate и executeQuery универсальные CRUD-методы.
  3. Принимаются меры по реализации управления транзакциями!###2016-5-10
  4. Реализовано управление транзакциями, найдена причина проблемы (конфигурационный файл my.ini MySQL, использовался не InnoDB движок, что не поддерживает транзакции). После решения проблемы, поддержка транзакций установлена.
// Открытие транзакции
this.demoDao.start();
// Операция 1
this.demoDao.ddlTx("com.mgfinal.vo.Demo.addDemo", p);
// Операция 2
this.demoDao.ddlTx("com.mgfinal.vo.Demo.addDemo", p);
// Сохранение транзакции
this.demoDao.end();
  1. Управление транзакциями start/end перемещено в основной ветке master. Также есть поддержка транзакций через SqlHelper, который получает SQL и использует conn для commit/rollback, это было отправлено в ветку v0.1.

  2. Изменены названия методов executeUpdate -> ddl, executeQuery -> query, executeUpdateWithTx -> ddlTx, чтобы они были более понятными.

  3. Добавлена поддержка источников данных, таких как Druid, C3P0 и другие.

C3P0: ① Добавлены jar-пакеты c3p0-0.9.5.1.jar и mchange-commons-java-0.2.10.jar ② В конфигурационном файле mybatis.xml, источник данных настроен следующим образом:

<dataSource type="com.mgfinal.core.mybatis.ds.C3P0DataSourceFactory">
    <property name="driverClass" value="${driver}" />
    <property name="jdbcUrl" value="${url}" />
    <property name="user" value="${username}" />
    <property name="password" value="${password}" />
    <property name="idleConnectionTestPeriod" value="60" />
    <property name="maxPoolSize" value="20" />
    <property name="maxIdleTime" value="600" />
    <property name="preferredTestQuery" value="SELECT 1" />
</dataSource>
```Driud:<br/>
① Добавлен jar-пакет druid-1.0.5.jar<br/>
② В конфигурационном файле mybatis.xml, источник данных настроен следующим образом <!-- источник данных druid -->
<dataSource type="com.mgfinal.core.mybatis.ds.DruidDataSourceFactory">
	<!-- базовые свойства url, user, password -->
	<property name="driver" value="${driver}" />
	<property name="url" value="${url}" />
	<property name="username" value="${username}" />
	<property name="password" value="${password}" />
	<!-- конфигурация начального размера, минимального и максимального значений -->
	<property name="initialSize" value="1" />
	<property name="minIdle" value="1" />
	<property name="maxActive" value="20" />
	<!-- конфигурация времени ожидания при получении соединения -->
	<property name="maxWait" value="60000" />
	<!-- конфигурация промежутка времени между проверками пустых соединений -->
	<property name="timeBetweenEvictionRunsMillis" value="60000" />
	<!-- конфигурация минимального времени жизни соединения в пуле -->
	<property name="minEvictableIdleTimeMillis" value="300000" />
	<property name="validationQuery" value="SELECT 'x'" />
	<property name="testWhileIdle" value="true" />
	<property name="testOnBorrow" value="false" />
	<property name="testOnReturn" value="false" />
	<!-- открытие PSCache и указание размера каждого соединения -->
	<property name="poolPreparedStatements" value="true" />
	<property name="maxPoolPreparedStatementPerConnectionSize" value="20" />
</dataSource>5. Обновите mgwork-ioc-1.2.jar, чтобы передать управление часто используемыми операциями с логами в mgutil.
### 11 мая 2016
1. Интегрирована mybatisext для реализации общих методов CRUD объектов, включая (save, delete, update, one, list, page, count и т.д.).
### 13 мая 2016
1. Интегрировать mgwork-ioc-2.0.jar, использовать Redis в качестве контейнера IoC, по умолчанию используется база данных 0 Redis.
(Пожалуйста, обновите mgwork-ioc-2.0.jar, доступен для скачивания по адресу http://git.oschina.net/mgang/mgwork)

Примечания:
1. Объекты, хранящиеся в Redis, должны реализовать интерфейс Serializable.
Поэтому сервис абстрагирован в BaseServiceImpl, который используется для сериализации.
Сериализация DAO передана baseDaoImpl.
Для VO и Bean потребуется самостоятельно добавить сериализацию.
2. В конфигурационном файле mgwork.properties добавьте конфигурацию Redis для контейнера IoC.

Хост Redis

mg.ioc.redis.host = localhost

Порт Redis

mg.ioc.redis.port = 6379


2. Используйте mybatis-redis.jar для кэширования запросов MyBatis, чтобы повысить производительность ответов.Примечания:
 1.  Добавьте библиотеку mybatis-redis-1. 0. 0-beta2.jar.
 2.  В начале каждого маппера, использующего кэширование запросов, добавьте следующую конфигурацию.
```xml
<! -- Кэш Redis -->
<cache type="org. mybatis. caches. redis. RedisCache"/>
  1. Можно включить встроенный кэш MyBatis (первый уровень), а Redis будет работать как второй уровень кэша. В основной конфигурационной файле mybatis.xml добавьте следующий узел settings:
<settings>
    <! -- Этот параметр позволяет включать или отключать глобальный кэш для всех мапперов -->
    <setting name="cacheEnabled" value="true"/>
    <! -- Разрешает возвращение различных наборов результатов для неизвестных SQL-запросов -->
    <setting name="multipleResultSetsEnabled" value="true"/>
    <! -- Устанавливает тип по умолчанию для выполнителя.  SIMPLE - обычный выполнитель.  REUSE - повторное использование подготовленных команд.  BATCH - повторное использование команд и массовое обновление -->
    <setting name="defaultExecutorType" value="REUSE"/>
    <! -- Включает или выключает режим ленивой загрузки глобально -->
    <setting name="lazyLoadingEnabled" value="false"/>
    <setting name="aggressiveLazyLoading" value="true"/>
    <! -- <setting name="enhancementEnabled" value="true"/> -->
    <! -- Устанавливает время ожидания по умолчанию для команд -->
    <setting name="defaultStatementTimeout" value="25000"/>
</settings>
  1. Добавьте конфигурационный файл для использования mybatis-redis, чтобы настроить соединение с Redis для кэширования запросов, как показано ниже:
# Использует вторую базу данных Redis для кэширования запросов MyBatis
host=localhost
port=6379
connectionTimeout=5000
``````markdown
soTimeout=5000
password=
# Выбор базы данных, база данных 0 занята mgwork-ioc
database=1
clientName=
  1. Используйте графический клиент Redis для просмотра ключей в базах данных Redis:

  1. Создайте версию mgfinal-1.0 и экспортируйте JAR-файл как mgfinal-1.0.jar. ```6. Добавьте исходный код mgwork ioc и т.д., чтобы mgfinal мог его управлять, и скорректируйте структуру каталога. Измените конфигурацию запуска слушателя ioc в web.xml:
<listener>
    <listener-class>com.mgfinal.core.ioc.context.IocListener</listener-class>
</listener>

14 мая 2016 года

  1. Реализованы два контейнера ioc: традиционный map и redis.
    Добавлен интерфейс Ioc, реализация MapIoc и RedisIoc.

  2. Упорядочены ключи в mgwork.properties, все ключи, связанные с mgwork и ioc, должны быть отмечены как mgfinal. Файл mgwork.properties переименован в mgfinal.properties.

  3. Корректировка вывода логов, теперь они имеют префикс mgfinal work и mgfinal ioc.

17 мая 2016 года

  1. Разработана базовая документация и загружена на сервер.
  2. В связи со вторичным кэшированием бизнес-цен, рекомендую статью http://blog.csdn.net/isea533/article/details/44566257. Здесь вы можете выбрать использование вторичного кэша mybatis, вторичного кэша redis или вообще отказаться от использования вторичного кэша и использовать кэширование на уровне бизнес-логики.
  3. Интегрирован jspsmartupload для работы с загрузкой файлов в MVC-слое mgfinal.

23 мая 2016 года

  1. Используйте Maven для управления проектом mgfinal.
  2. Интегрирован commons-fileupload для загрузки и скачивания файлов.

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

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

Введение

На основе mgwork (многоэкземплярный не-синглтон сервлет 3.0) создаётся MVC-фреймворк, mybatis используется как ORM-фреймворк, mgfinal — это фреймворк на основе mgioc и синглтона-контейнера. Цель — создать практичный бэкенд на Java для нижнего уровня. Подходит для малых и средних приложений, а также для изучения нижнего уровня фреймворка энтузиа... Развернуть Свернуть
Apache-2.0
Отмена

Обновления

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

Участники

все

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

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