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

OSCHINA-MIRROR/frost373-OneJava

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

##OneJava — что это?

OneJava — это одностадийный WEB-фреймворк для разработки на основе Java, который спроектирован с учётом принципов простоты, гибкости и снижения стоимости обучения.

Помимо некоторых основных зависимостей (логгинг, Cglib и др.), OneJava не требует интеграции других фреймворков, а реализует собственные MVC, AOP, IOC и слой персистентности.

Именно поэтому OneJava может предложить почти бесконфигурационный и очень простой в освоении опыт разработки.

##OneJava: функции и особенности

  • Следование принципам COC, отсутствие XML.
  • Чрезвычайно лаконичный стиль программирования.
  • Дизайн на основе модели MVC.
  • Использование структуры каталогов для создания правил отображения запросов, решение проблем с конфигурацией XML и неудобным управлением аннотациями @.
  • Цепочка перехватчиков до и после обработки.
  • Поддержка AOP с четырьмя типами цепочек уведомлений.
  • Поддержка IOC, также легко интегрируется со Spring.
  • Множество плагинов, высокая расширяемость.
  • Разнообразные представления и поддержка пользовательских представлений.
  • Слой персистентности в стиле ibatis + ActiveRecord.
  • Декларативное и элегантное ручное управление транзакциями.

##Пример использования

GET ID, возвращает список всех статей, запрос использует AdminLogin и два перехватчика count перед обработкой и postLog после обработки. Эти два перехватчика являются обязательными для всех контроллеров в этом пакете. ###Контроллер:

package work.action.test;
//Отображение URL автоматически генерируется как: URL+/test/helloworld.do
@ActionInfo(after = "count")//Цепочка перехватчиков после обработки
public class HelloWorld {
	@IService
	public HelloService hello;//Обратите внимание! Нет необходимости в методах get и set, но они должны быть публичными
	public String excute(MContext context) throws Exception{
		List list =  hello.getPost((String) context.getValue("id"));
		context.setReValue("list", list);
		//Использование представления по умолчанию, использование WEB-INF/test/helloword.jsp
		return "test/helloword";
		//return "json,list";//Использование представления Json
	}
}

###Создание package-info для добавления перехватчиков ко всем контроллерам в work.action.test:

@ActionInfo(before = "AdminLogin,count")
package work.action.test;

###Сервисный уровень:

@ServiceInfo(name = "hello")//Информация о сервисе
public class HelloService {
    @TX//Декларативная транзакция (хотя эта транзакция не имеет особого смысла)
	@IAop(before = "beforeLog,beforeLog2",afterThrow="errorLog")//Точки входа уведомления
	public List getPost(String id) throws Exception{
		Map map = new HashMap();
		map.put("id", id);
		List list =  DB.query("select * from post where id=#id# ", map);
		return list;
	}
}

####AOP уведомления и перехватчики не будут описаны, формат и сервисный уровень одинаковы, используйте аннотацию @XXXinfo для объявления, и все модули в OneJava имеют почти одинаковый стиль. ##Примеры использования OneJava ####Мой блог: http://www.lalalol.com/

##Архитектура и дизайн OneJava alt text

  • Общая архитектура похожа на распределённую систему, Tools предоставляет базовую поддержку, Manage отвечает за весь жизненный цикл сущностей и предоставляет внешние функциональные интерфейсы. Контроллер вызывает Manage для выполнения полной логики запроса, одновременно между Manage также происходит взаимный вызов. Эта структура очень ясна и понятна, модули просто предоставляют интерфейсы, другие не вмешиваются. alt text

##Ход разработки

  • Разработка ActiveRecord продолжается.
  • Больше вложенных транзакций находится в разработке.
  • Уровень изоляции транзакций находится в разработке.
  • Рефакторинг кода находится в процессе разработки.
  • Шаблоны AOP находятся в стадии проектирования.

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

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

Введение

Лёгкая универсальная JavaWeb-платформа. Развернуть Свернуть
Отмена

Обновления

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

Участники

все

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

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