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

OSCHINA-MIRROR/wendal-nutz

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

Нутц

Статус сборки Circle CI Статус проверки Coverity Сборка Maven Central codecov.io GitHub версия Лицензия

Альтернатива SSH для Java-разработчиков

Говорить легко. Покажите мне код!

Цели проекта

Повышение производительности веб-разработчиков до максимального уровня возможностей.

Различные ресурсы проекта

Проект успешно прошел тестирование с использованием Oracle JDK 8, Oracle JDK 7, OpenJDK 7 и OpenJDK 6 через Maven. Подробнее см. Travis CI адрес, CircleCI адрес.

Экосистема Нутца (рабочий черновик)

Архитектура системы Нутца

Конфигурация на основе аннотаций

Основной конфигурационный класс MainModule

@SetupBy(value=MainSetup.class)
@IocBy(type=ComboIocProvider.class, args={"*js", "ioc/",
                                           "*anno", "net.wendal.nutzbook",
                                           "*quartz",
                                           "*async",
                                           "*tx"
                                           })
@Modules(scanPackage=true)
@ChainBy(args="mvc/nutzbook-mvc-chain.js")
@Ok("json:full")
@Fail("jsp:jsp.500")
@Localization(value="msg/", defaultLocalizationKey="zh-CN")
@Views({BeetlViewMaker.class})
@SessionBy(ShiroSessionProvider.class)
public class MainModule {
}

Входной метод

  @At
  @RequiresPermissions("user:delete")
  @Aop(TransAop.READ_COMMITTED)
  @Ok("json")
  public Object delete(@Param("id")int id) {
    int me = Toolkit.uid();
    if (me == id) {
      return new NutMap().setv("ok", false).setv("msg", "Вы не можете удалить текущего пользователя!");
    }
    dao.delete(User.class, id); // Для большей строгости требуется проверка > 0
    dao.clear(UserProfile.class, Cnd.where("userId", "=", me));
    return new NutMap().setv("ok", true);
  }

NutDao вне MVC-среды -- Класс DaoUp

// Инициализация класса DaoUp
DaoUp.me().init("db.properties");

Dao dao = DaoUp.me().dao();
dao.insert("t_user", Chain.make("id", 1).add("nm", "wendal").add("age", 30));
List<Record> users = dao.query("t_user", Cnd.where("age", "<", 25).desc("nm"));

List<User> girls = dao.count(User.class, Cnd.where("age", "<", 25).and("sex", "=", "female"));

// Уничтожение перед завершением программы
DaoUp.me().close();

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

Устойчивый выпуск

		<dependency>
			<groupId>org.nutz</groupId>
			<artifactId>nutz</artifactId>
			<version>1.r.59</version>
			<exclusions>
				<exclusion>
					<artifactId>servlet-api</artifactId>
					<groupId>javax.servlet</groupId>
				</exclusion>
			</exclusions>
		</dependency>

Снимок версии автоматически деплоится после каждого коммита в репозиторий snapshot-хаба Sonatype, позволяя использовать последние исправления ошибок и новые функции

	<repositories>
		<repository>
			<id>nutzcn-snapshots</id>
			<url>https://jfrog.nutz.cn/artifactory/snapshots</url>
			<snapshots>
				<enabled>true</enabled>
			</snapshots>
		</repository>
	</repositories>
	<dependencies>
		<dependency>
			<groupId>org.nutz</groupId>
			<artifactId>nutz</artifactId>
			<version>1.r.60-SNAPSHOT</version>
		</dependency>
		<!-- Другие зависимости -->
	</dependencies>

Также можно добавить репозитории в $HOME/.m2/settings.xml или непосредственно скачать с snapshot-хаба

Gradle зависимость

implementation('org.nutz:nutz:1.r.59')

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

  • Dao основан на JDBC API, поэтому не работает
  • AOP не может использоваться из-за механизма загрузки классов в Android
  • Scans и механизм сканирования классов Ioc не работают
implementation('org.nutz:nutz:1.r.59:android')

Настройки для ProGuard

### для nutz
-keepattributes Signature
-dontwarn org.nutz.**

-keep class org.nutz.castor.** { *; }
-keep interface org.nutz.castor.** { *; }

# следующее выбирается по необходимости
#-keep class org.nutz.lang.** { *; }
#-keep class org.nutz.log.** { *; }
#-keep class org.nutz.http.** { *; }
#-keep class org.nutz.json.** { *; }
#-keep class org.nutz.mapl.** { *; }
# или использовать полный набор
#-keep class org.nutz.** { *; }

Спонсорство

YourKit поддерживает открытые проекты своим полнофункциональным Java Профилировщиком. YourKit, LLC является создателем YourKit Java Profiler и YourKit .NET Profiler, инновационных и умных инструментов для профилирования Java и .NET приложений.

Логотип YourKit

JetBrains IntelliJ IDEA

http://www.jetbrains.com

О нас

Компания Guangzhou WenEr Software Technology Co., Ltd.

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

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

Введение

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

Обновления

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

Участники

все

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

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