核心模块 (core)
简介
continew-starter-core
是 ContiNew Starter 库的核心模块,为其他模块提供基础支持和通用能力。
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
。
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-starter | Spring Boot Starter(自动配置相关依赖) |
org.springframework.boot:spring-boot-configuration-processor | Spring Boot Starter(自动配置相关依赖) |
org.springframework.boot:spring-boot-starter-aop | Spring AOP Starter |
org.springframework:spring-web | Spring Web |
org.springframework:spring-webmvc | Spring MVC |
jakarta.servlet:jakarta.servlet-api | Jakarta Servlet(原 Javax Servlet) |
org.hibernate.validator:hibernate-validator(optional) | Hibernate Validator |
net.dreamlu:mica-ip2region | 第三方封装 Ip2region(离线 IP 数据管理框架和定位库,支持亿级别的数据段,10 微秒级别的查询性能,提供了许多主流编程语言的 xdb 数据管理引擎的实现)。 |
cn.hutool:hutool-core | Hutool 核心模块(核心方法及数据结构包) |
cn.hutool:hutool-json | Hutool JSON 模块(基于 json.org 官方库改造) |
cn.hutool:hutool-extra | Hutool 扩展模块(提供对第三方库的工具类支持) |
cn.hutool:hutool-http | Hutool HTTP客户端模块(针对 JDK 的 HttpUrlConnection 做一层封装,简化了 HTTPS 请求、文件上传、Cookie 记忆等操作,使 Http 请求变得无比简单) |