- @MapperScanアノテーションを利用するには、pom.xmlに以下のような依存関係を追加する必要があります。
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>2.0.0</version>
</dependency>
- @Mapperアノテーションを使用する場合も同様に、MyBatisの依存関係が必要です。
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.5</version>
</dependency>
-
MyBatisのXML構文とアノテーション方式(select/updateなど)の比較では、単純なSQLはコード内に直接記述しやすいですが、複雑なクエリはXML形式の方が保守性が高くなります。アノテーション方式では変更ごとに再デプロイが必要となるため、XMLの設定型アプローチが推奨されます。
-
Error creating bean with name 'loginService'エラーは、以下の原因が考えられます:
- ファイル名・パッケージ名の大小文字ミス
- 名称の一貫性が保てていない
- ServiceImplに@Serviceアノテーションが付与されていない
- mapper.xml内のメソッドIDが重複している
/errorエンドポイントのマッピングがない場合の対処:
- 404エラー:Thymeleafの設定確認
- 500エラー:HTMLリソースファイルの存在確認 Spring Boot 2以降はJSPではなくThymeleafがデフォルトです。詳細: https://www.imooc.com/article/20304
- Javaのゲッター・セッターの命名規約については以下のリファレンスを参照してください:
- https://blog.csdn.net/zhangzeyuaaa/article/details/46649061
- https://rongmayisheng.com/?p=1329 規約に違反するとプロパティが認識されません。
-
Error resolving template [fragments/header]エラーの解決方法については:https://blog.csdn.net/liyanlei5858/article/details/80183409 -
Thymeleafのテンプレートパスに関する注意点:
- デフォルトパス:
src/main/resource/templates - 静的ファイルパス:
src/main/resource/static - 設定変更例:
spring.thymeleaf.prefix=classpath:/templates/
- フラグメントの呼び出し方法:
<head th:replace="/include/header::head"></head>
上記はtemplates/include/header.html内のheadフラグメントを読み込みます。
- セッション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;
}
// 通常のセッションチェック処理
}