SpringBoot之标准化输出结果

1.做一个返回码的枚举类

package com.onecity.usualtemplate;

import lombok.Getter;

@Getter
public enum ResponseCode {

    SUSECESS(200, "请求成功"),
    ERROR(444, "系统未知异常,请联系管理员"),
    PARAMETERERROR(600, ""),
    AUTHORITYERROR(703, "权限不足");

    private Integer key;
    private String value;

    private ResponseCode(Integer key, String value) {
        this.key = key;
        this.value = value;
    }
}

2.做一个返回实体对象(按需修改,时间是自己写的方法,不用管它)

package com.onecity.usualtemplate;

import com.onecity.comutils.DateTime;
import lombok.Getter;
import lombok.Setter;

@Getter
@Setter
public class RequestResult {

    /// <summary>
    ///  返回code
    /// </summary>
    private int code;

    /// <summary>
    ///  返回消息
    /// </summary>
    private String message;

    /// <summary>
    ///  服务器当前时间
    /// </summary>
    private String servertime;

    /// <summary>
    ///  返回 结果
    /// </summary>
    private Object result;

    /// <summary>
    /// 基本构造
    /// </summary>
    public RequestResult() {
        this.code = 200;
        this.servertime = DateTime.NOW().tostring(DateCode.YYYY_MM_DD_HH_MM_SS);
    }

    /// <summary>
    /// 基本构造
    /// </summary>
    /// <param name="result">返回情况</param>
    public RequestResult(Object result) {
        if (result == null) {
            this.code = 400;
            this.servertime = DateTime.NOW().tostring(DateCode.YYYY_MM_DD_HH_MM_SS);
            return;
        }
        this.code = 200;
        this.message = "操作成功";
        this.result = result;
        this.servertime = DateTime.NOW().tostring(DateCode.YYYY_MM_DD_HH_MM_SS);
    }

    /// <summary>
    /// 基本构造
    /// </summary>
    /// <param name="code">状态码</param>
    /// <param name="message">消息文本</param>
    public RequestResult(ResponseCode code, String message) {
        this.code = code.getKey();
        this.message = message;
        this.servertime = DateTime.NOW().tostring(DateCode.YYYY_MM_DD_HH_MM_SS);
    }

    public RequestResult(ResponseCode code) {
        this.code = code.getKey();
        this.message = code.getValue();
        this.servertime = DateTime.NOW().tostring(DateCode.YYYY_MM_DD_HH_MM_SS);
    }
}

3. 使用,可以选择性覆盖返回提示信息,按需选择

 @GetMapping("/querydevicedetail")
    public RequestResult QueryDeviceDetail(DeviceDTO device) {
        if (StringUtils.isEmpty(device.getId()) && StringUtils.isEmpty(device.getDeviceCode())) {
            return new RequestResult(ResponseCode.PARAMETERERROR, "设备不能为空");
        }
        RequestResult result = deviceservice.QueryDeviceDetail(device);
        return result;
    }

 

### 回答1: 在 Spring Boot 中,通常按照 Maven 或 Gradle 的标准目录结构来组织应用程序的代和资源。这些标准目录结构如下: - `src/main/java`: Java 代文件,包括应用程序的主入口文件和其他文件。 - `src/main/resources`: 应用程序的资源文件,包括配置文件、静态资源文件等。 - `src/test/java`: 测试代文件,包括单元测试和集成测试等。 - `src/test/resources`: 测试使用的资源文件。 如果需要自定义目录标准,可以使用 Spring Boot 提供的 `@SpringBootApplication` 注解的 `@ComponentScan`、`@EntityScan` 和 `@EnableJpaRepositories` 属性来指定自定义的目录。 例如,可以通过 `@ComponentScan` 注解来指定自定义的 Java 代路径: ```java @SpringBootApplication @ComponentScan(basePackages = {"com.example.custom"}) public class MyApplication { //... } ``` 还可以使用 `@EntityScan` 和 `@EnableJpaRepositories` 注解来指定自定义的实体和 JPA 存储库路径: ```java @SpringBootApplication @EntityScan(basePackages = {"com.example.custom.entity"}) @EnableJpaRepositories(basePackages = {"com.example.custom.repository"}) public class MyApplication { //... } ``` 需要注意的是,如果自定义了目录标准,也需要相应地调整 Maven 或 Gradle 的配置文件来指定对应的目录路径。 ### 回答2: Spring Boot是一个开源的Java框架,用于构建独立的、可执行的、基于微服务的应用程序。它提供了许多默认的配置和规范,但也允许开发者根据自己的需求进行自定义。 在Spring Boot中,可以自定义目录标准以满足项目的特定需求。下面是一些常用的自定义目录: 1. 数据持久化目录:可以将项目的数据库文件或数据文件存放在自定义的目录下。可以使用`spring.datasource.url`和`spring.datasource.username`等属性来指定数据库文件的路径和用户名。 2. 静态资源目录:默认情况下,Spring Boot会将静态资源(如CSS、JS和图片文件)放在`/resources/static`目录下。如果需要,可以在`application.properties`文件中使用`spring.resources.static-locations`属性来自定义静态资源的目录。 3. 模板文件目录:Spring Boot支持使用模板引擎来渲染视图。默认情况下,模板文件应放在`/resources/templates`目录下。如果需要,可以在`application.properties`中使用`spring.thymeleaf.prefix`(对于Thymeleaf模板引擎)或`spring.freemarker.template-loader-path`(对于FreeMarker模板引擎)属性来自定义模板文件的目录。 4. 日志文件目录:Spring Boot使用Logback作为默认的日志框架,并将日志文件存放在`/logs`目录下。如果需要,可以在`application.properties`中使用`logging.file.path`属性来自定义日志文件的目录和文件名。 5. 测试文件目录:测试文件(如JUnit测试、Mock数据文件等)默认会放在`/src/test`目录下。如果需要,可以使用Maven的`src/test/resources`目录来存放测试资源文件。 总的来说,Spring Boot的目录结构和标准已经能够满足大部分项目的需求。如果需要进行自定义,可以通过调整相关的属性来修改默认的目录设置。需要注意的是,在进行自定义目录时,应确保修改配置文件中的相关属性,并遵循项目的规范和最佳实践。 ### 回答3: Spring Boot提供了一套自定义目录标准,以便开发人员能根据自己的需求对项目的结构进行灵活调整。 1. 源目录结构: - `src/main/java`:Java源文件所在目录,主要用于存放应用程序的源代。 - `src/main/resources`:资源文件所在目录,主要用于存放配置文件、静态资源和模板文件等。 - `src/main/webapp`:Web应用的根目录,用于存放Web容器需要访问的文件。 2. 测试目录结构: - `src/test/java`:单元测试源文件所在目录,主要用于存放单元测试的源代。 - `src/test/resources`:测试资源文件所在目录,用于存放测试过程中使用的配置文件、静态资源和模板文件等。 3. 项目构建目录结构: - `src/main/resources/static`:静态资源文件所在目录,用于存放各种静态资源文件,如css、js、图片等。 - `src/main/resources/templates`:模板文件所在目录,用于存放各种模板文件,如Thymeleaf、Freemarker等。 - `src/main/resources/application.properties`:应用程序的配置文件,可以设置各种属性和参数。 - `src/main/resources/application.yml`:应用程序的配置文件,使用YAML格式,可以与properties文件互相转换。 - `src/main/resources/banner.txt`:应用程序启动时的自定义启动图标文件。 4. 其他目录结构: - `src/main/resources/META-INF`:存放项目的元信息文件,如MANIFEST.MF等。 - `src/main/resources/logback.xml`:日志配置文件,用于配置日志输出的格式和方式。 - `src/main/resources/spring/`:存放Spring相关的配置文件,如Spring MVC的配置文件。 - `src/main/resources/db/`:存放数据库相关的配置文件,如MyBatis的配置文件。 通过遵循这些自定义目录标准,可以使项目结构更加清晰、易读,并提高开发效率和可维护性。当然,这些目录标准并非强制要求,开发人员可以根据自己的项目需求进行适当的调整和扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值