BLOG
ブログ

2019.07.01

[Spring Boot] 基本的なパッケージ構成

Spring Boot を使ってWebシステムを作成するときに、私は以下のようなパッケージの構成で進める事が多いです。

ただし、こうしなければいけないという正解はないと思います。

 

■パッケージ構成

com.sample
app (アプリ名)
common
base
dialect
security
processor
utils
controllers
  forms
domain
  models
  custom
  repositories
  services
  validations
  exceptions

 

■ common

システムの共通的なクラスを格納するパッケージ

 

■ common/base

各種クラスのベースクラスなどを設置する。

 

■ common/dialect

テンプレートエンジンであるThymeleafの独自タグ

 

■ common/security

認証関連で必要となるクラスをまとめておく

 

■ common/processor

 

■ common/utils

各種ユーティリティ関連クラス

 

■ controllers

各画面の制御で使用するクラスを格納するパッケージ

各画面のControllerを設置する。

 

■ controllers/forms

各画面の formオブジェクトを設置する。

 

■ domain

ビジネスロジック等のクラスをまとめるパッケージ

 

■ domain/models

単一テーブルのEntityなどを管理するクラスを設置

 

■ domain/models/custom

SELECT分などで複数のテーブル結合を行った時のEntityを管理するクラスを設置

 

■ domain/repositories

@autowiredするリポジトリを格納する

 

■ domain/services

各種ビジネスロジックを管理するクラスを格納

 

■ domains/validations

各種入力バリデーションルールを格納する

 

■ domains/exceptions

業務処理中の例外用 Exceptionを定義し格納する