1

新しい Bean を追加するためにエンド ユーザーが編集する Spring アプリケーション コンテキスト xml を定義しました。

<bean name="myBeanName1" class="com.xxx.Yyy">
    <property name="type" value="type1" />
    <property name="name" value="name1" />
    <property name="arguments" value="arg1" />
</bean>

<bean name="myBeanName2" class="com.xxx.Yyy">
    <property name="type" value="type2" />
    <property name="name" value="name2" />
    <property name="arguments" value="arg2" />
</bean>

.
.
.

ここで、これを通常の xml に変更して、ユーザーが名前に煩わされないようにするよう求められbean propertyます。class

<def name="Name1">
    <type>type1</type>
    <argument>arg1</argument
</def>

<def name="Name2">
    <type>type2</type>
    <argument>arg2</argument
</def>

私のコードは Bean を使用しているため、以前のように Bean 定義に変換され、以前と同じように機能するように、最小限のコード変更で新しい xml を使用するにはどうすればよいですか?

Spring にすぐに使える解決策があるかどうかはわかりません。私が考えたのは、新しい xml にスタイルシートを適用して古い Bean を作成することでした。これに対する他のより良い/エレガントなソリューションはありますか?

編集:ユーザー入力が Bean 内になくなったので、新しい xml を使用して @Component クラスに注入することは可能ですか?

4

1 に答える 1

4

Spring はカスタムタグの作成をサポートしています。xsd スキーマ NamespaceHandlerm を作成し、BeanDefinitionParsers を実装し、spring.handlers および spring.schemas 特殊ファイルを作成して、Spring にこれらを認識させる必要があります。

拡張可能な XML オーサリングをご覧ください。

例:

<beans xmlns declaration goes here>
    <yournamespace:yourcustomtag id="some id">
         <yournamespace:some_other_tag your-custom-attribute="some value" />
    </yournamespace:yourcustomtag>
</beans>
于 2013-03-20T07:25:47.873 に答える