Skip to content

核心模块 (core)

简介

continew-starter-core 是 ContiNew Starter 库的核心模块,为其他模块提供基础支持和通用能力。

pom.xml
xml
<!-- ContiNew Starter 核心模块,提供基础配置与通用工具类 --> <dependency>  <groupId>top.continew.starter</groupId>  <artifactId>continew-starter-core</artifactId> </dependency>

主要特性

  • 提供应用配置: 封装通用应用基础信息配置,自动引入 Hutool SpringUtil 工具类
  • 优化线程池配置: 支持线程池(ThreadPoolTaskExecutor、ScheduledExecutorService、@Async)自动配置(基于CPU核数动态计算),同时支持自定义参数
  • 提供基础组件: 包含常用常量(StringConstants、CharConstants)、扩展Hutool工具类、基础枚举(BaseEnum)及异常体系(BaseException)
  • 请求响应增强: 提供可重复读取请求/响应内容的包装器(RepeatReadRequestWrapper、RepeatReadResponseWrapper)

应用配置

大多数情况下,在应用开发中需要频繁使用到应用的基础信息,例如:应用名称、应用版本、应用基础包地址等等。如果在每个需要应用信息的地方都通过硬编码的方式来使用,显然不利于后续维护。 所以我们提供了应用信息自动配置,且帮助导入了 Hutool SpringUtil 这一高频使用工具类。

配置示例

配置详情请查看:top.continew.starter.core.autoconfigure.application.ApplicationProperties

application.yml
yaml
--- ### 应用配置 application:  id: continew-admin  # 名称  name: ContiNew Admin  # 描述  description: 持续迭代优化的前后端分离中后台管理系统框架,开箱即用,持续提供舒适的开发体验。  # 版本  version: 4.0.0  starter: 2.13.4  # 基本包  base-package: top.continew.admin  ## 作者信息配置  contact:  name: Charles7c  email: charles7c@126.com  url: https://charles7c.top  ## 许可协议信息配置  license:  name: Apache-2.0  url: https://github.com/continew-org/continew-admin/blob/dev/LICENSE

使用示例

java
import top.continew.starter.core.autoconfigure.application.ApplicationProperties;  @RestController @RequiredArgsConstructor public class TestController {    private final ApplicationProperties applicationProperties;   }

线程池配置

配置详情请查看:top.continew.starter.core.autoconfigure.threadpool.ThreadPoolExtensionProperties。 线程池配置已经针对 @Async 进行了配置。

配置示例

yaml
--- ## 线程池配置(默认启用扩展配置,如未指定 corePoolSize、maxPoolSize 则根据机器配置自动设置) spring.task:  # 异步任务  execution:  # 启用优化配置(关闭后,ThreadPoolTaskExecutor、AsyncConfigurer 配置优化将被关闭)  extension.enabled: true  thread-name-prefix: task-pool  # 任务拒绝策略(默认 ABORT,不执行新任务,直接抛出 RejectedExecutionException 异常)  # CALLER_RUNS:提交的任务在执行被拒绝时,会由提交任务的线程去执行  rejected-policy: CALLER_RUNS  pool:  keep-alive: 300s  shutdown:  # 是否等待任务执行完成再关闭线程池(默认 false)  await-termination: true  # 等待时间  await-termination-period: 30s  # 定时任务  scheduling:  # 启用优化配置(关闭后,ThreadPoolTaskScheduler 配置优化将被关闭)  extension.enabled: true  thread-name-prefix: schedule-pool  # 任务拒绝策略(默认 ABORT,不执行新任务,直接抛出 RejectedExecutionException 异常)  # CALLER_RUNS:提交的任务在执行被拒绝时,会由提交任务的线程去执行  rejected-policy: CALLER_RUNS  shutdown:  # 是否等待任务执行完成再关闭线程池(默认 false)  await-termination: true  # 等待时间  await-termination-period: 30s

使用示例

java
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;  @RestController @RequiredArgsConstructor public class TestController {   private final ThreadPoolTaskExecutor threadPoolTaskExecutor;  }

核心依赖

依赖描述
org.springframework.boot:spring-boot-starterSpring Boot Starter(自动配置相关依赖)
org.springframework.boot:spring-boot-configuration-processorSpring Boot Starter(自动配置相关依赖)
org.springframework.boot:spring-boot-starter-aopSpring AOP Starter
org.springframework:spring-webSpring Web
org.springframework:spring-webmvcSpring MVC
jakarta.servlet:jakarta.servlet-apiJakarta Servlet(原 Javax Servlet)
org.hibernate.validator:hibernate-validator(optional)Hibernate Validator
net.dreamlu:mica-ip2region第三方封装 Ip2region(离线 IP 数据管理框架和定位库,支持亿级别的数据段,10 微秒级别的查询性能,提供了许多主流编程语言的 xdb 数据管理引擎的实现)。
cn.hutool:hutool-coreHutool 核心模块(核心方法及数据结构包)
cn.hutool:hutool-jsonHutool JSON 模块(基于 json.org 官方库改造)
cn.hutool:hutool-extraHutool 扩展模块(提供对第三方库的工具类支持)
cn.hutool:hutool-httpHutool HTTP客户端模块(针对 JDK 的 HttpUrlConnection 做一层封装,简化了 HTTPS 请求、文件上传、Cookie 记忆等操作,使 Http 请求变得无比简单)