3

私はSpringを使用するのは初めてで、現在取り組んでいる製品にSpringを利用している開発者チームに加わったばかりです。IoCを理解し始めています。しかし、私はある特定の点で混乱しています。答えを探しましたが、何も見つかりませんでした。

私が見ているクラスには、@Controllerアノテーションが設定されています。メソッドの1つに@RequestMappingアノテーションがあります。この特定のメソッドのメソッドシグネチャには、私の会社独自のクラスの1つのパラメータが含まれています。このプロプライエタリクラスには、Springのアノテーションがなく、Spring構成ファイルにもリストされていません。

だから、私の質問は、フレームワークがそれを識別するのを助けるものが何もないときに、そのパラメーターはどのように注入されるのですか?

前のトランザクションでプロプライエタリクラスがを介してモデルに追加されているため、これを実行できると思いますが、ModelAndView.addObject()誰かが確認または拒否できることを望んでいました。

特定のシナリオは次のとおりです。

  1. ユーザーがログインページをリクエストする
  2. addObject(proprietaryClass)
  3. ログインページが表示されたユーザー
  4. ユーザーがボタンをクリックしてログインする
  5. メソッドは、メソッドシグネチャのプロプライエタリクラスで呼び出されます。

どんな助けでも素晴らしいでしょう。

4

2 に答える 2

1

Bean構成のどこかに、変換サービスBeanがあります。他の開発者が良ければ、「ConverterFactory」のような名前を付け、おそらく拡張しorg.springframework.format.support.FormattingConversionServiceFactoryBeanます。のコードベースをgrepすることもできますorg.springframework.format.FormatterRegistry

これについては、Springリファレンスマニュアルで説明されています。

于 2012-09-06T21:09:48.510 に答える
1

春は賢い...本当に賢い。リクエストパラメータの名前を確認し、フィールド名でPOJOにマップできます。たとえば、ユーザーに「first」フィールドと「last」フィールドがある場合、user.first = Joe&user.last = Blowを渡すと、ユーザーオブジェクトの「first」プロパティと「last」プロパティを設定しようとします。http://www.jpalace.org/docs/technotes/spring/mvc-params.html、特にBindingDomainObjectsという名前のセクションをご覧ください。

もう1つのオプションは、コンバーター、またはコンバーターファクトリを実装していることです。私のプロジェクトでは、データベースエンティティのいずれかを処理し、Longを取り、idで検索することにより、それをマテリアライズドエンティティに変換する汎用ConverterFactoryを実装しました。

于 2012-09-06T21:11:32.380 に答える