Springboot项目初始化快速开发个人指南

Main.java.ProjectName

|_ auth

|_ common

|_ config

|_ filter

|_ generated

|_ repository

|_ service

|_ controller

以上是模拟的项目快速开发原型骨架。auth单独将登录认证的配置和接口做出了整合;generate中存放根据接口文档自动生成的一些增删改查分页,条件查询的基本操作。

Common包

constant

用于存放一些项目全局使用的常量:

    public static final String UTF8 = "UTF-8";
    public static final String GBK = "GBK";
    public static final String WWW = "www.";
    public static final String HTTP = "http://";
    public static final String HTTPS = "https://";
    public static final String SUCCESS = "0";
    public static final String FAIL = "1";

这只是一个简写,这些常量用于字符拼接、项目中常用的常量名、对一些工具名的封装

特别地:

 public static final String DATE_FORMAT_Y_M_D_H_MIN = "yyyy-MM-dd HH:mm";
 public static final List<String> DOC_TYPE = Arrays.asList("doc", "docx", "pdf", "xls", "xlsx", "html", "txt");
 public static final String IMAGE_SLASH_PREFIX_LOWER = "image/";

//...项目中常用的常量名
enums

这是一个枚举类的包,主要用于存放枚举类。其存在的意义是避免出现魔法数(albb java开发手册),此外API内容也可以放入enum中。

@Getter
public enum AbilityType {

    ENUM1("enum1", "枚举1"),
    ENUM2("enum2", "枚举2");

    private String code;
    private String info;

    AbilityType(String code, String info) {
        this.code = code;
        this.info = info;
    }
}
//这是一个高德地图的三方库
@Getter
@AllArgsConstructor
public enum AmapApi {
    GEO_CODE("https://restapi.amap.com/v3/geocode/geo", HttpMethod.GET, "获取地理编码"),

    REVERSE_GEO_CODE("https://restapi.amap.com/v3/geocode/regeo", HttpMethod.GET, "获取逆地理编码"),

    DIRECTION_DRIVING("https://restapi.amap.com/v3/direction/driving", HttpMethod.GET, "驾车路径规划"),
    ;
    private String url;

    private HttpMethod method;

    private String info;
}

一般都会自带get方法和构造方法

使用场景:

  • return一个信息
  • set一个值
  • 抛出异常值
  • 字符串equals(匹配)
  • case后的判断条件

**主要描述的内容性质:**对象状态、日常事务、类型(用户类型、文档类型)、优先级(LOW, MEDIUM, HIGH)、方向、文件权限(READ, WRITE, EXECUTE)、方式(支付方式)、程度难度(EASY, MEDIUM, HARD, EXPERT)

**优点:**易读性和可维护性、类型更安全、可限定的值集合、避免魔法数值、增强的编译器支持、适用于状态和选项的表示。

**缺点:**不适用于动态变化的数据、不适用于大型数据集合、缺乏扩展性、不支持继承

出处: https://blog.csdn.net/qq_61635026/article/details/131621143

Result

Result类通常用于封装API的统一响应格式用于规范请求响应的内容,可以写出泛型的形式或者继承序列化。

public class CommonResult<T> {
    private int code;
    private String message;
    private T data;

    public CommonResult() {}

    public CommonResult(int code, String message, T data) {
        this.code = code;
        this.message = message;
        this.data = data;
    }

    // Static factory methods
    // ...
}

例如响应失败:

    public static <T> CommonResult<T> failed(Integer code, String message) {
        return new CommonResult<>(code, message, null);
    }
utils

一般utils主要存放以下内容:

  • 字符串处理工具类(StringUtils):字符串判空、非空判断;字符串拆分、合并;字符串截取、替换;格式化字符串
  • 日期和时间工具类(DateUtils/TimeUtils):日期格式化、解析;日期加减操作;计算两个日期之间的差异;转换为各种时间单位(如秒、分钟、小时、天)
  • 集合工具类(CollectionUtils):集合判空、非空判断;集合的交集、并集、差集;集合过滤、转换;集合排序
  • 文件操作工具类(FileUtils):文件读写操作;文件复制、移动、删除;文件压缩、解压;获取文件属性
  • 网络操作工具类(NetUtils):URL编码、解码;IP地址处理;HTTP请求发送;检查网络连接
  • JSON处理工具类(JsonUtils):JSON字符串与对象的互相转换;JSON格式化、解析;深层次的JSON节点处理
  • 加密解密工具类(EncryptUtils):MD5、SHA等哈希算法;对称加密、非对称加密;Base64编码、解码
  • 数学工具类(MathUtils):常见数学计算;随机数生成;精度控制
  • 反射工具类(ReflectionUtils):动态调用方法;动态获取和设置属性值;获取类和方法的详细信息
  • 系统工具类(SystemUtils):获取系统环境变量;获取系统属性;JVM相关信息获取

httpUtils:

1、先完成Logger和RestTemplate的初始化

2、创建静态初始化块(设置SimpleClientHttpRequestFactory以设置连接超时时间读取超时时间)

3、发送不同类型请求的方法

  • sendRequest(String url, HttpMethod method): 发送不带请求体的请求。
  • sendRequest(String url, HttpMethod method, Object param): 发送带请求体的请求,并在请求头中添加 orgCode
  • sendRequest(String url, HttpMethod method, HttpHeaders headers): 发送带自定义请求头的请求。
  • sendRequest(String url, HttpMethod method, HttpHeaders headers, Object obj): 发送带自定义请求头和请求体的请求。
  • sendRequest(String url, HttpMethod method, String fileName, InputStream inputStream): 发送文件上传请求。
  • sendRequest(String url, List<File> files): 发送多个文件上传的请求。

Config

在Spring Boot应用程序中,config包通常用于存放各种配置类,这些配置类用于配置Spring应用上下文中的不同组件和行为。常见的配置类包括以下几类:

  • 数据库配置类
    • DataSourceConfig:配置数据源(DataSource),包括连接池的配置,如HikariCP、DBCP等。
    • JpaConfig:配置JPA相关属性,如实体管理器、事务管理器等。
  • 安全配置类
    • SecurityConfig:配置Spring Security,定义安全策略、用户认证和授权规则。
    • OAuth2Config:配置OAuth2相关的安全策略。
  • Web配置类
    • WebMvcConfig:配置Spring MVC相关的设置,如视图解析器、消息转换器、跨域资源共享(CORS)等。
    • WebSocketConfig:配置WebSocket相关的设置。
  • 缓存配置类
    • CacheConfig:配置缓存管理器和缓存策略,如使用Redis、EhCache等。
  • 消息队列配置类
    • RabbitMQConfig:配置RabbitMQ相关属性。
    • KafkaConfig:配置Kafka相关属性。
  • 定时任务配置类
    • SchedulerConfig:配置定时任务调度器,如使用@Scheduled注解的任务调度。
  • 国际化配置类
    • LocaleConfig:配置国际化资源文件和区域解析器。
  • Swagger配置类
    • SwaggerConfig:配置Swagger用于API文档生成。
  • 其他第三方服务配置类
    • EmailConfig:配置邮件服务。
    • FileStorageConfig:配置文件存储服务,如本地存储、云存储(如AWS S3)。
  • 自定义属性配置类
    • AppConfig:读取和配置自定义的应用属性,通过@ConfigurationProperties注解。
  • 异步处理配置类
    • AsyncConfig:配置异步任务执行器(Executor),定义异步任务线程池等。
  • 日志配置类
    • LogConfig:配置日志记录器的属性,如Logback、Log4j2等

filter

过滤器(Filter)是一种在请求到达Servlet之前或响应离开Servlet之后进行处理的组件。它可以用于各种功能,如身份验证、日志记录、压缩、解压缩等。常见用途:

  1. 请求和响应日志记录:记录每个请求和响应的详细信息。
  2. 身份验证和授权:检查用户身份和权限。
  3. 输入验证:验证请求参数和数据的完整性和正确性。
  4. 数据压缩:对响应数据进行压缩以减少带宽使用。
  5. 跨域资源共享(CORS):处理跨域请求。

比如

  • HiddenHttpMethodFilter:允许通过表单提交方式模拟HTTP的DELETE、PUT等方法。
  • CharacterEncodingFilter:设置请求和响应的字符编码。
  • CorsFilter:处理跨域资源共享(CORS)请求。
  • DelegatingFilterProxy:委托给Spring应用上下文中的一个Spring Bean来处理过滤逻辑,通常用于Spring Security。

Generate

利用接口文档的配置内容,将一些接口的增删改查、分页操作、条件查询等操作快速生成

在这里插入图片描述

  • CorsFilter:处理跨域资源共享(CORS)请求。
  • DelegatingFilterProxy:委托给Spring应用上下文中的一个Spring Bean来处理过滤逻辑,通常用于Spring Security。

Generate

利用接口文档的配置内容,将一些接口的增删改查、分页操作、条件查询等操作快速生成

[外链图片转存中…(img-aq51FZ8W-1721703587728)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值