Javaバックエンドフレームワークと共通の依存関係

公開日: 2026-07-27 09:43 更新日: 2026-08-02 00:00 816文字 5 min read ... ページビュー

この記事では、Javaバックエンド開発で一般的に使用されるフレームワークとテクノロジースタックの概要を説明し、コアフレームワークとしてSpring Bootを強調し、プロジェクト構成のためのMavenを組み合わせます。データベースアクセスとデータ操作の標準化された構成は、My SQLデータベース、Druid接続プール、およびMyBatis-Plus持続性層フレームワークをsrc/main/resources/application.ymlファイルで構成することで実現されます。

Javaバックエンドフレームワークと共通の依存関係

テクノロジースタックの概要

技術分野関連技術主な役割
Javaの基本環境Java 17よりJavaバックエンドプログラムのコンパイルおよび実行環境を提供する
コア開発フレームワークSpring FrameworkについてIoC、DI、AOP、トランザクション管理などの基礎機能を提供
アプリケーション開発フレームワークSpring BootよりSpringアプリケーションのプロビジョニング、依存関係管理、起動、デプロイを簡素化
Web 开発Spring MVCとはHTTPリクエスト処理、パラメータバインディング、コントローラ呼び出し、レスポンスデータのリターンを担当
データの永続性マイバティスJavaオブジェクトとSQL 文間のマッピングを担当
持続性層の強化ミバティス-PlusMyBatisベースの汎用 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

気に入ったならばコメントを残してくださいね~

... ページビュー
© 2026 跨越星轨的客 @Hoshiumi
Powered by theme astro-koharu · Inspired by Shoka