問題タブ [spring-annotations]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
spring-mvc - 検証が失敗した場合、Spring MVCで注釈付きの日付をどのように再フォーマットしますか?
Beanに基づいたフォームを表示するSpring-MVCアプリがあります。Beanには、次の注釈が付いた日付フィールドがあります。
これは期待どおりに機能します。日付はその形式で表示されます。一方、Beanの他のフィールドは、JPA検証アノテーションを使用して検証されています。ユーザーがフォームを送信すると、カスタムデータコンバーターが登録され、受信文字列が正常に実行されているように見える日付に変換されます。
したがって、ユーザーがフォームを送信し、他のフィールドの1つで検証が失敗すると、問題が発生します。検証エラーによってユーザーがフォーム入力ページに戻ると、日付オブジェクトでtoString()を呼び出した後、日付の形式が期待どおりに変更されます。
フォームに送り返される前に、オブジェクトのDateTimeFormatアノテーションを再トリガーする方法はありますか?
spring - Spring アノテーション : @component クラスで @sessionAttributes を設定する
マネージャー クラス (コントローラーではなく、@component としてマークされているクラス) にセッション属性を設定することはできますか? シナリオは次のようなものです。コントローラーから、ロジックを実行するマネージャー クラスを呼び出しています。このロジックの結果をセッションに保存して、後のリクエストで使用できるようにします。
java - @PathVariable のようなカスタム WebArgumentResolver
ID -> エンティティにカスタム WebArgumentResolver を使用したいと思います。リクエスト パラメータを使用すれば簡単です。パラメータ キーを使用してエンティティ タイプを判別し、それに応じて検索します。
しかし、 @PathVariable アノテーションのようにしたいと思います。
例えば。
http://mysite.xzy/something/enquiryId/itemIdはこのメソッドをトリガーします
@Coerce アノテーションは、そのタイプに基づいて特定のサービスを使用するように WebArgumentResolver に指示します。
問題は、どの uri 部分がエンティティに属しているかを調べることです。
PathVariable アノテーションがどのようにそれを行うかを誰かが説明できますか? そして、私のカスタム注釈でそれをエミュレートすることは可能ですか?
ありがとう。
java - java - Spring MVC: 古い URL のリクエストを新しい URL にリダイレクトする
Web サイトの 1 つの URL スタイルを RESTful に変更しました。
検索エンジンが私のウェブサイトを新しい URL で再インデックス化するまで、ユーザーは検索エンジンで古い URL を引き続き表示します。古い URL で私のサイトにアクセスすると、404 が返されます。
次のようなメカニズムを(コントローラー、エラーハンドラーなどを作成して)作成したいと思います。
- マッピングが見つからなかったリクエストをキャッチします
- このリクエスト パスにマップされた新しい URL があるかどうかを確認します。
- 新しい URL が見つかった場合は、その URL にリダイレクトします。
- それ以外の場合は、「404 ページが見つかりません」ページが表示されます。
これはどのように行うことができますか?
spring - テスト用にSpring ContextLoaderをサブクラス化する正しい使用法
私のSpringアプリケーションとjunitの統合テストでは、次のようにテストクラスを配線するためorg.springframework.test.context.ContextLoader
にすでに存在するを使用したいので、サブクラス化しています:XmlWebApplicationContext
私の ContextLoader の実装は次のとおりです。
public class MyContextLoader は ContextLoader を実装します {
メソッドにブレークポイントを設定すると、loadContext(...)
getBean(AccountDao.class) を呼び出すことができ、すべて正常に動作します。ただし、私のテストクラスは実際には自動配線されていないようです。私は少しデバッグし、春のコードをステップ実行しました.AbstractAutowireCapableBeanFactory.populateBean(String beanName, AbstractBeanDefinition mbd, BeanWrapper bw) メソッドで、PropertyValues がクラス Test に設定されていないようです。
たぶん、注釈処理の設定が間違っていますか?
コードへの情報: ご想像のとおり、私は統合テストを行っているため、RESTful Web サービスをテストするために組み込みの tomcat サーバーを開始しています。埋め込み tomcat から「ハック」を使用してアプリケーション コンテキストを取得する方法は、私の投稿に示されています: Getting Access to Spring with Embedded Tomcat 6
返信をお待ちしております。エリック
java - Springの3.1MvcAnnotationDrivenを実装する方法は?
これはSpring3.1のコード例です。SpringSourceBlog:XMLから@Configurationまでアプリケーションに実装しようとしています(これは私ではなくSpring 2.0で行われたため、多くの学習が必要です)。
ただし、.argumentResolvers(new CustomArgumentResolver())のポイントが理解できず、CustomArgumentResolverは次のようになります。それのポイントは何ですか?
java - @PathVariable が見つからない場合、null を返すことはできますか?
@PathVariable
パス変数がURLにない場合、nullを返すようにすることは可能ですか? それ以外の場合は、2 つのハンドラーを作成する必要があります。1つと/simple
もう/simple/{game}
1つですが、ゲームが定義されていない場合はどちらも同じですが、リストから最初の1つを選択しますが、ゲームパラメーターが定義されている場合はそれを使用します。
そして、これはページを開こうとしたときに得られるものです/simple
:
原因: java.lang.IllegalStateException: @RequestMapping で @PathVariable [example] が見つかりませんでした
java - コントローラにプロパティ値を挿入するための最良の方法は何ですか?
これは、プロパティファイルからコントローラにプロパティを挿入する最も簡単な方法ですか?次に、いくつかのプロパティを必要とする各コントローラーにプロパティファイルをインポートする必要があります。私のようなプロジェクトでは、約30のコントローラーがあり、そのうちの10がこの国のプロパティを必要としているので、混乱しているように見えます。使用法を@Value
正しく理解しましたか?
property-config.xml (xmlとスキーマのものをスキップしました)
また、properties-config.xmlリソースを複数のコントローラーにインポートしようとすると、そのようなメッセージが表示されます。それは正しい方法ではないようですが、私はより良い方法を見つけることができません。
java - Spring 3.0 の FactoryBeans とアノテーションベースの構成
Spring は、FactoryBean
Bean の重要な初期化を可能にするインターフェースを提供します。このフレームワークはファクトリー Bean の多くの実装を提供します。また、Spring の XML 構成を使用する場合、ファクトリー Bean は簡単に使用できます。
しかし、Spring 3.0 では、ファクトリー Bean をアノテーション・ベースの構成 (旧称 JavaConfig) で使用する満足のいく方法を見つけることができません。
明らかに、次のように、ファクトリ Bean を手動でインスタンス化し、必要なプロパティを自分で設定できます。
ただし、、、、またはFactoryBean
などの Spring 固有のコールバック インターフェイスが実装されている場合、これは失敗します。また、FactoryBean を検査し、それが実装するコールバック インターフェイスを見つけてから、などを呼び出してこの機能を自分で実装する必要があります。InitializingBean
ApplicationContextAware
BeanClassLoaderAware
@PostConstruct
setApplicationContext
afterPropertiesSet()
これは私にはぎこちなく、前から後ろに見えます。アプリケーション開発者は、IOC コンテナーのコールバックを実装する必要はありません。
Spring Annotation 構成から FactoryBeans を使用するためのより良い解決策を知っている人はいますか?