集成 Nutz
框架到项目中,使用 Nutz
提供的功能快速开发企业级应用程序。
Nutz
是一个基于 Java
语言的开源框架,主要用于快速开发企业级应用程序。它提供了一系列简洁易用的工具和组件,能够帮助开发者高效地完成项目开发工作。Nutz
框架具有轻量级、依赖注入和 AOP
支持、强大的 ORM
框架、模块化设计、丰富的工具集以及良好的文档和社区支持等特点。
pom.xml
文件中添加 Nutz
和 Beetl
的依赖。application.yml
文件中添加 Nutz
框架的配置。Person
实体类,并编写基于 Nutz
的 CRUD
操作。PersonController
类提供 RESTful
接口。15:40:19.283 [restartedMain] ERROR o.s.b.SpringApplication - [reportFailure,870] - Application run failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dao' defined in class path resource [org/nutz/plugin/spring/boot/NutzDaoAutoConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.nutz.dao.Dao]: Factory method 'dao' threw exception; nested exception is java.lang.ExceptionInInitializerError
...
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.nutz.dao.Dao]: Factory method 'dao' threw exception; nested exception is java.lang.ExceptionInInitializerError
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:185)
at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:653)
... 22 common frames omitted
Caused by: java.lang.ExceptionInInitializerError: null
...
com.ruoyi
├── controller
│ └── PersonController.java
├── domain
│ └── Person.java
└── RuoYiApplication.java
<!--Nutz-->
<dependency>
<groupId>org.nutz</groupId>
<artifactId>nutz-plugins-spring-boot-starter</artifactId>
<version>1.r.68.v20201205</version>
</dependency>
<!--beetl-->
<dependency>
<groupId>com.ibeetl</groupId>
<artifactId>beetl</artifactId>
<version>3.10.0.RELEASE</version>
</dependency>
nutz:
json:
# 是否启用,默认true
enabled: false
# json模式,默认compact
mode: compact
# 是否启用压缩模式
compact: true
# 是否自动将值应用unicode编码
auto-unicode: false
# 日期格式化
date-format: yyyy-MM-dd HH:mm:ss
dao:
runtime:
# 自动创建表
create: false
# 根据bean自动更新表结构
migration: false
# 是否添加列 默认true
add-column: false
# 是否删除列 默认true
delete-column: false
# 是否删表重建,注意此功能会删除全部表及数据,一般应用于demo或测试 默认false
foce-create: false
# 是否检查索引 默认true
check-index: false
# 扫描bean
basepackage:
- com.ruoyi.domain
sql-manager:
#自定义sql管理模式 file和xml
mode: file
# sql文件存放位置
paths:
- sqls
sql-template:
#是否启用 默认false
enable: true
#模板引擎类型,默认beetl
type: beetl
package com.ruoyi.domain;
import lombok.Data;
import org.nutz.dao.entity.annotation.Column;
import org.nutz.dao.entity.annotation.Id;
import org.nutz.dao.entity.annotation.Table;
@Data
@Table("t_person")
public class Person {
@Id
private Long id;
@Column
private String name;
@Column
private Integer age;
}
package com.ruoyi.controller;
import com.ruoyi.common.core.domain.Rs
import com.ruoyi.domain.Person;
import org.nutz.dao.Cnd;
import org.nutz.dao.Dao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
@RequestMapping("/api/v1/person")
public class PersonController {
@Autowired
private Dao dao;
/**
* 添加 person
*
* @return
*/
@GetMapping("/add")
public R<Person> add() {
Person p = new Person();
p.setName("ABC");
p.setAge(20);
Person insert = dao.insert(p);
return R.ok(insert);
}
/**
* 获取 person 列表
*
* @return
*/
@GetMapping("/list")
public R<List<Person>> list() {
List<Person> query = dao.query(Person.class, Cnd.NEW());
return R.ok(query);
}
/**
* 修改 person
*
* @return
*/
@GetMapping("/update")
public R<Object> update(Person person) {
int update = dao.update(person);
return R.ok(update);
}
/**
* 删除 person
*
* @return
*/
@GetMapping("/delete")
public R<Object> delete(Person person) {
int update = dao.delete(person);
return R.ok(update);
}
}
启动应用程序,控制台输出如下信息:
访问 http://localhost:8080/api/v1/person/add
,返回添加的 Person
对象:
{
"code": 200,
"msg": "操作成功",
"data": {
"id": 1,
"name": "ABC",
"age": 20
}
}
http://localhost:8080/api/v1/person/list
,返回 Person
列表:{
"code": 200,
"msg": "操作成功",
"data": [
{
"id": 1,
"name": "ABC",
"age": 20
}
]
}
Person
对象,访问 http://localhost:8080/api/v1/person/update?id=1&name=DEF&age=30
,返回更新的行数:{
"code": 200,
"msg": "操作成功",
"data": 1
}
Person
对象,访问 http://localhost:8080/api/v1/person/delete?id=1
,返回删除的行数:{
"code": 200,
"msg": "操作成功",
"data": 1
}
powered by kaifamiao