2

例に従った後、これは JUnit テストで機能します。

@ContextConfiguration(locations = "classpath:/spring/context.xml")
@RunWith(SpringJUnit4ClassRunner.class)  
@Transactional  
public class ServiceTest  {
    @Autowired
    private Service service;

    @Test
    public void doSomething() {
    assertEquals(0, service.getNumber()); ...
    }

これを非テストコードに移動しようとすると、これは機能しません:

// @ContextConfiguration only works for testing (JUnit).  What do I use here, instead?  
// @ContextConfiguration(locations = "classpath:/spring/helloWorldContext.xml")  
@Service // supposedly to get the Spring Container to 'see' this class
public class Accessor {      
    @Autowired( required=true )      
    private Service service;

    @Autowired
    public Accessor() {
    return service.getNumber(); ...
    }

基本的に、テストクラスを使用するのと同じ方法で非テストクラスを使用したいと考えています。

4

2 に答える 2

0

私の知る限り、通常の Bean では実行できませんが、@Configuration代わりにクラスを作成して Bean と一緒に配置できます。

@Configuration
@ImportResource("classpath:/spring/context.xml")
public class ServiceConfiguration {}
于 2013-03-17T21:26:21.847 に答える
0

これを spring 構成ファイルに追加して、annotation-config を有効にする必要がある場合があります。

<context:annotation-config />

ドキュメント: http://static.springsource.org/spring/docs/3.1.x/spring-framework-reference/html/beans.html#beans-annotation-config

于 2013-03-17T21:20:58.750 に答える