我对春天很陌生;)
我有一个共享模块,我称之为“核心”和几个依赖于核心的项目。子项目有spring/app-context.xml
文件,在它们执行的环境中,spring 由另一个框架初始化。
在“核心”项目中,我想使用 @Configuration 方法来定义一些单例服务:
@Configuration
public class AppConfig
{
@Bean
public MyService myService()
{
return new MyServiceImpl();
}
}
然后将核心打包在一个 jar 中,并包含在子项目的类路径中。
如何引导核心模块的服务,以便它们可用于子项目中的@Autowire?
编辑:
我遇到的错误是:
org.springframework.beans.factory.NoSuchBeanDefinitionException:没有为依赖项找到类型为 [package.MyService] 的匹配 bean:预计至少有 1 个 bean 有资格作为此依赖项的自动装配候选者。依赖注解:{@org.springframework.beans.factory.annotation.Autowired(required=true)}
我已经尝试了以下每一项(独家):
<context:component-scan base-package="package" />
<import resource="classpath*:spring/core-context.xml" /><!-- defined in core.jar with MyService as a bean -->
<bean class="package.AppConfig" />
但仅将其添加到子项目的 app-context.xml 似乎可以解决错误:
<bean id="MyService" class="package.MyServiceImpl" />