Springで作成したソースを、Spring Bootで動作させるための作業を行っています。

下記のようなソースがあった場合、Springではapplication-config.xmlに、

```

    <beans>
        <bean id="testService" class="test.service.impl.TestServiceAImpl" />
    </beans>
    
```

と、記述して利用するクラスを決定していましたが、Spring Bootの場合はどのように設定すれば良いのか分かりませんでした。  
application.propertiesに何らかの記述を行うことで、クラスを決定できればと思いますが、どのような記述が必要でしょうか？  
よろしくお願いします。

> test.controller  
>  └TestController.java  
>  test.service  
>  └TestService.java (インターフェイス)  
>  test.service.impl  
>  └TestServiceAImpl.java （TestServiceインターフェイス実装クラスＡ)  
>  └TestServiceBImpl.java （TestServiceインターフェイス実装クラスＢ)

TestController.java抜粋

```

    @Autowired
    private TestService testService;
    
```

* * *

  
コメントだけではフォローしきれませんでしたので、コメントを受けて修正したコードを記載します。  
クラス構成及びTestController.java、TestService.javaには変更がありません。

TestServiceAImpl.java抜粋

```

    @Service　　//@Componentの方が良い？
    @Profile("TestServiceA")　　// 追加
    public class TestServiceAImpl implements TestService
    
```

TestServiceBImpl.java抜粋

```

    @Service　　//@Componentの方が良い？
    @Profile("TestServiceB")　　// 追加
    public class TestServiceBImpl implements TestService
    
```

application.properties抜粋

```

    spring.profiles.active=TestServiceA　　// 追加
    
```

上記で、当初期待していた挙動を得ることができました、コメント頂ありがとうございます。

なお、コメント頂いたとおりConfigurationクラスを追加することも検討しましたが、その場合ConfigurationクラスのtestServiceA（spring.profiles.active=Aとした場合）、TestServiceAImpl、TestServiceBImplを候補としてNoUniqueBeanDefinitionExceptionがスローされてしまったため、上記の通りとなりました。
CC BY-SA 3.0
2015-07-22T04:01:58.670
12561
2015-10-21T09:35:06.810
2015-07-23T06:32:26.543
10623
10623
question
spring
Spring BootでのInjectionについて
```

    @Configuration
    public class AppConfig {
      @Bean TestService testService() {
        return new TestServiceImpl();
      }
    }
    
```

なクラスをコンポーネントスキャン配下においてください。メソッド名がbean idになります
CC BY-SA 3.0
2015-07-22T09:49:06.717
12573
2015-07-23T01:10:48.593
2015-07-23T01:10:48.593
3542
3542
12561
answer