7.21 杭州源创会火热报名中,一起来看看移动开发如何紧跟浪潮?
Watch Star Fork

Wendal / nutzJavaApache-2.0

加入碼雲
與超過 200 萬 開發者一起發現、參與優秀開源項目,私有倉庫也完全免費 :)
免費加入
Nutz核心代码 -- 镜像自 https://github.com/nutzam/nutz 请到论坛反馈 https://nutz.cn
取消
提示: 由於 Git 不支持空文件夾,創建文件夾後會生成空的 .keep 文件
Loading...
README.md 6.07 KB

Nutz

Build Status Circle CI Coverity Scan Build Status Maven Central codecov.io GitHub release License

对于 Java 程序员来说,除 SSH 之外,的另一个选择

Talk is cheap. Show me the code!!

项目目标

在力所能及的情况下,最大限度的提高 Web 开发人员的生产力。

项目各种资源地址

现已通过 Oracle JDK 8、Oracle JDK 7、OpenJDK 7、OpenJDK 6下的 maven 测试,请查阅 Travis CI地址CircleCI地址

Nutz生态系统(讨论稿)

nutz系统架构

基于注解配置

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);
  }

非MVC环境下的NutDao -- 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>

快照版本在每次提交后会自动deploy到sonatype快照库,享受各种bug fix和新功能

	<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>

也可以将repositories配置放入$HOME/.m2/settings.xml中

或者直接去快照库下载

Gradle 依赖

compile(group: 'org.nutz', name: 'nutz', version:'1.r.59')

Android下使用nutz时的注意事项

  • Dao基于JDBC API,所以无法工作
  • AOP在Android的类加载机制下无法使用
  • Scans及Ioc中类扫描机制,是不能工作的
compile(group: 'org.nutz', name: 'nutz', version:'1.r.59', classifier:'android')

混淆时需要加入的配置

### for 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.** { *; }

Sponsorship

YourKit supports open source projects with its full-featured Java Profiler. YourKit, LLC is the creator of YourKit Java Profiler and YourKit .NET Profiler, innovative and intelligent tools for profiling Java and .NET applications.

YourKit Logo

JetBrains IntelliJ IDEA

http://www.jetbrains.com

关于我们

广州市文尔软件科技有限公司

項目點評 ( 2 )

你可以在登錄後,發表評論

11_float_left_people 11_float_left_close