Основан на mgwork (множество экземпляров servlet3.0 без singleton), использует MVC-фреймворк, MyBatis в качестве ORM-фреймворка, MGIoC как контейнер синглтонов, создаёт MGFinal-фреймворк, MGUtil для управления логами и часто используемых методов, целится на создание практичной основы Java-сервера.
Подходит для средних и малых приложений, а также для любителей изучения низкоуровневой части фреймворков.
Путь: /doc/mgfinal-1.0_Использование_руководства.pdf
(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
Если вам понравилось, не забудьте поставить звезду. Спасибо.
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();
Управление транзакциями start
/end
перемещено в основной ветке master
. Также есть поддержка транзакций через SqlHelper
, который получает SQL и использует conn
для commit
/rollback
, это было отправлено в ветку v0.1
.
Изменены названия методов executeUpdate
-> ddl
, executeQuery
-> query
, executeUpdateWithTx
-> ddlTx
, чтобы они были более понятными.
Добавлена поддержка источников данных, таких как 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.
mg.ioc.redis.host = localhost
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"/>
<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>
# Использует вторую базу данных Redis для кэширования запросов MyBatis
host=localhost
port=6379
connectionTimeout=5000
``````markdown
soTimeout=5000
password=
# Выбор базы данных, база данных 0 занята mgwork-ioc
database=1
clientName=
web.xml
:<listener>
<listener-class>com.mgfinal.core.ioc.context.IocListener</listener-class>
</listener>
Реализованы два контейнера ioc: традиционный map и redis.
Добавлен интерфейс Ioc, реализация MapIoc и RedisIoc.
Упорядочены ключи в mgwork.properties
, все ключи, связанные с mgwork и ioc, должны быть отмечены как mgfinal. Файл mgwork.properties
переименован в mgfinal.properties
.
Корректировка вывода логов, теперь они имеют префикс mgfinal work и mgfinal ioc.
jspsmartupload
для работы с загрузкой файлов в MVC-слое mgfinal.commons-fileupload
для загрузки и скачивания файлов.Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )