0

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)
4

2 に答える 2

0
<context:component-scan base-package="org.me.project"/> 

リポジトリの注釈に除外フィルタを使用しています。削除してください。

于 2012-09-26T08:48:14.983 に答える
0

使用のみが機能する<context:component-scan base-package="com.java.spring.support, org.me.project"> <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Repository"/>はずです。

于 2012-09-26T08:11:47.683 に答える