简体   繁体   中英

Spring 3.0 annotation bean Component Scan

How to do component-scan in spring 3.0? I use annotation like @Service, @Reponsity for both jar and project. It does not work. When the bean in project inject from the bean in jar.

In jar file

    com.java.spring.support

In project

    org.me.project

My configuration is

    <context:annotation-config/>
    <context:component-scan base-package="com.java.spring.support, org.me.project"/>

In Jar File

    package com.java.spring.support;

    @Service("CommonService")
    public class CommonService {
    }

In project

    package org.me.project;

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

I get error

    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)

仅使用<context:component-scan base-package="com.java.spring.support, org.me.project"> <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Repository"/>应该可以。

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

您正在对存储库注释使用排除过滤器,请将其删除。

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM