国产精品开源框架Nutz及相官工具类简介

😂 这篇文章最后更新于1623天前,您需要注意相关的内容是否还可用。
目录导航
  • Nutz
    • Http 类
    • Tasks 类
    • Conf 加载
    • Sockets
    • NutMap
    • 代码统计
  • Nutz

    官网: http://nutzam.com

    简介: 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