🌟
Re:ゼロから始めるSpring Boot実践#1 WebBlog開発#0 開発準備
要件(必要な機能)
まずウェブブログに必要な機能について考えてまとめる。
- ユーザ
1.1 新規登録
1.2 ログイン
1.3 ユーザ情報取得
1.4ユーザ情報更新
1.5 アバター画像変更
1.6 パスワード変更 - 記事カテゴリ
2.1 記事のカテゴリ一覧取得
2.2 記事のカテゴリ追加
2.3 記事のカテゴリ更新
2.4 記事のカテゴリ詳細取得
2.5 記事のカテゴリ削除 - 記事管理
3.1 記事新規追加
3.2 記事更新
3.3 記事の詳細情報取得
3.4 記事の削除
3.5 記事一覧取得
アーキテクチャ
SPA(Single Page Application) アーキテクチャを使う。
フロント:Vue ※後日キャッチアップする予定。
パックエンド:Spring Boot + MySQL
今回の目的はSpring Bootの復習・再学習なので、バックエンドの開発に専念する。
開発環境のセットアップ
開発環境のセットアップは下図通り
- データベーステーブルを準備
2.Spring Bootプロジェクトを作成し、必要な依存関係(Web、MyBatis、MySQLドライバ)を導入
- (1).Intellij ideで下図通りにプロジェクトを作成
/src/main/resouce/application.ymlを作成
/src/main/resouceディレクターを作成し、その配下にapplication.ymlファイルを作成する。
-
(2). pom.xmlファイルに依存性パッケージを追加
- a. 親POM(Project Object Model)の設定 ※POMはMavenのプロジェクト設定ファイルのこと。
下記をpom.xmlファイルに追記する。Mavenでは、pom.xmlファイルで親子関係を作ることができる。子プロジェクトは、親プロジェクトから、ビルド設定や依存ライブラリのバージョン管理などを「引き継ぐ」ことができる。
つまり、Spring Bootプロジェクトのビルド・依存管理を簡単にするために親プロジェクトを設定する。
<!--親POMの設定--> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>3.4.5</version> </parent>
- b. dependencyを追加
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>3.0.3</version> </dependency> <dependency> <groupId>com.mysql</groupId> <artifactId>mysql-connector-j</artifactId> </dependency> </dependencies>
- a. 親POM(Project Object Model)の設定 ※POMはMavenのプロジェクト設定ファイルのこと。
-
(3). 設定ファイルapplication.ymlにMyBatisの設定情報を追加
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/rezerosb_webblog
username: XXXX
password: XXXX
- (4). パッケージ構成を作成し、エンティティクラスを準備
パッケージ | 役割 |
---|---|
controller | クライアント(ブラウザやアプリ)からのリクエストを受け取る担当。APIの入り口になる。例えば「HTTPリクエストを受ける」「レスポンスを返す」など。 |
mapper | データベースとやり取りする担当。SQLを書くか、MyBatisなどでDB操作をする。 |
pojo | "Plain Old Java Object" の略。主にデータの入れ物(エンティティ、DTOなど)を定義する。例えば、データベースの1行を表現するクラスなど。 |
service | ビジネスロジック担当。「リクエストされた操作の本体」をここに書く。たとえば、商品を購入する、ユーザーを登録する、といった具体的な処理。 |
service.impl | serviceのインタフェースを実装するクラスを置く。たとえばUserServiceインタフェースの具体的な中身(UserServiceImplなど)を書く場所。 |
utils | 共通の便利機能をまとめる場所。たとえば、日付変換・文字列操作・暗号化処理など、いろいろな場所から使い回す小さい処理群。 |
最後に、スタータークラスを設定する。
スタータークラス名はプロジェクト名+Applicationという名にするのが一般的。
さらにSpring Bootのエントリーポイント(アプリの起動クラス)を作成。
@SpringBootApplication
public class ReZeroSBPracticeWebBlogApplication
{
public static void main( String[] args )
{
SpringApplication.run(ReZeroSBPracticeWebBlogApplication.class, args);
}
}
環境チェック
スタータークラスを実行し、Tomcatは問題なく起動したのを確認できた。
開発環境をセットアップできたので、これからAPIを開発していく。頑張るぞ。
Discussion