component-scan
スプリング3.0でどうする?jar とプロジェクトの両方に @Service、@Reponsity などのアノテーションを使用します。それは動作しません。プロジェクト内の Bean が jar 内の Bean から注入されるとき。
jarファイルで
com.java.spring.support
プロジェクト内
org.me.project
私の構成は
<context:annotation-config/>
<context:component-scan base-package="com.java.spring.support, org.me.project"/>
Jar ファイル内
package com.java.spring.support;
@Service("CommonService")
public class CommonService {
}
プロジェクト内
package org.me.project;
@Service(value = "OtherService")
public class OtherService {
@Resource(name = "CommonService")
private CommonService service;
}
エラーが発生します
15:41:53,043 DEBUG [org.springframework.context.support.ClassPathXmlApplicationContext] Unable to locate LifecycleProcessor with name 'lifecycleProcessor': using default [org.sprin
gframework.context.support.DefaultLifecycleProcessor@510ebe18]
15:41:53,044 DEBUG [org.springframework.beans.factory.support.DefaultListableBeanFactory] Returning cached instance of singleton bean 'lifecycleProcessor'
Exception in thread "main" org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'CommonService' is defined
at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:529)
at org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition(AbstractBeanFactory.java:1095)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:277)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1093)
at org.ace.java.support.delete.Test.main(Test.java:13)