14

シングルトン Bean を自動配線できるようにしたい ( foo)

@Component
public class FooUser {

  @Autowire Foo foo;
}

別のシングルトンのメソッドによって作成された ( FooFactory.createFoo)

@Service
public class FooFactory {

  public Foo createFoo() {...}
}

xml を使用すると、単純にfactory-method. アノテーションでどうすればいいですか?

4

5 に答える 5

4

java-config -注釈@Bean必要です。

クラスを次のように定義@Configurationし、メソッドを次のように定義します@Bean

于 2013-02-08T19:40:34.043 に答える
4

Spring コンポーネントはファクトリ メソッドを定義することもできます。ドキュメントから切り取ったA :

@Component
public class FactoryMethodComponent {

  @Bean @Qualifier("public")
  public TestBean publicInstance() {
      return new TestBean("publicInstance");
  }

  public void doWork() {
      // Component method implementation omitted
  }
}
于 2016-09-15T14:20:14.873 に答える
0

FactoryBean Spring インターフェースを使用します。次に、T自体を自動配線できます


編集: BeanFactory は Spring のインターフェースです。実装すると、次のようなオブジェクトのファクトリを作成できます。

public class FooFactoryBean implements FactoryBean<Foo>{
   .................. 
   } 

次に、Bean を初期化できます。

@Bean
public FooFactoryBean foo(){ 
      return new FooFactoryBean(); 
    } 

次に、Foo を自動配線すると、Spring は FooFactoryBean が目的のファクトリであることを理解します

   @Autowired
       Foo foo;
于 2015-03-22T15:30:51.957 に答える