Skip to content

dende-h/novelSite

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 

Repository files navigation

JavaとSpringbootの学習のためのサンプルCRUDアプリケーションです。

  • アーキテクチャ構成は下記のような構成になります。 Architecture drawio

  • ER図
    NovelSiteEntity drawio

機能面:

  1. ユーザー認証および認可:

    • このアプリケーションは、ユーザーログインおよびサインアップ機能を提供します。
    • ユーザーは、自分の資格情報を使用してサインアップおよびログインできます。
    • アプリケーションは、認証および認可のためにSpring Securityを使用します。
  2. 小説の作成:

    • ユーザーは小説のドラフトを書き、保存できます。
    • アプリケーションは、小説のドラフトを書き、保存するためのインターフェースを提供します。

使用技術:

  1. Spring Boot: アプリケーションはSpring Bootを使用して構築されています。
  2. Thymeleaf: ビューのレンダリングのためのテンプレートエンジンとして使用されます。
  3. MyBatis: MySQLデータベースとの対話のためのORMフレームワークとして使用されます。
  4. MySQL: アプリケーションは、application.propertiesファイルに示されているように、データの永続化のためにMySQLデータベースを使用します。
  5. Spring Security: アプリケーションのセキュリティ、ログインの処理、および認可のために使用されます。
  6. Maven: プロジェクトの依存関係とビルドライフサイクルの管理のために使用されます。

各レイヤーのロジック:

  1. コントローラーレイヤー:

    • UserLoginControllerはログインページのレンダリングを処理します。
    • UserSignUpControllerはユーザーのサインアップを処理し、サインアップフォームの表示、入力チェック、およびサインアッププロセスの完了を含みます。
    • NovelContollerは小説の執筆ページのレンダリングと小説のドラフトの保存を処理します。
  2. サービスレイヤー:

    • UserSignUpServiceは新しいユーザーの作成を処理し、保存前にパスワードを暗号化します。
    • UserDetailsServiceImplは認証のためのユーザー詳細をロードします。
    • NovelServiceは小説のドラフトの保存を処理します。
  3. ORマッパー:

    • NovelMapperLoginMapper、およびUserSignUpMapperは、MyBatisのアノテーションを使用してデータベースと対話するためのメソッドを定義するインターフェースです。
    • NovelMapperには、draft_novelsテーブルに小説のドラフトを挿入するためのsaveメソッドがあります。
    • UserSignUpMapperには、ユーザー詳細とロールをそれぞれのテーブルに挿入するためのcreateおよびcreateRoleメソッドがあります。
    • LoginMapperには、認証のためのユーザー詳細を取得するidentifyUserメソッドがあります。

設定:

  • application.propertiesファイルには、MySQLデータベース接続の設定が含まれており、URL、ユーザー名、およびパスワードを含みます。
  • SecurityConfigクラスには、Spring Securityの設定が含まれており、認証が必要なURLパターンとログインプロセスの設定を含みます。

コードスニペットの例:

// NovelContoller.java
@PostMapping("/novel/save/draft")
public String saveDraft(@ModelAttribute NovelRequest draft, Model model) {
    novelService.save(draft);
    return "novel/new_novel";
}
// NovelService.java
public void save(NovelRequest draft) {
    novelMapper.save(draft);
}
// NovelMapper.java
@Insert("INSERT INTO draft_novels(genre,novel_length,title,chapter,section,clause,text,user_id)"
        + "VALUES (#{genre},#{novelLength},#{title},#{chapter},#{section},#{clause},#{text},#{userId})")
NovelEntity save(NovelRequest draft);

このコードスニペットは、コントローラーレイヤーから始まり、サービスレイヤーを経由し、最終的にORマッパーを使用してMySQLデータベースに保存するロジックを表しています。


About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published