を施行しますその小道具が存在する場合。存在しない場合、デフォルトは25になります。春@value注釈は、私は、デフォルト値を指定して、<code>@Value</code>で注釈を付け、次のフィールドを持って最小最大のint
このintフィールドにminとmaxを強制することで、さらにステップを進めたいと思います。これは、マーフィーの法律は誰か(おそらく私)が外部から誤ってプロパティを誤って設定することを意味し、実行時に私のアプリが奇妙なことをやり始めてしまうのです。アプリケーションの起動時にプロパティが "101"または "-1"に設定されていると、エラーがスローされます。ヘック、@Value
注釈で101にデフォルト設定しようとするとエラーがスローされることもありますが、この質問の目的には重要ではありません。ここに私が試したものです:
//@Min and @Max don't produce the intended behavior when combined with @Value
@Min(0)
@Max(100)
@Value("${tolerance.percentage:25}")
private int tolerance;
私は@Value
が知っていることをint
フィールド上の最小値と最大値を強制することはできますか?
'を[値]は、あなたがそのBeanを持っているかのようにシングルトンのための起動時間(、ないで値を注入@。 'prototype');私はあなたがその時に(自動的に)トリガーされた検証を持っているとは思わないでしょう... –
通常のクラスではない' @ ConfigurationProperties'クラスでのみ検証が行われます。 –
@ M.Deinum私のpojoに '@ConfigurationProperties'を追加しました。追加した後、注釈は一緒に働き始めました。私は彼らがあなたのコメントを正式にするなら答えに私はそれを受け入れる。 – JellyRaptor