Альтернатива 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();
Устойчивый выпуск
<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-хаба
implementation('org.nutz:nutz:1.r.59')
implementation('org.nutz:nutz:1.r.59:android')
### для 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 приложений.
JetBrains IntelliJ IDEA
Компания Guangzhou WenEr Software Technology Co., Ltd.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )