Spring组件从jar中扫描类?

时间:2012-09-20 11:48:15

标签: java spring

我们可以使用Spring Bean注释生成类作为jar文件吗? 如何从该jar的类中注入另一个Spring Bean? 你能提供可行的方法吗?当我得到如下,它不起作用?

在Jar文件中

    package org.java.support;

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

在项目中

    package com.java.test.app;

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

在configuraiton

    <context:component-scan base-package="com.java.test.app, org.java.support">
        <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Repository"/>
    </context:component-scan>

我收到以下错误;

13:32:12,331 DEBUG [org.springframework.context.annotation.AnnotationConfigApplicationContext] Unable to locate LifecycleProcessor with name 'lifecycleProcessor': using default [or
g.springframework.context.support.DefaultLifecycleProcessor@32dcb03b]
13:32:12,331 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:18)

1 个答案:

答案 0 :(得分:2)

如果要从Eclipse生成Jar,请在导出对话框中确保选中“添加目录条目”复选框(在选项下)。