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
- 代码统计