1

Springによってとして扱われる/扱われる可能性のあるPOJOBeanを作成することは可能ですかFactoryBean。したがって、FactoryBeangetObject、、、などを含む)であるが、Spring固有のクラスをインポートしないクラスを作成したいと思います。したがって、は実装されません。getTypeisSingletonFactoryBean

参考までにfactory-method、オブジェクトを作成する前にプロパティを設定する必要があるため、を使用しても機能しません。

この典型的な例は、ビルダーを作成し、プロパティを設定し、ビルドメソッドを呼び出して必要な最終的なBeanを取得するビルダーを使用することです。

4

2 に答える 2

2

工場豆はどうですか?例えば:

<bean id="factory" class="package.Factory">
    <!-- configure properties here -->
</bean>
<bean id="instance" factory-bean="instans" factory-method="createInstance"/>

SpringはFactoryクラスのインスタンスを作成し、それを構成し、そのcreateInstanceメソッドを使用してidインスタンスを持つBeanを作成します

于 2013-02-26T12:18:36.350 に答える
1

ビルダーのプロパティに適切なJavaBeans互換setメソッドがある場合は、2段階で実行できます。

<bean id="fooBuilder" class="com.example.FooBuilder">
  <property name="algorithm" value="simple" />
</bean>

<bean id="foo" factory-bean="fooBuilder" factory-method="build" />

しかし、流暢なセッターを使用するGuava CacheBuilderのようなものの場合、XMLの代わりに構成のその部分にSpringのJavaConfigアプローチを使用する方がおそらく良いでしょう。

@Configuration
public class AppConfig {
  public @Bean Cache<String, MyObject> cache() {
    return CacheBuilder.newBuilder()
      .maximumSize(1000)
      .softValues()
      .build(cacheLoader);
  }

  // defined elsewhere, maybe in XML
  private @Autowired CacheLoader<String, MyObject> cacheLoader;
}
于 2013-02-26T12:29:28.013 に答える