- COC,约定大于配置。通过项目中约定俗成的规则来代替大部分的配置,同时还可以让大家能对项目更加熟悉,连文档都能省了。
下面是具体的项目规定: 项目中源码包的结构:
appSrc/domains/ 领域对象存放位置,
appSrc/controllers/ 业务逻辑所在位置,常用的CRUD可以直接通过ncode生成。
一般的业务逻辑直接使用通用dao直接查询数据库
而复杂或者可复用的逻辑可以分离出来放到services中
controllers中的类要以Controller结尾才会进行映射处理
非Controller结尾的类则按照nutz的正常流程处理
appSrc/services/ 复杂或者可复用的业务逻辑或者通用功能放在这里, controller中直接使用service类注入,不适用接口。根据大多数的中小型项目 的 统计,其使用接口来实现多个service的情况十分少见。当然若使用接口也可以,只需在service实行出使用@Inject("refer:nameService")即可注入,也可以只用配置文件进行注入
appSrc/utils/ 这里放一些常用的工具类
webapp/WEB-INF/templates/ 模版文件
webapp/Web-INF/views/ 这里放所有的视图文件,命名规则是moduleName/viewName - 这里介绍一些controllers处的url到action到view的映射关系
url 格式: http://yourdomain/appName/moduleName/actionName
moduleName是 controllerName去掉Controller,然后首字母小写
actionName就是 methodName
你若在Contoller设置了@At, 映射就变为 @At.value/actionName
若在Action中设置了@At 映射就直接为 /@At.value, 这里要注意这时候没有controllerName做前缀
View和action的映射关系则为 WEB-INF/views/controllerName/actionName.jsp
这里还没有处理的很好,若不满意可以直接使用@Ok处理即可 - 这里有个新特性则是为REDIRECT 重定向 添加了可以直接返回message
例如: @Ok(">>:/index.jsp") Object someFunction(){return "i'm redirect";}
在index.jsp 页面你可以直接使用${message} 来得到 这个字符串。目前只支持返回字符串,再复杂的数据应该采用db或者session或者cache来处理。 - 添加了ncode模版功能,目前支持 create-project projectName , create-domain
create-controller ,generate-controller, generate-views , help几个命令
以后会添加run-app,war等热部署项目和项目打包 - 这个时目前正在做的,scoffold脚手架功能,可以使你只创建一个domain就可以享受到所有的CRUD功能,不需要再生成重复的代码
这是你就可以通过修改模版来完成大部分功能的生成,若实在特殊再添加相应的action或者view即可。
说了这么多,只有一个目的,减少代码数,提高开发者的开发效率,减少对重复性代码的复制,更多的时间去关注业务,去关注其他的方面。希望你们在开发的时候更快乐,也给我反馈更多的意见。大家能为重复代码少烦一些,多快乐一点,也算我为创建和谐社会做的贡献 :)