Skip to content

Commit

Permalink
📖 update doc
Browse files Browse the repository at this point in the history
  • Loading branch information
weihubeats committed Mar 17, 2024
1 parent 10c993f commit 0119a6f
Showing 1 changed file with 69 additions and 38 deletions.
107 changes: 69 additions & 38 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,27 +1,69 @@
# spring-boot-nebula

# 模块说明
- [spring-boot-nebula-common](spring-boot-nebula-common) 基础工具组件
- [spring-boot-nebula-aggregate](spring-boot-nebula-aggregate) ddd聚合根组件
- [spring-boot-nebula-dependencies](spring-boot-nebula-dependencies) 统一依赖
- [spring-boot-nebula-samples](spring-boot-nebula-samples) 使用示例
- [spring-boot-nebula-web](spring-boot-nebula-web) web封装组件(包括统一异常返回,简化返回,自定义异常报警)
- [spring-boot-nebula-web-common](spring-boot-nebula-web-common) web模块基础工具类
- [spring-boot-nebula-distribute-lock](spring-boot-nebula-distribute-lock) 分布式锁
开箱即用的web模块

不使用`spring-boot-nebula-web`搭建项目

需要引入spring boot 各种依赖,指定各种版本,然后编写各种分页基础对象,`Result`返回对象
比如需要 原先web项目需要使用的返回值比如`Response<T> ss`;
```java
@GetMapping("/test")
public Response<String> test() {
return Response.success("小奏");
}
```
使用`spring-boot-nebula-web`搭建项目如何简单
1. 引入依赖
```xml
<dependency>
<groupId>io.github.weihubeats</groupId>
<artifactId>spring-boot-nebula-web</artifactId>
<version>0.0.01</version>
</dependency>
```
2. 编写一个启动类
```xml
@SpringBootApplication
public class WebApplication {

public static void main(String[] args) {
TimeZone.setDefault(TimeZone.getTimeZone("Asia/Shanghai"));
SpringApplication.run(WebApplication.class, args);
}
}
```

> 每个模块可单独引用使用,不耦合
然后就可以愉快的写接口了,返回值无需使用`Response`包装,仅仅需要添加`@NebulaResponseBody`注解
```java
@GetMapping("/test")
@NebulaResponseBody
public String test() {
return "小奏";
}
```
返回结果
```json
{
"code": 200,
"data": "小奏",
"msg": "success"
}
```

## 解决问题
## 功能
1. 统一公司所有`spring boot`项目的依赖管理

不使用`common`可能存在的问题:
不使用`spring-boot-nebula-dependencies`可能存在的问题:
- a项目使用了 redission 3.14 b项目 使用3.61,然后导致相同代码可能运行结果不一致
- 统一使用`web-spring-boot-start`模块或者`boot-common-parent`可解决不同项目依赖版本不一致问题。
`boot-common-parent`管理公司的所有依赖,以后应用项目无需手动指定各种依赖版本只需引用依赖即可,统一在`boot-common-parent`管理即可
- 统一使用`spring-boot-nebula-dependencies`作为p'a'r'a'm
`boot-common-parent`管理公司的所有依赖,以后应用项目无需手动指定各种依赖版本只需引用依赖即可,统一在`boot-common-parent`管理即可
4. 提供开箱即用的`web-spring-boot-start`模块,解决web开发需要手动封装工具类的痛点
5. 提供统一异常处理
6. 提供优雅的时间戳转`LocalDateTime`注解
7. 提供开箱即用的分页对象
8. 提供开箱即用的分布式锁
9. 提供开箱即用的`mybatis-plus`模块
10. 提供开箱即用的`ddd`聚合根模块


## demo
Expand All @@ -41,38 +83,17 @@
1. 运行[Application.java](spring-boot-nebula-samples%2Fspring-boot-nebula-web-sample%2Fsrc%2Fmain%2Fjava%2Fcom%2Fnebula%2Fweb%2Fsample%2FApplication.java)
2. 运行 [http-test-controller.http](spring-boot-nebula-samples%2Fspring-boot-nebula-web-sample%2Fsrc%2Fmain%2Fhttp%2Fhttp-test-controller.http)中的`GET localhost:8088/test`

原先web项目需要使用的返回值比如`Response<T> ss`;
```java
@GetMapping("/test")
public Response<String> test() {
return Response.success("小奏");
}
```


现在不需要将自己的返回对象包裹起来,只需要添加注解`@NebulaResponseBody`
```java
@GetMapping("/test")
@NebulaResponseBody
public String test() {
return "小奏";
}
```
返回结果
```json
{
"code": 200,
"data": "小奏",
"msg": "success"
}
```


#### 提供开箱即用的分页对象
- [NebulaPage.java](spring-boot-nebula-web%2Fsrc%2Fmain%2Fjava%2Fcom%2Fnebula%2Fweb%2Fboot%2Fapi%2FNebulaPage.java)
- [NebulaPageQuery.java](spring-boot-nebula-web%2Fsrc%2Fmain%2Fjava%2Fcom%2Fnebula%2Fweb%2Fboot%2Fapi%2FNebulaPageQuery.java)

使用

#### 提供时间戳自动转`LocalDateTime`注解
#### 时间戳自动转`LocalDateTime`注解
@GetTimestamp

```java
Expand Down Expand Up @@ -120,4 +141,14 @@
<artifactId>spring-boot-nebula-mybatis-plus</artifactId>
<version>0.0.01</version>
</dependency>
```
```

# 模块说明
- [spring-boot-nebula-common](spring-boot-nebula-common) 基础工具组件
- [spring-boot-nebula-aggregate](spring-boot-nebula-aggregate) ddd聚合根组件
- [spring-boot-nebula-dependencies](spring-boot-nebula-dependencies) 统一依赖
- [spring-boot-nebula-samples](spring-boot-nebula-samples) 使用示例
- [spring-boot-nebula-web](spring-boot-nebula-web) web封装组件(包括统一异常返回,简化返回,自定义异常报警)
- [spring-boot-nebula-web-common](spring-boot-nebula-web-common) web模块基础工具类
- [spring-boot-nebula-distribute-lock](spring-boot-nebula-distribute-lock) 分布式锁

0 comments on commit 0119a6f

Please sign in to comment.