Spring Boot
SpringBoot3より発生するエラー SpringBoot2系からSpringBoot3にバージョンアップした際に発生する代表的なエラーになりますが、「シンボル'servlet'を解決できません」というエラーが発生します。 エラー内容はキャプチャの通り。 SpringBoot3よりJava EEか…
Java13以降発生するSpringBootのエラー SpringBootを使用していてJavaのバージョンを17に上げた時、以下のエラーが発生しました。 OpenJDK 64-Bit Server VM warning: Options -Xverify:none and -noverify were deprecated in JDK 13 and will likely be re…
Spring BootでMySQLへの接続方法 Spring BootでOracle DBへの接続方法 Spring BootでMySQLへの接続方法 MySQLへ接続する場合は以下のようになります。 spring: datasource: url: jdbc:mysql://接続先(IPやドメイン)/データベース名 username: DBのユーザ名 p…
通常のThymeleafの変更反映 application.ymlもしくはapplication.propertiesにprefixの設定を追加 application.ymlの場合 application.propertiesの場合 通常のThymeleafの変更反映 SpringBootでテンプレートエンジンとして使用されるThymeleafですが、デフ…
Spring Data JPAについて SQLを記載したいとき 方法1: EntityManagerを使用 方法2: Repositoryで@Queryアノテーションを使用したメソッドを実装 Spring Data JPAについて みなさんSpring Bootを使用する場合、Spring Data JPAを使用してSQLを記載せずにDBを…
Spring Bootの定義ファイル Javaのソースで値を取得する方法 どんな時に使用する? Spring Bootの定義ファイル Spring Bootでは、プロパティ値を設定する定義ファイルとして、application.ymlやapplication.propertiesがありますね。 設定する内容としては、…
コンパイル言語の宿命 Initialized JPA EntityManagerFactory for persistence unit ‘default’ 他の試行錯誤 コンパイル言語の宿命 Spring Bootに限らずJava等コンパイル言語の宿命ですが、ちょっとした変更でもいちいちコンパイルが必要になりますよね。 そ…
CORSとは? CORSの対策 Spring Bootでの対策 方法1 @CrossOriginアノテーション 方法2 Spring SecurityでCORSの設定をする方法 まずはSpring Securityのインストール WebSecurityConfigurerAdapterにCORSの設定 CORSとは? 通常Webページでは、同一生成元ポ…
SpringBootのFormで使われるList SpringBootのFormで使われるList SpringBootのFormバリデーションで独自バリデーションを作成し、 適用している人にとってはよく見かけるListですが、これの使い道は知ってますか?例) public @interface List { TestValida…
Entityの@ManyToOne まずはEntityについて Cascadeはデータベース操作に関連 Entityの@ManyToOne あるEntity(エンティティ)に対してフィールドを設定した時に、 Entityとフィールドが多対一の関係にある時に使用します。 このあたりの説明は長くなるので、…
SpringBoot + EC2の構成で、メール送信エラーが頻発 さくらサーバのサポートセンターに問い合わせ 本当の原因はEC2の送信制限 ちなみに… SpringBoot + EC2の構成で、メール送信エラーが頻発 SpringBoot + EC2のアプリケーションでメルマガ機能を作成していま…
Spring Bootのバリデーション Bean ValidationとJPA定義 Spring Data JPA (Hibernate)使用時のJPA制約 暫定対応 Spring Bootのバリデーション Spring Bootでは、フォームやエンティティクラスにおいて、アノテーションによる入力値チェックが可能なことはご…
開発環境でのSpring Bootの実行 mvnコマンドで実行 開発環境でのSpring Bootの実行 でも記載している通り、Spring Bootは開発環境だとIDEなどで簡単に設定することが可能です。 ちょっとの設定でいつでも停止や実行ができるので楽ですよね。 ブレークポイン…
画像アップロード時には最大ファイルサイズが存在する Tomcat + Nginx + Spring Bootの場合のエラー 各種設定変更 Spring Bootの設定 Tomcatの設定 Nginxの設定 まとめ 画像アップロード時には最大ファイルサイズが存在する ファイルアップでは、サーバにフ…
RepositoryにSQLを直接記入 パラメータ以外でコロンを使いたい 解決方法はエスケープ RepositoryにSQLを直接記入 Spring Data JPAでORマッパーでは書けないようなSQLを実行したい場合、Repositoryに直接構文を書きますよね。 そんな時、パラメータで変数の値…
Spring Data JPAでのOrderBy whereを指定しない場合、OrderByの前にByが必要 Spring Data JPAでのOrderBy Spring Data JPAでエンティティクラスにfindして複数のレコードを取得する場合、OrderByをつければ並び順を変更できることはご存知でしょうか? findB…
アプリケーション開発でのSQLログ application.ymlでの設定 アプリケーション開発でのSQLログ アプリケーションの開発をしている時、実行されたSQLのログを参照したい場面がありますよね。 想定外のSQLが実行されていないか確認したり、ボトルネックとなって…
Entityオブジェクトのクローン クローンをしたいEntityクラスにCloneableインターフェースを実装 クローンメソッドの呼び出し Entityオブジェクトのクローン SpringBootで機能の実装をしている中で、Entityオブジェクトのクローンを作りたくなることはありま…
ローカルjarファイルはどんな時に使う? 設定方法 ローカルjarファイルはどんな時に使う? 普段SpringBootで外部ライブラリを使う時、Mavenの設定ファイルであるpom.xmlを使う人が多いのではないでしょうか。Mavenのリポジトリにあり、誰でもインストールし…
絵文字を保存したい MySQLの文字コードを変更 Spring Bootでデータベース接続時の文字コードを変更 まとめ 絵文字を保存したい スマホが普及してから絵文字を文中に入れるのはもはや普通のことですよね。 掲示板などでも絵文字を入力できるものは増えていま…
NULLをPOSTした時点でStringとして認識されてしまう 数値(Integer)型の項目で空の可能性がある場合 AjaxでPOSTする時の例 NULLをPOSTした時点でStringとして認識されてしまう Spring Bootにおけるフォームから値をPOSTする際の挙動になりますが、Integer型の…
開発環境でもSSL対応をする理由 開発環境でのSSL対応方法 証明書の作成 SpringBootで証明書の設定 端末で証明書を信頼 本番環境のSSL対応は? 開発環境でもSSL対応をする理由 最近のwebアプリケーションでは、SSL対応させることが当たり前になっていますよね…
Spring Bootでのトランザクション設定方法 メソッドがpublicになっているか @RequestMappingをつけているコントローラ自体にアノテーションを付与していないか try~catchで囲まれているか 更新処理をするメソッドが直接呼ばれているか 継承されたメソッドの…
Javaなどソースの変更をいちいちコンパイルをして確認する場合、 毎回コンパイルを手動でするのは面倒ですよね。 (慣れている人は何も感じないかもしれませんがw)Spring Bootでは自動でコンパイルをしてくれるツールがあるので、 少しは開発効率を上げるこ…
Intellijなど、IDEで開発する場合はJDKをインストールして使うので問題ないと思いますが、 本番環境にアップした場合などにJavaのバージョンを指定しておかないと開発環境で開発した通りに動作してくれないなどの問題が発生してしまいます。変更箇所はpom.xm…
Javaの一部JDKのバージョンでは、 Spring Bootの起動時に以下のエラー(警告)が発生することがあります。 /Library/Java/JavaVirtualMachines/jdk1.8.0_141.jdk/Contents/Home/bin/java ... objc[3929]: Class JavaLaunchHelper is implemented in both /Libr…
ti-tomo-knowledge.hatenablog.comの記事にも書きましたが、Thymeleafは文法チェックが厳しく、通常のHTMLでは問題ないはずの書き方をしてもエラー扱いされてしまいコンパイルが通りません。 特に閉じタグに関してはmetaタグやinputタグなど、普段閉じタグを…
Spring BootのGETリクエストでパラメータを設定した時、 パラメータを取得するには@PathVariableを使います。例えば以下のような@RequestMappingがあった場合、idは必須になります。 @RequestMapping(value="top/{id}", method = RequestMethod.GET) String …
ti-tomo-knowledge.hatenablog.com ti-tomo-knowledge.hatenablog.com上記2つのような流れで、BeanValidationにおける基本的なバリデーションの流れを見ていきましたが、 これらはあくまでBeanValidationやHibernateで事前に用意されたものです。 実際にサー…
まずはti-tomo-knowledge.hatenablog.comを参考にしてmessage.propertiesを使って多言語化する流れを見てほしいです。 これを使えばバリデーション時のエラーメッセージの対応もすぐできます。Bean Validation のアノテーションは、通常messageというパラメ…