nutz,今晚来一发(10): 入口方法使用json视图的时候如何配置格式

原创
2014/12/29 18:18
阅读数 769

例如, 需要跳过控制, 紧凑模式, 等等, 下面代码中????应该怎么写?

@At("json:??????")
	public User me(@Attr("uid")String uid) {
	        if (uid == null) return null;
		return dao.fetch(User.class, uid);
	}


----------------------------------------这不是分割线---------------------

上期答案:

用SetupBy注解和Setup接口

@SetupBy(CmsSetup.class)
class MainModule {
	
}

示例Setup实现

class CmsSetup implements Setup {
        //.... 随意添加变量...
 
	public void init(NutConfig nc) {
		Ioc ioc = nc.getIoc(); // 千万别自己new NutIoc
		Dao dao = ioc.get(Dao.class);
		
		// 初始化数据库
		Daos.createTablesInPackage(dao, "net.wendal.cms.bean", false);
		if (dao.count(User.class) == 0) {
			// ... add user
		}
		
		// 启动计划任务等等
	}

	public void destroy(NutConfig nc) { // 同样是nc哦,爱干啥干啥
		// netty shutdown
		
		// timer shutdown
	}
	
}


其实Setup接口也可以使用注入,只是很少用到,因为NutConfig能拿到任何需要的东西

@SetupBy(value=CmsSetup.class, args="ioc:cmsSetup")
@IocBy(...) // 自行脑补
public class MainModule {
	
}

@IocBean
public class CmsSetup implements Setup {
    @Inject Dao dao;
    
    // 其他方法自行脑补
}


关于Ioc对象的初始化, 就是events中的create事件,发生在对象创建完成之后.

@IocBean(create="init")
class UserService{

	@Inject Dao dao;
	
	public void init() { // 必须无参
		if (dao.count(User.class)) {
			User admin = new User();
			admin.setName("root");
			admin.setSalt(R.UU16());
			admin.setPassword(R.UU16());
			encodePws(admin);
			dao.insert(admin);
		}
	}
	
}



展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
0 评论
0 收藏
0
分享
返回顶部
顶部