config 包
在 config 包中,主要包含与 配置 相关的类,用于定义项目的各种配置。以下是这些类的详细说明:
1. CrosConfig
功能 :配置跨域访问。 主要方法 :
- addCorsMappings(CorsRegistry registry) :
- 作用 :配置跨域访问规则。
- 功能 :
- 允许所有路径( /** )跨域访问。
- 允许所有来源( * )的请求。
- 允许 GET 、 POST 、 PUT 、 DELETE 请求方法。
- 允许所有请求头( * )。
- 设置跨域请求的最大缓存时间为 3600 秒。
- 允许发送 Cookie。 作用 :通过配置类定义跨域访问规则,便于在项目中统一管理跨域访问。
2. SecurityConfig
功能 :配置 Spring Security 相关的安全设置。 主要方法 :
- configure(HttpSecurity http) :
- 作用 :配置 HTTP 请求的安全规则。
- 功能 :
- 设置哪些路径需要认证,哪些路径允许匿名访问。
- 配置登录、注销、异常处理等行为。
- configure(AuthenticationManagerBuilder auth) :
- 作用 :配置用户认证方式。
- 功能 :
- 设置用户认证的密码编码器。
- 配置用户信息的来源(如数据库、内存等)。 作用 :通过配置类定义 Spring Security 的安全规则,便于在项目中统一管理用户认证和授权。
3. SwaggerConfig
功能 :配置 Swagger API 文档。 主要方法 :
- createRestApi() :
- 作用 :创建 Swagger API 文档。
- 功能 :
- 设置 API 文档的基本信息(如标题、描述、版本等)。
- 配置需要扫描的 API 包路径。
- 配置 API 文档的访问路径。 作用 :通过配置类定义 Swagger API 文档的生成规则,便于在项目中统一管理 API 文档。
4. DataSourceConfig
功能 :配置数据源。 主要方法 :
- dataSource() :
- 作用 :创建数据源。
- 功能 :
- 设置数据库连接 URL、用户名、密码、驱动类等。
- 配置连接池(如 HikariCP、Druid 等)。 作用 :通过配置类定义数据源的创建规则,便于在项目中统一管理数据库连接。
5. RedisConfig
功能 :配置 Redis 连接。 主要方法 :
- redisTemplate() :
- 作用 :创建 RedisTemplate。
- 功能 :
- 设置 Redis 连接工厂。
- 配置 Redis 的序列化方式。 作用 :通过配置类定义 Redis 连接的创建规则,便于在项目中统一管理 Redis 操作。
总结
config 包中的类主要用于定义项目的各种配置,例如跨域访问、Spring Security 安全设置、Swagger API 文档、数据源、Redis 连接等。通过配置类封装这些规则,便于在项目中统一管理各种配置,提高代码的复用性和可维护性。
controller 包
在 controller 包中,主要包含与 控制器 相关的类,用于处理 HTTP 请求并返回响应。以下是这些类的详细说明:
1. IndexController
功能 :处理首页相关的请求。 主要方法 :
- home() :
- 作用 :返回首页的 HTML 页面。
- queryArticlePageList(QueryIndexArticlePageListReqVO queryArticlePageListReqVO) :
- 作用 :获取首页文章的分页数据。 作用 :通过控制器类处理首页相关的请求,便于在项目中统一管理首页的展示逻辑。
2. ArticleController
功能 :处理文章相关的请求。 主要方法 :
- queryArticleDetail(QueryArticleDetailReqVO queryArticleDetailReqVO) :
- 作用 :获取文章的详情信息。 作用 :通过控制器类处理文章相关的请求,便于在项目中统一管理文章的展示逻辑。
3. ArchiveController
功能 :处理文章归档相关的请求。 主要方法 :
- queryArchive(QueryArchivePageListReqVO queryArchivePageListReqVO) :
- 作用 :获取文章归档列表。 作用 :通过控制器类处理文章归档相关的请求,便于在项目中统一管理文章归档的展示逻辑。
4. TagController
功能 :处理标签相关的请求。 主要方法 :
- queryTagList() :
- 作用 :获取所有标签数据。
- queryArticlePageList(QueryTagArticlePageListReqVO queryTagArticlePageListReqVO) :
- 作用 :获取所属标签的文章分页数据。 作用 :通过控制器类处理标签相关的请求,便于在项目中统一管理标签的展示逻辑。
5. CategoryController
功能 :处理分类相关的请求。 主要方法 :
- queryCategoryList() :
- 作用 :获取所有分类数据。
- queryArticlePageList(QueryCategoryArticlePageListReqVO queryCategoryArticlePageListReqVO) :
- 作用 :获取所属分类的文章分页数据。 作用 :通过控制器类处理分类相关的请求,便于在项目中统一管理分类的展示逻辑。
6. BlogSettingController
功能 :处理博客设置相关的请求。 主要方法 :
- queryBlogSettingDetail() :
- 作用 :获取博客的详情信息。 作用 :通过控制器类处理博客设置相关的请求,便于在项目中统一管理博客设置的展示逻辑。
总结
controller 包中的类主要用于处理 HTTP 请求并返回响应,例如首页、文章、归档、标签、分类、博客设置等。通过控制器类封装这些逻辑,便于在项目中统一管理各种请求的处理,提高代码的复用性和可维护性。
convert 包
在 convert 包中,主要包含与 数据转换 相关的类,用于将一种数据类型转换为另一种数据类型。以下是这些类的详细说明:
1. ArticleConvert
功能 :处理文章数据的转换。 主要方法 :
- convert(ArticleDO bean) :
- 作用 :将 ArticleDO 对象转换为 QueryIndexArticlePageItemRspVO 对象。
- 功能 :
- 将 ArticleDO 中的 createTime 字段格式化为指定日期格式。
- convert2Archive(ArticleDO bean) :
- 作用 :将 ArticleDO 对象转换为 QueryArchiveItemRspVO 对象。
- 功能 :
- 将 ArticleDO 中的 createTime 字段格式化为指定日期格式。
- 将 ArticleDO 中的 createTime 字段格式化为指定月份格式。
- formatDate(Date date) :
- 作用 :将日期格式化为指定格式。
- formatMonth(Date date) :
- 作用 :将日期格式化为指定月份格式。 作用 :通过转换类封装文章数据的转换逻辑,便于在项目中统一管理文章数据的展示格式。
2. BlogSettingConvert
功能 :处理博客设置数据的转换。 主要方法 :
- convert(BlogSettingDO bean) :
- 作用 :将 BlogSettingDO 对象转换为 QueryBlogSettingRspVO 对象。 作用 :通过转换类封装博客设置数据的转换逻辑,便于在项目中统一管理博客设置数据的展示格式。
总结
convert 包中的类主要用于将一种数据类型转换为另一种数据类型,例如文章数据、博客设置数据等。通过转换类封装这些逻辑,便于在项目中统一管理数据的展示格式,提高代码的复用性和可维护性。
dao 包
在 dao 包中,主要包含与 数据访问 相关的类,用于处理与数据库的交互操作。以下是这些类的详细说明:
1. ArticleDao
功能 :处理文章相关的数据库操作。 主要方法 :
- queryArticlePageList(long current, long size) :查询文章分页数据。
- selectArticleById(Long articleId) :根据文章 ID 查询文章详情。
- selectPreArticle(Long articleId) :查询上一篇文章。
- selectNextArticle(Long articleId) :查询下一篇文章。
- queryArticlePageListByArticleIds(Long current, Long size, List articleIds) :根据文章 ID 列表查询文章分页数据。 作用 :通过数据访问类封装文章相关的数据库操作,便于在业务逻辑中调用。
2. ArticleContentDao
功能 :处理文章内容相关的数据库操作。 主要方法 :
- selectArticleContentByArticleId(Long articleId) :根据文章 ID 查询文章内容。 作用 :通过数据访问类封装文章内容相关的数据库操作,便于在业务逻辑中调用。
3. ArticleCategoryRelDao
功能 :处理文章与分类关系相关的数据库操作。 主要方法 :
- selectByArticleIds(List articleIds) :根据文章 ID 列表查询文章与分类关系。
- selectByCategoryId(Long categoryId) :根据分类 ID 查询文章与分类关系。
- selectByArticleId(Long articleId) :根据文章 ID 查询文章与分类关系。 作用 :通过数据访问类封装文章与分类关系相关的数据库操作,便于在业务逻辑中调用。
4. ArticleTagRelDao
功能 :处理文章与标签关系相关的数据库操作。 主要方法 :
- selectByArticleIds(List articleIds) :根据文章 ID 列表查询文章与标签关系。
- selectByTagId(Long tagId) :根据标签 ID 查询文章与标签关系。
- selectByArticleId(Long articleId) :根据文章 ID 查询文章与标签关系。 作用 :通过数据访问类封装文章与标签关系相关的数据库操作,便于在业务逻辑中调用。
5. CategoryDao
功能 :处理分类相关的数据库操作。 主要方法 :
- selectAllCategory() :查询所有分类数据。
- selectByCategoryId(Long categoryId) :根据分类 ID 查询分类详情。 作用 :通过数据访问类封装分类相关的数据库操作,便于在业务逻辑中调用。
6. TagDao
功能 :处理标签相关的数据库操作。 主要方法 :
- selectAllTag() :查询所有标签数据。
- selectByTagIds(List tagIds) :根据标签 ID 列表查询标签数据。 作用 :通过数据访问类封装标签相关的数据库操作,便于在业务逻辑中调用。
总结
dao 包中的类主要用于处理与数据库的交互操作,例如文章、文章内容、文章与分类关系、文章与标签关系、分类、标签等。通过数据访问类封装这些逻辑,便于在业务逻辑中调用,提高代码的复用性和可维护性。
model 包
在 model 包中,主要包含与 数据模型 相关的类,用于定义请求和响应的数据结构。以下是这些类的详细说明:
1. Article
功能 :定义与文章相关的请求和响应数据结构。 主要类 :
- QueryArticleDetailReqVO :查询文章详情的请求对象。
- 属性 :
- articleId :文章 ID。
- 属性 :
- QueryArticleDetailRspVO :查询文章详情的响应对象。
- 属性 :
- title :文章标题。
- content :文章内容。
- categoryId :文章分类 ID。
- tags :文章标签列表。
- preArticle :上一篇文章。
- nextArticle :下一篇文章。
- 属性 :
- QueryIndexArticlePageListReqVO :查询首页文章分页数据的请求对象。
- 属性 :
- current :当前页码。
- size :每页大小。
- 属性 :
- QueryIndexArticlePageItemRspVO :查询首页文章分页数据的响应对象。
- 属性 :
- id :文章 ID。
- title :文章标题。
- createTime :创建时间。
- category :文章分类。
- tags :文章标签列表。 作用 :通过数据模型封装文章相关的请求和响应数据,便于在业务逻辑中处理文章的增删改查操作。
- 属性 :
2. Archive
功能 :定义与文章归档相关的请求和响应数据结构。 主要类 :
- QueryArchivePageListReqVO :查询文章归档分页数据的请求对象。
- 属性 :
- current :当前页码。
- size :每页大小。
- 属性 :
- QueryArchivePageListRspVO :查询文章归档分页数据的响应对象。
- 属性 :
- month :归档月份。
- articles :文章列表。
- 属性 :
- QueryArchiveItemRspVO :查询文章归档项的响应对象。
- 属性 :
- id :文章 ID。
- title :文章标题。
- createMonth :创建月份。
- createTime :创建时间。 作用 :通过数据模型封装文章归档相关的请求和响应数据,便于在业务逻辑中处理文章归档的展示逻辑。
- 属性 :
3. Category
功能 :定义与分类相关的请求和响应数据结构。 主要类 :
- QueryCategoryListItemRspVO :查询分类列表项的响应对象。
- 属性 :
- id :分类 ID。
- name :分类名称。 作用 :通过数据模型封装分类相关的请求和响应数据,便于在业务逻辑中处理分类的展示逻辑。
- 属性 :
4. Tag
功能 :定义与标签相关的请求和响应数据结构。 主要类 :
- QueryTagListItemRspVO :查询标签列表项的响应对象。
- 属性 :
- id :标签 ID。
- name :标签名称。 作用 :通过数据模型封装标签相关的请求和响应数据,便于在业务逻辑中处理标签的展示逻辑。
- 属性 :
5. BlogSetting
功能 :定义与博客设置相关的请求和响应数据结构。 主要类 :
- QueryBlogSettingRspVO :查询博客设置详情的响应对象。
- 属性 :
- blogName :博客名称。
- author :博客作者。
- avatar :作者头像。
- introduction :博客简介。
- githubHome :GitHub 主页。
- csdnHome :CSDN 主页。
- giteeHome :Gitee 主页。
- zhihuHome :知乎主页。 作用 :通过数据模型封装博客设置相关的请求和响应数据,便于在业务逻辑中处理博客设置的展示逻辑。
- 属性 :
总结
model 包中的类主要用于定义请求和响应的数据结构,例如文章、文章归档、分类、标签、博客设置等。通过数据模型封装这些数据结构,便于在业务逻辑中处理数据的传递和展示,提高代码的复用性和可维护性。
service 包
在 service 包中,主要包含与 业务逻辑 相关的类,用于处理具体的业务逻辑。以下是这些类的详细说明:
1. ArticleService
功能 :处理文章相关的业务逻辑。 主要方法 :
- queryIndexArticlePageList(QueryIndexArticlePageListReqVO queryIndexArticlePageListReqVO) :查询首页文章分页数据。
- queryCategoryArticlePageList(QueryCategoryArticlePageListReqVO queryCategoryArticlePageListReqVO) :查询分类文章分页数据。
- queryArticleDetail(QueryArticleDetailReqVO queryArticleDetailReqVO) :查询文章详情。
- queryTagArticlePageList(QueryTagArticlePageListReqVO queryTagArticlePageListReqVO) :查询标签文章分页数据。 作用 :通过业务逻辑类封装文章相关的业务逻辑,便于在控制器中调用。
2. ArchiveService
功能 :处理文章归档相关的业务逻辑。 主要方法 :
- queryArchive(QueryArchivePageListReqVO queryArchivePageListReqVO) :查询文章归档列表。 作用 :通过业务逻辑类封装文章归档相关的业务逻辑,便于在控制器中调用。
3. BlogSettingService
功能 :处理博客设置相关的业务逻辑。 主要方法 :
- queryBlogSettingDetail() :查询博客设置详情。 作用 :通过业务逻辑类封装博客设置相关的业务逻辑,便于在控制器中调用。
4. CategoryService
功能 :处理分类相关的业务逻辑。 主要方法 :
- queryCategoryList() :查询分类列表。 作用 :通过业务逻辑类封装分类相关的业务逻辑,便于在控制器中调用。
5. TagService
功能 :处理标签相关的业务逻辑。 主要方法 :
- queryTagList() :查询标签列表。 作用 :通过业务逻辑类封装标签相关的业务逻辑,便于在控制器中调用。
6. IndexService
功能 :处理首页相关的业务逻辑。 主要方法 :
- home() :返回首页的 HTML 页面。 作用 :通过业务逻辑类封装首页相关的业务逻辑,便于在控制器中调用。
总结
service 包中的类主要用于处理具体的业务逻辑,例如文章、文章归档、博客设置、分类、标签、首页等。通过业务逻辑类封装这些逻辑,便于在控制器中调用,提高代码的复用性和可维护性。
utils 包
在 utils 包中,主要包含与 工具类 相关的类,用于提供一些通用的工具方法。以下是这些类的详细说明:
1. AgentRegionUtils
功能 :处理用户代理和地理区域相关的工具方法。 主要方法 :
- getRegionByIp(String ip) :根据 IP 地址获取地理区域信息。
- getUserAgentInfo(HttpServletRequest request) :从 HTTP 请求中获取用户代理信息。 作用 :通过工具类封装用户代理和地理区域相关的工具方法,便于在业务逻辑中调用。
2. ResultUtil
功能 :处理结果封装相关的工具方法。 主要方法 :
- success(Object data) :封装成功的响应结果。
- fail(String message) :封装失败的响应结果。 作用 :通过工具类封装结果相关的工具方法,便于在业务逻辑中统一处理响应结果。
3. MarkdownUtil
功能 :处理 Markdown 格式转换相关的工具方法。 主要方法 :
- toHtml(String markdown) :将 Markdown 格式的文本转换为 HTML。
- toMarkdown(String html) :将 HTML 格式的文本转换为 Markdown。 作用 :通过工具类封装 Markdown 格式转换相关的工具方法,便于在业务逻辑中调用。
4. MinioUtil
功能 :处理 MinIO 文件存储相关的工具方法。 主要方法 :
- uploadFile(String bucketName, String objectName, InputStream inputStream) :上传文件到 MinIO。
- downloadFile(String bucketName, String objectName) :从 MinIO 下载文件。
- deleteFile(String bucketName, String objectName) :从 MinIO 删除文件。 作用 :通过工具类封装 MinIO 文件存储相关的工具方法,便于在业务逻辑中调用。
总结
utils 包中的类主要用于提供一些通用的工具方法,例如用户代理和地理区域、结果封装、Markdown 格式转换、MinIO 文件存储等。通过工具类封装这些方法,便于在业务逻辑中调用,提高代码的复用性和可维护性。