Javaバックエンドフレームワークと共通の依存関係
テクノロジースタックの概要
| 技術分野 | 関連技術 | 主な役割 |
|---|---|---|
| Javaの基本環境 | Java 17より | Javaバックエンドプログラムのコンパイルおよび実行環境を提供する |
| コア開発フレームワーク | Spring Frameworkについて | IoC、DI、AOP、トランザクション管理などの基礎機能を提供 |
| アプリケーション開発フレームワーク | Spring Bootより | Springアプリケーションのプロビジョニング、依存関係管理、起動、デプロイを簡素化 |
| Web 开発 | Spring MVCとは | HTTPリクエスト処理、パラメータバインディング、コントローラ呼び出し、レスポンスデータのリターンを担当 |
| データの永続性 | マイバティス | JavaオブジェクトとSQL 文間のマッピングを担当 |
| 持続性層の強化 | ミバティス-Plus | MyBatisベースの汎用 CRUD、条件コンストラクタ、ページングなどの機能を提供 |
| リレーショナル·データベース | My SQL | ビジネスデータの保存と管理に使用 |
| データベース接続プール | Druidさん | データベース接続を管理し、接続プールやSQLなどのを提供 |
| セキュリティ認証 | Spring Securityより | ユーザー認証、権限制御、リクエストセキュリティ管理の実装 |
| アイデンティティトークン | J、JJ | トークンベースのステートレス認証の実装 |
| インタフェースのドキュメント | OpenAPI、Knife4j | インターフェイス·ドキュメントの自動生成、インターフェイスの表示およびオンライン·デバッグ機能の提供 |
| JSONの処理 | Jacksonジャクソン | JavaオブジェクトとJSONデータ間の変換を完了する |
| ログ管理 | SLF4J、Logback、Log4j2 | プログラムの実行状態、デバッグ情報、および例外情報の記録 |
| コードの簡略化 | ロンボク | 注釈によるGetter、Setter、コンストラクタなどの重複コードの削減 |
| インターフェース設計 | RESTfulとは | HTTPメソッドおよびリソースパス仕様を使用したバックエンドインタフェースの設計 |
| プロジェクト構築プロジェクト | Mavenの意味 | プロジェクトの依存関係を管理し、コンパイル、テスト、パッケージングなどのビルドタスクを完了する |
| 開発支援の支援 | Spring Boot 開発ツール | 自動再起動などの開発段階の支援機能を提供 |
| テストサポート。 | スプリングブートテスト | 単体テストと統合テストに必要な関連コンポーネントの提供 |
Spring Bootプロジェクトの概要
Mavenプロジェクトの構成
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.3.4</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.hyxy</groupId>
<artifactId>springboot-demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>springboot-demo</name>
<description>springboot-demo</description>
<url/>
<licenses>
<license/>
</licenses>
<developers>
<developer/>
</developers>
<scm>
<connection/>
<developerConnection/>
<tag/>
<url/>
</scm>
<properties>
<java.version>17</java.version>
</properties>
<dependencies>
<!-- Spring MVC、REST Controller、内置 Tomcat -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- 配置提示 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
<!-- 热部署 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<!-- SpringBoot3 适配核心依赖 -->
<!-- MyBatisPlus 适配SpringBoot3 专属依赖 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-spring-boot3-starter</artifactId>
<version>3.5.6</version>
</dependency>
<!-- MySQL 驱动 -->
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-3-starter</artifactId>
<version>1.2.23</version>
</dependency>
<!-- lombok 简化实体类 -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<!-- SpringBoot3 测试依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId>
<version>4.4.0</version>
</dependency>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt-api</artifactId>
<version>0.12.5</version>
</dependency>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt-impl</artifactId>
<version>0.12.5</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt-jackson</artifactId>
<version>0.12.5</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
データベースの構成
My SQL、Druid、MyBatis-Plusをsrc/main/resources/application.ymlで構成します。
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
druid:
url: jdbc:mysql://localhost:33066/java2601?serverTimezone=UTC&characterEncoding=utf8
username: root
password: 123456
driver-class-name: com.mysql.cj.jdbc.Driver
max-active: 10
min-idle: 3
initial-size: 2
max-wait: 10000
mybatis-plus:
# xml映射文件的位置
mapper-locations: classpath*:/mapper/**/*.xml
# 实体类别名 包
type-aliases-package: com.hyxy.mp.entity
configuration:
# 开启下划线转驼峰自动映射
map-underscore-to-camel-case: true
# 开启SQL日志打印
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
global-config:
db-config:
# 主键自增策略
id-type: auto
# 数据库表前缀(可选)
# table-pre x: tb_
# 逻辑删除全局配置
# logic-delete-field: deleteFlag
# logic-delete-value: 1 # 已删除
# logic-not-delete-value: 0 # 未删除
# Knife4j 核心配置(SpringBoot3 通用)
knife4j:
# 开启增强模式(解锁全部高级功能,必开)
enable: true
# 生产环境开关(true=生产关闭文档,false=开发开启)
production: false
# UI个性化配置
setting:
# 开启暗黑模式
enable-dark-mode: true
# 开启接口搜索
enable-search: true
# 显示参数长度
enable-param-length: true
# 开启接口显示排序
enable-api-sort: true
jwt:
secret: l06rIAxOHwGDnjGUvN5XhVIyW4PGQzy4Eff+GFwZTA=
expire-ms: 3600000
気に入ったならばコメントを残してくださいね~