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 回答