Nutz
简介: Nutz 是国产的精品开源框架,它全无依赖,只以 1 兆多的身材,就可以实现 SSH 全部功能的 90% 以上。内容主要涵盖了:Ioc、Aop、MVC、Dao、Json 等 WEB 开发的方方面面。 因此它并非简简单单一个工具包,甚至可用它来做一个项目。
相关工具类(其他内容请参见官网, 此处仅选其中几工具类)
Http 类
//get 方式请求 Response resp = Http.get("http://www.baidu.com"); if (resp.isOK()) { System.out.println(resp.getContent()); } //post 方式 Map<String, Object> params = new HashMap<String, Object>(); params.put("name", "root"); params.put("pwd", "123456"); int timeout = 60 * 1000; // 单位毫秒 String apiRet = Http.post("http://api.xxx.com/login", params, timeout); System.out.println(apiRet);
使用代理
定制 http Header、Cookie
文件上传
设置请求超时时间… 更多内容可自行探索 org.nutz.http 包。
Tasks 类
Tasks.scheduleAtFixedRate(new Runnable() { public void run() { System.out.println("task runing..."); } }, 10); Lang.quiteSleep(60 * 1000);
在指定的延时之后开始以固定的频率来运行任务
在指定的时间点开始以固定的频率运行任务
两次任务间保持固定的时间间隔
返回 Future 做更高级的任务控制
返回定时任务线程池,可做更高级的应用 更多内容可自行探索 org.nutz.lang.Tasks 类
Conf 加载
PropertiesProxy property = new PropertiesProxy(“/conf/", “/db.properties”)); String redisIp = property.get("redis.ip"); Int redisPort = property.getInt("redis.port");
Sockets
Sockets.localListenOneAndStop(9099, "reload", new SocketAction(){ @Override public void run(SocketContext context) { System.out.println(" 重新加载配置文件 "); context.writeLine("success"); } });
现在你只需 telnet 172.0.0.1 9090 然后输入 reload,就能重新加载项目中的配置文件了。而且原生的,它支持客户端输入 “close|stop|bye|exit” 来结束服务端的本地监听。
上边只是演示了添加一个动作(SocketAction),其实可以向它放入多个 SocketAction 来实现各种命令操作。另高级的,服务器端还能支持接收 json 串,实现更多的参数传入。 更多内容可自行探索 org.nutz.lang.socket 包。
NutMap
NutMap map = new NutMap(); map.put("name", "bushi"); map.put("age", 63); map.put("sex", true); map.put("time", new Date()); System.out.println(map.getString("name")); System.out.println(map.getInt("age")); System.out.println(map.getBoolean("sex")); System.out.println(map.getTime("time")); // 另外 addv 亦可添加支持链式 NutMap nutMap = new NutMap(); nutMap.put("1",1); nutMap.put("2","2"); nutMap.addv("3",3).addv2("4",4); System.out.println(nutMap); // 输出 {1=1, 2=2, 3=3, 4=[4]}
代码统计
Nutz 中还隐藏了一个代码统计工具。它可以对程序源码进行详细的统计,可以准确的分析出程序中代码行、注释行、空白行和导入行为多少等等。
项目快结束了,统计下项目中代码行数,可以满足下自己的虚荣心,同时也好向老板交差。
使用方法非常简单:
File file = new File("E:/qinerg_github/nutz/src/"); CodeStatisticsResult statisticsResult = Code.countingCode(file, "java", true, null); System.out.println(" 源码数:" + statisticsResult.getFileCount()); System.out.println(" 总行数:" + statisticsResult.getTotalLines()); System.out.println(" 代码行:" + statisticsResult.getNormalLines()); System.out.println(" 注释行:" + statisticsResult.getCommentLines()); System.out.println(" 导入行:" + statisticsResult.getImportLines()); System.out.println(" 空白行:" + statisticsResult.getWhiteLines());
参考来源: https://my.oschina.net/qinerg/blog/164278
- Http 类
- Tasks 类
- Conf 加载
- Sockets
- NutMap
- 代码统计
- Http 类
- Tasks 类
- Conf 加载
- Sockets
- NutMap
- 代码统计