2

Spring Bean が jar ファイルで注釈を使用した場合、クラスに mythe Bean インスタンスをロードするにはどうすればよいですか?

jarファイルで

package org.java.service.test;

@Service(value = "MyService")
public class MyService {

    @Resource(name = "myproperties")
    private Properties properties;
}

私のプロジェクトでは

package org.java.project.test;

@Service(value = "OtherService")
public class OtherService {
    @Resource(name = "MyService")
    private MyService myService;
}

spring-beans.xml 内

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" ....>

    <context:annotation-config/>    
    <context:component-scan base-package=org.java.service.test, org.java.project.test"/>
    .....
</beans>

私も以下のように試してみましたが、うまくいきません

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" ....>

    <context:annotation-config/>    
    <context:component-scan base-package="org.java.service.test"/>
    <context:component-scan base-package="org.java.project.test"/>
    .....
</beans>
4

2 に答える 2

0

コンポーネント スキャンの構成に問題はないと思います。@Resourceフィールドで注釈を使用するのではなく、注釈をprivate MyService myService;使用する必要があります@Autowired

したがって、クラス OtherService のコードは次のようになります。

package org.java.project.test; 

@Service(value = "OtherService") 
public class OtherService { 
    @Autowired
    private MyService myService; 
} 

私によると、それはあなたのために働くはずです。やってみなよ。乾杯。

于 2012-09-15T06:12:28.083 に答える
0

<context:component-scan> 現在のプロジェクトにあるパッケージをスキャンします。

于 2014-09-04T07:43:23.610 に答える