11
票
承認済み
Webサービスにサーバサイド言語を複数使うのはなぜですか?
おことわり:私はこの回答の最初の投稿時点においてクックパッド株式会社で働いています。ただしあくまでいち開発者に過ぎず、この回答も個人の見解として投稿しています。この回答は会社の意見ではありません。
まず、クックパッドに限らない一般的な話をします。
ひとつのサービスを開発・運用するときに、そのサービスを構成するサーバー側のアプリケーションが複数になることがあります。典型的な例としてマイクロサービス・...
2
票
承認済み
メッセージソースに「_ja」を含めると読めない
Locale.JAPANで対応するプロパティは
messages_ja_JP.properties
となります。
Locale.JAPANESE は
messages_ja.properties
です。
なので、今のファイル名のまま使うためにはJAPANESE の方を使ってください。
また、_ja を省略するとデフォルトとして使われるため、取得可能になったはずです。
追記
...
2
票
承認済み
Spring-bootでサンプル通りに作ったがToStringBuilderなどでエラーが発生する
2については解決しているようなので、1について回答します。1のエラーの原因は、
import org.apache.commons.lang3.builder.ToStringBuilder;
とすべき行で、
import org.junit.platform.commons.util.ToStringBuilder;
としているからです。つまり、Apache Commons ...
2
票
承認済み
Kotlinを使った開発でspringが使用する最大メモリサイズについて
ここで疑問に思ったのが、Kotlinを使った開発でspringが使用する最大メモリサイズも上記の規定に従うのでしょうか?
Spring Boot(Java)を起動する際にJVMオプション-Xmx(Javaのヒープサイズの最大値を指定するオプション)を指定していなければ、参照されたページにもあるようにマシンの物理メモリなどによって最大ヒープサイズが決まります。
...
2
票
承認済み
Spring & Thymeleaf の検証に関して
Method Arguments - 1.3.3. Handler Methods - Spring MVCの表の一番最後の説明が該当します。
it is a resolved as a @RequestParam. Otherwise, it is resolved as a @ModelAttribute.
今回の場合はリクエストパラメータでもないので @ModelAttribute です。...
2
票
承認済み
Spring Boot で作ったプロジェクトのデフォルトのclasspathはどこですか?
実行時に必要なクラスパスは実行時に指定するもので、ビルド時に指定するものではありません。
質問文に記載されている2つのリンク先は、実行時に指定することになるクラスパスに配置するファイル(を包含するディレクトリ)の指定についての説明です。
後者の"実はsrc/main/resourcesディレクトリはMavenのデフォルトのクラスパスの一つです。"という説明は誤っています。...
2
票
承認済み
saveとsaveAndFlushの違いがわかりません
Hibernateにおいて、saveとflushは次のようなニュアンスです。
save: ユーザが生成したエンティティをHibernate管理下に置く(=永続化対象にする)
flush: Hibernateが管理している状態をDBに書き出し、管理している状態とDBが保持する情報を同期させる。要は実際にSQLを実行する。
ユーザが参照するのHibernateが管理している状態であり、...
2
票
入力欄に文字数制限を設ける場合
javascript で文字列の長さのチェックをするのはあくまでユーザーの便宜を図る目的に限定してください。
攻撃者は javascript を使わずに長い文字列を POST できるので javascript による文字数のチェックはサーバー側のセキュリティ面では役に立たないことには注意が必要です。データベースに格納できるより長い文字列を受け取った場合に「サーバー側で」処理をすることは必須です。
2
票
承認済み
IDEなしでKotlinで書いたSpring Bootをデバッグしたい
https://docs.oracle.com/javase/jp/1.5.0/tooldocs/solaris/jdb.html
jdb のもう 1 つの使用方法は、すでに起動している Java VM に jdb を接続することです。jdb を使用してデバッグする VM は、次のオプションを使用して起動しなければなりません。
Option: -agentlib:jdwp=transport=...
2
票
承認済み
特定のフィールド(カラム)だけを更新するメソッドをリポジトリに用意したい。クエリーを自作するのがベストなのか?その場合SQLインジェクションの心配はないか?
@Queryを利用した場合、一般的に割れているようなSQLインジェクション対策は行われた状態になっていると考えてよいかと思います。
www.ipa.go.jp サイトに対策方法についていくつかの記事があります。一例として、
別冊:「安全なSQLの呼び出し方」
を挙げると、この中では、対策のひとつとして「動的プレースホルダ」(3.2.2節)があると記載されています。
@Queryを用いると、...
2
票
承認済み
なぜわざわざサブシェルで呼び出しているのでしょうか?
mkdir -p build/dependency && (cd build/dependency; jar -xf ../libs/*.jar)
「cd」によるカレントディレクトリ変更の影響をjarコマンド実行だけに収めておきたいという意図があると思います。
この例に限って言えば、()があってもなくてもあまり差がありませんが、この後に後続のコマンドが続く場合は、...
1
票
Spring InitializrでKotlinプロジェクトを生成したときにJavaのバージョンになにか意味があるのでしょうか?
元来の意味としてはコンパイル対象のJavaバージョン指定。javac の --source 相当。
しばしばGradle(Maven)エコシステム内でJava/JVMターゲットバージョンのデフォルト値として採用される
(ただしkotlinプラグインでは参照していない)
のような理解で良いのかなと思います。
KotlinプロジェクトであってもJavaコードを含めることはできますが、その場合は1....
1
票
承認済み
Spring InitializrでKotlinプロジェクトを生成したときにJavaのバージョンになにか意味があるのでしょうか?
Mavenが使用するJavaのバージョンを選択して下さい。バージョン8を選んだ場合と11を選んだ場合では、pom.xmlに以下の差異だけがあるはずです。
<java.version>1.8</java.version>
<java.version>11</java.version>
...
1
票
Spring & Thymeleaf の検証に関して
※ぱっと見での回答です。
質問1については画面の表示の際にエラーになりそうな気がしますが、未設定であれば無視されるのかもしれませんね。もしくは、参考にしたページで紹介されていない部分でaddObject("actorForm", )してるのかも。
質問2については意味はないですね。Springのコントローラーでは、処理に必要なものだけメソッドの引数に指定すればいいので、ActorForm ...
1
票
承認済み
Spring Boot で作ったプロジェクトとSpring関係のバージョンの調べ方はどのようにすればできますか?
コード上からは
spring-boot-dependenciesの構成ファイルを見ると良いかと思います。
先日リリースされた2.3.0からはMavenからGradle(build.gradle)に変わっているようですね…
私は普段Maven+Eclipseで開発しているのでそちらでの例になりますが、
自分のSpring Bootプロジェクトのpom.xmlを開き spring-boot-...
1
票
承認済み
visual studio code で hotswap できない
おそらくSpring Boot バージョン 1.x と 2.x で事情が異なるのでバージョンを明記した方が良いかと考えます。
私がSpring Bootを利用し始めたのは 2.1 以降なのでそれ以前のことについては誤解を含んでいるかもしれませんが、私が理解している限り、Spring Bootでホットスワッピングができたのは 1.x の頃の話です。
これを実現するのに利用していたspring-...
1
票
承認済み
コントローラからテンプレート(ビュー)にデータを渡すときにMapを使う形式はどのようなものですか?
もしかして、Model, ModelMap, ModelAndView のどれかが、 Map形式のエイリアスだったりしますか?
いいえ。
Springのドキュメントには、Model、ModelMap、ModelAndView、Mapの他にも様々な型がパラメーターや戻り値に利用できることが書いてあります。
1.3.3. Handler Methods
https://docs.spring.io/...
1
票
eclipseのVM引数からクラスパスを設定する方法
Eclipse(STS)から実行する際は "Javaのビルドパス>ライブラリー>クラスパスの外部フォルダー" によって外部の messages.properties を読めるようにしているが、 java -jar <spring-bootアプリ> コマンドで実行する場合にどう指定すれば良いか、という意図の質問ということでよいでしょうか。
メッセージソース(リソースバンドル)...
1
票
spring run app.groovyを実行した結果エラーが発生する
Spring Boot CLI 2.0.0.M5 で事象が再現するのを確認しました。
正式リリース版である 2.0.0.RELEASE (インストール方法)か、最新安定版(同; 現在は2.2.6.RELEASE)を利用すれば解消するようです。
(バージョン番号にM5と付いているのはマイルストーン版であり、正式リリース版ではないことを表しています。)
1
票
承認済み
Spring BootにおけるJUnitがUnresolvedになる。
import org.aspectj.lang.annotation.Before
import org.junit.Before
import org.junit.Test
import org.junit.jupiter.api.Before
import org.junit.jupiter.api.Test
同名のクラスをimportし過ぎですね。例えば、以下のようにどれか1つにして下さい。
...
1
票
SpringBoot Thymeleaf フォームから送信しDBに格納した値の改行コードがtextに反映されない
エラー内容から,「CogoalにsplitなんてMethodないよー」って言ってるので,しっかりString型を渡してあげたほうが良いかと思います.
具体的には<th:block th:each="line: ${cogoal.cogoal.split('\r\n|\r|\n', -1)}">とかにしてやれば良いのではないでしょうか?
また,HTMLでは改行を<br>...
1
票
Spring SecurityとStreamingResponseBodyを使用するとエラー
ちゃんとした対応ではないが自己解決
原因
処理で子スレッドに書き込みの処理を任せているのですが、親スレッドと子スレッドで同じHttpのヘッダーの変数を更新し合っているようです。
親スレッドで配列サイズ10個でheader変数更新
子スレッドでflushでheader変数参照して、サイズ10あるのを確認
for文で10回回そうとする
上記処理中に親スレッドでheader変数を配列サイズ2個で更新
...
1
票
承認済み
JPAプロジェクトにおいてRepositoryファイル作成時にビルドエラーが起きる
もともとDB操作をやりたかったSpringBootのプロジェクトはまた別にJPAプロジェクトを新規作成し、Repositoryファイルを作成していたため、上記のエラーが出ておりました。
本などを参考にして、もともとのSpringBootプロジェクト内にReposirotyファイルを作成して同様に記述したところ、エラーは発生しなくなりました。
supaさん、...
1
票
GET POSTの表示のやり取りのテストができません
本質的な問題としては、
model.addAttribute("S100601formList", new S161formList());
で属性名を S100601formList と設定しているので、これを意識する必要があります。
公式リファレンスとしては次のセクションが該当箇所になります:
@ModelAttribute - 1.3.3. Handler Methods
@...
1
票
1
票
承認済み
Spring boot & Thymeleafで@DateTimeFormatを使ってエラーメッセージを出力する方法
@DateTimeFormat は Stringでなく日付時刻型に付与するのが正しいかと思います。
ActorForm.java:
@DateTimeFormat(pattern = "uuuu/MM/dd")
private LocalDate birthday;
また、コントローラで使用しているメッセージプロパティ actor.validation.error も必要です。
...
1
票
承認済み
Java & Spring boot2 でValidationMessages.propertiesにアクセスする際、message.getMessage(...)と{}の違いは?
3. Validation, Data Binding, and Type Conversion - Spring Framework Core reference
「Spring Bootでは Bean Validationを利用可能です」、これを別の視点で言い換えると、「(Spring-wayでなく)Bean Validationの仕様に則ってvalidationを実装する必要があります」...
1
票
承認済み
spring bootをgradleでビルドしたjarファイルについて
Apacheの.htaccessに当たるTomcatの設定はweb.xmlの<security-constraint>になります(※)。日本語であれば、このページが分かりやすいと思います。
Spring Bootでもweb.xmlは使えるので、このあたりが参考になるのではないかと思います。
Stackoverflow - Spring Boot with container ...
1
票
承認済み
spring data jpaで自動生成されるSQLの変更方法
自動生成されるエイリアス名がアンダースコア始まりになるが、利用しているDBMSでは命名違反になるのでなんとかしたい、ということだと理解しました。
現行バージョンでは対処不能かなと考えます。
私も最近エイリアス絡みの不具合を踏んで似たような内容を調べていました。
エイリアス名を取得する実装は org.hibernate.mapping.Column#getAliasメソッドになります。
...
1
票
無効化に投票
関連するタグ
spring-boot × 179java × 124
spring × 67
kotlin × 20
thymeleaf × 18
javascript × 12
mysql × 11
eclipse × 10
spring-security × 10
html × 9
gradle × 9
jpa × 9
tomcat × 6
maven × 6
postgresql × 5
java8 × 5
database × 4
junit × 4
バリデーション × 4
docker × 3
vscode × 3
json × 3
jar × 3
hibernate × 3
windows × 2