本章节基于: 六、Springboot 整合Shiro---03权限控制
Nutz 可以做什么?
- Dao -- 针对 JDBC 的薄封装,事务模板,无缓存
- Ioc -- JSON 风格的配置文件,声明时切片支持
- Mvc -- 注解风格的配置,内置多文件上传功能
- Json -- 解析和渲染
- Castors -- Java 对象类型转换
- Lang -- 更简洁的 Java 函数以及更丰富的反射支持
- Aop -- 轻便快速的切面编程支持
- Resource -- 资源扫描
它所有的功能均不强制依赖第三方 jar 包
这就意味着:
- 如果一个 Web 应用,你在 WEB-INF/lib 下只 需要放置一个 nutz.jar 就够了
- 当然你要使用连接池,数据库驱动, websocket等功能,还需要自行添置 jar 包。
支持的环境
- 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 专门为你设计
Nutz 的质量
截至到现在为止,Nutz 的 JUnit 用例覆盖率大概是这样的
并且这个数字还在不断增加。
在一个功能告一段落以后,我通常会花1-2个晚上在一边咂着廉价的红酒一边颇有成就感的书写JUnit测试。 通常我会用 JUnit 把我自己击溃,紧接着的那几天我都努力让那个该死红条变绿,之后,又想方设法写出 新的Junit测试试图让它再度变红。并且我还要保证所做的修改不能让代码膨胀,这的确让我死掉了不少脑 细胞。这些测试中,不仅涵盖各种功能上的测试,也涵盖了一些跨越线程的测试。在以后,我会针对代码执 行的效率加入一些新的测试。
Springboot整合Nutz(这里只用到nutz的Dao):
一、在pom文件中引入依赖:
<!--Springboot整合Nutz-->
<dependency>
<groupId>org.nutz</groupId>
<artifactId>nutz-plugins-spring-boot-starter</artifactId>
<version>1.r.66</version>
</dependency>
<!--阿里的数据连接池-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.9</version>
</dependency>
<!--数据库驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
二、在application.yml中配置数据库链接信息和nutz
server:
#设置程序启动端口号
port: 7000
beetl:
#模板路径
templatesPath: templates
oauth:
qq:
#你的appid
client_id: 123456
#你的appkey
client_secret: aaaaaaaaa
#你接收响应code码地址
redirect_uri: http://localhost:7000/authorize/qq
#腾讯获取code码地址
code_callback_uri: https://graph.qq.com/oauth2.0/authorize
#腾讯获取access_token地址
access_token_callback_uri: https://graph.qq.com/oauth2.0/token
#腾讯获取openid地址
openid_callback_uri: https://graph.qq.com/oauth2.0/me
#腾讯获取用户信息地址
user_info_callback_uri: https://graph.qq.com/user/get_user_info
spring:
aop:
#开启aop代理
auto: true
proxy-target-class: true
datasource:
driver-class-name: com.mysql.jdbc.Driver
username: root
password: 123456
url: jdbc:mysql://127.0.0.1:3306/example?characterEncoding=utf8&autoReconnect=true&failOverReadOnly=false&maxReconnects=10&useSSL=false
type: com.alibaba.druid.pool.Druid