Java 学習ノート 第1回

  1. @MapperScanアノテーションを利用するには、pom.xmlに以下のような依存関係を追加する必要があります。
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis-spring</artifactId>
    <version>2.0.0</version>
</dependency>
  1. @Mapperアノテーションを使用する場合も同様に、MyBatisの依存関係が必要です。
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.4.5</version>
</dependency>
  1. MyBatisのXML構文とアノテーション方式(select/updateなど)の比較では、単純なSQLはコード内に直接記述しやすいですが、複雑なクエリはXML形式の方が保守性が高くなります。アノテーション方式では変更ごとに再デプロイが必要となるため、XMLの設定型アプローチが推奨されます。

  2. Error creating bean with name 'loginService' エラーは、以下の原因が考えられます:

  • ファイル名・パッケージ名の大小文字ミス
  • 名称の一貫性が保てていない
  • ServiceImplに@Serviceアノテーションが付与されていない
  • mapper.xml内のメソッドIDが重複している
  1. /errorエンドポイントのマッピングがない場合の対処:
  • 404エラー:Thymeleafの設定確認
  • 500エラー:HTMLリソースファイルの存在確認 Spring Boot 2以降はJSPではなくThymeleafがデフォルトです。詳細: https://www.imooc.com/article/20304
  1. Javaのゲッター・セッターの命名規約については以下のリファレンスを参照してください:
  1. Error resolving template [fragments/header] エラーの解決方法については:https://blog.csdn.net/liyanlei5858/article/details/80183409

  2. Thymeleafのテンプレートパスに関する注意点:

  • デフォルトパス:src/main/resource/templates
  • 静的ファイルパス:src/main/resource/static
  • 設定変更例:spring.thymeleaf.prefix=classpath:/templates/
  1. フラグメントの呼び出し方法:
<head th:replace="/include/header::head"></head>

上記はtemplates/include/header.html内のheadフラグメントを読み込みます。

  1. セッションIDがURLに含まれる問題や、CSSファイルが302でリダイレクトされる原因:
  • 自作のフィルタがリソースファイルを除外してない
  • 解決策例:
/**
 * <p>
 * MVCリソースハンドラの判定処理
 * </p>
 *
 * @param handler - 検証対象のハンドラ
 * @return - リソースハンドラかどうかの真偽値
 */
private boolean isResourceHandler(Object handler) {
    return handler instanceof ResourceHttpRequestHandler;
}

@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
    if (isResourceHandler(handler)) {
        return true;
    }
    // 通常のセッションチェック処理
}

タグ: MyBatis SpringBoot Thymeleaf Annotations Java

6月1日 22:22 投稿