nutz 简述

是什么:

在现如今越来越流行的 Web 开发领域,脚本语言们卷起了一场热潮。比如说相对于python的小巧灵活,java就显得很是臃肿。
从本质上来说, Java 语言本身为程序员提供的帮助只有两点,一是语言的语法,二是内置的类库。 现在 从事 Web 开发,大多是采用第三方的类库(或者说是框架),比如流行的 SSH。 所谓 Java 在 Web 开发的低效,不妨这样说比较贴切一些: 采用第三方类库进行开发比较低效。所以nutz出现了,它是一组轻便小型的框架的集合, 各个部分可以被独立使用。 而 Nutz 的目标就是:在力所能及的情况下,最大限度的提高Web开发人员的生产力。

特点:

  1. 遵循Apache协议,永久免费,完整开源,商用也是免费
  2. 体积小巧(1M+) 且无依赖
  3. 功能强大: Dao/Mvc/Json/Ioc/Aop以及各种帮助函数
  4. 全面的文档 + 极低的学习曲线
  5. 数年来被广泛应用到包括服务器,Android,嵌入式等各种开发场景
  6. 社区活跃
  7. 所有的功能均不强制依赖第三方 jar 包,意思就是如果一个 Web 应用,只需要引用一个nutz.jar就可以了
  8. 使用中不需要像mvc一样搭建三步,只需要一个module或多个父类实现继承就可以实现功能

提供了什么:

Dao – 针对 JDBC 的薄封装,事务模板,无缓存
Ioc – JSON 风格的配置文件,声明时切片支持
Mvc – 注解风格的配置,内置多文件上传功能
Json – 解析和渲染
Castors – Java 对象类型转换
Lang – 更简洁的 Java 函数以及更丰富的反射支持
Aop – 轻便快速的切面编程支持
Resource – 资源扫描

支持的环境

JDK5+, 推荐JDK8
任意SQL数据库,例如MySQL,Oracle,SqlServer等等
任意支持servlet 2.5的web容器, 推荐Tomcat 8.5+/Jetty 9.2+

Nutz 为谁而设计?

如果你觉得 Hibernate 控制比较繁琐,iBatis 编写SQL又比较麻烦,Nutz.Dao 专为你设计。
如果你觉得在多个服务器部署或者修改 Spring 配置文件很麻烦,Nutz.Ioc 专为你设计
如果你觉得直接写 XML 配置文件很麻烦,可视化编辑器又没控制感,Nutz.Mvc 专为你设计
如果你觉得 JSON 转换很麻烦(要写超过一行以上的代码),Nutz.Json 专为你设计
如果你觉得 Java 语法不如 Ruby 便捷, Nutz.Castor 以及 Nutz.Lang 专为你设计
如果你以前根本没接触过 SSH ,只使用 JDBC 编程, 整个 Nutz 专门为你设计

与spring相比:

  1. nutz感觉更加小巧,有自己的数据类型处理,集成了redis,mongodb,shiro,freemarker等,不需要导入太多的jar包,一个nutz.jar就能实现大部分功能
  2. nutz的源码注释是使用的中文注释,读起来更加方便
  3. 相对于springmvc来说不需要分层,避免了类较多,看的眼花缭乱
  4. 不需要编写sql的xml文件,nutz提供了方法直接调用就可以
  5. 但是spring相对于nutz来说更加全面,更加成熟,所以我认为nutz更加适合小巧的工程

我在使用中遇到的问题:
缺少kafka集成

以上结合了官网提供的说明,如有兴趣可点击:
nutz使用手册
如何搭建一个nutz
nutz api文档

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
nutz中,AOP可以通过`@Aop`注解和`AopFactory`来实现。 `@Aop`注解表示要增强的方法或类,可以在方法或类上添加该注解,并指定要增强的切点和增强方法。例如: ```java @Aop("log") public class MyClass { public void doSomething() { // 方法实现 } } @Aop("log") public void myMethod() { // 方法实现 } public class MyAspect { @Before("execution(* com.mycompany.*.*(..))") public void before() { // 前置增强 } @AfterReturning("execution(* com.mycompany.*.*(..))") public void afterReturning() { // 后置增强 } } ``` 在上面的代码中,`@Aop("log")`表示要增强的切点为`"log"`,可以是一个方法名或者通配符表达式。在`MyAspect`类中,通过`@Before`和`@AfterReturning`注解分别定义了前置增强和后置增强方法。 然后,在应用程序的启动类中,通过`AopFactory`来创建AOP代理对象。例如: ```java AopFactory aopFactory = new AopFactory(); aopFactory.addAspect(new MyAspect()); MyClass myClass = aopFactory.get(MyClass.class); myClass.doSomething(); MyClass myClass2 = new MyClass(); MyClass myClassProxy = aopFactory.getProxy(myClass2); myClassProxy.doSomething(); ``` 在上面的代码中,通过`AopFactory`来创建AOP代理对象`myClass`和`myClassProxy`,并调用`doSomething`方法。需要注意的是,`MyClass`类必须是一个Ioc Bean,即需要添加`@IocBean`注解。如果不是一个Ioc Bean,则需要使用`getProxy`方法来创建AOP代理对象。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值