@Autowired没有在spring Integration中工作

时间:2017-10-16 08:07:23

标签: spring spring-integration

在服务实现中,在@Autowired的帮助下,我在serviceImpl中注入了CollectInfo个对象,但我得到NullPointerException

package net.group.cts.service.serviceImpl;
       @Service
        public class EmployeeImpl implements EmployeeService {       
            @Autowired
            CollectInfo  info;

            public void processData(){
                info.getName();
            }
        }

package net.group.cts.model;
    @Component
    public class CollectInfo  (){

        String name;

        public String getName(){
            name = name + "Mr.";
            return name;}
        }

    }

Xmlconfig.xml

<context:annotation-config/>
<context:component-scan base-package="net.group.cts"/>
<bean id="info"    class="net.group.emp.model.CollectInfo  "/>

1 个答案:

答案 0 :(得分:1)

如果此类不是Spring bean,则不能在类中注入bean EmployeeImpl未使用@Component@Service等任何Spring bean stereotype进行注释。

EmployeeImpl上添加其中一个,并确保这两个类位于Spring <context:component-scan base-package="net.group.emp.service"/>扫描的包内  它应该没问题。

此外,两者都使用@Component注释bean:

@Component
public class CollectInfo  (){...}

并在Spring xml配置中配置它:

<bean id="info"  class="net.group.emp.model.CollectInfo  "/>

是多余的。
它最终会创建两个bean:一个名为collectInfo,另一个名为info

我建议你尽可能支持xml配置上的注释(这是最常见的情况)。