第一个模块类UserModule

新建一个类,名为UserModule, package为net.wendal.nutzbook.module

第一个模块类UserModule - 图1

配置Ioc相关注解及属性,即IocBean,Inject和Dao属性,哦哦,还有At

完成的后的代码如下

  1. package net.wendal.nutzbook.module;
  2. import org.nutz.dao.Dao;
  3. import org.nutz.ioc.loader.annotation.Inject;
  4. import org.nutz.ioc.loader.annotation.IocBean;
  5. import org.nutz.mvc.annotation.At;
  6. @IocBean // 还记得@IocBy吗? 这个跟@IocBy有很大的关系哦
  7. @At("/user")
  8. @Ok("json")
  9. @Fail("http:500")
  10. public class UserModule {
  11. @Inject
  12. protected Dao dao; // 就这么注入了,有@IocBean它才会生效
  13. }

再加一个count方法, 测试用

整个类贴给你了

  1. package net.wendal.nutzbook.module;
  2. import net.wendal.nutzbook.bean.User;
  3. import org.nutz.dao.Dao;
  4. import org.nutz.ioc.loader.annotation.Inject;
  5. import org.nutz.ioc.loader.annotation.IocBean;
  6. import org.nutz.mvc.annotation.At;
  7. import org.nutz.mvc.annotation.Fail;
  8. import org.nutz.mvc.annotation.Ok;
  9. @IocBean
  10. @At("/user")
  11. @Ok("json")
  12. @Fail("http:500")
  13. public class UserModule {
  14. @Inject
  15. protected Dao dao;
  16. @At
  17. public int count() {
  18. return dao.count(User.class);
  19. }
  20. }

启动Tomcat,验证一下

启动tomcat后, 观察日志, 无异常的话, 在浏览器访问如下URL

  1. http://127.0.0.1:8080/nutzbook/user/count

如果一切正常,那么会显示个1,就一个字符, 后台的log如下

  1. 2015-3-20 14:16:2.236 DEBUG [http-nio-8080-exec-2] Found mapping for [GET] path=/user/count : UserModule.count(...)
  2. 2015-3-20 14:16:2.238 DEBUG [http-nio-8080-exec-2] Get 'userModule'<class net.wendal.nutzbook.module.UserModule>
  3. 2015-3-20 14:16:2.238 DEBUG [http-nio-8080-exec-2] >> Load definition
  4. 2015-3-20 14:16:2.238 DEBUG [http-nio-8080-exec-2] Found IocObject(userModule) in IocLoader(AnnotationIocLoader@406224233)
  5. 2015-3-20 14:16:2.238 DEBUG [http-nio-8080-exec-2] >> Make...'userModule'<class net.wendal.nutzbook.module.UserModule>
  6. 2015-3-20 14:16:2.238 DEBUG [http-nio-8080-exec-2] class net.wendal.nutzbook.module.UserModule , no config to enable AOP for this type.
  7. 2015-3-20 14:16:2.239 DEBUG [http-nio-8080-exec-2] Save object 'userModule' to [app]
  8. 2015-3-20 14:16:2.239 DEBUG [http-nio-8080-exec-2] Get 'dao'<>
  9. 2015-3-20 14:16:2.240 DEBUG [http-nio-8080-exec-2] SELECT COUNT(*) FROM t_user

可能出现的问题:

  1. Search mapping for path=/user/count : NOT Action match

找不到方法, 一般是@At写错或者UserModule的package写错,导致映射不到或者根本没找到这个类.在日志中查找线索.

手册关联(选修)