2017-10-16 151 views
-1

在服务实施中,在@Autowired的帮助下,我正在注入CollectInfo对象在serviceImpl中,但我得到NullPointerException@Autowired春季不工作集成

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 "/> 
+0

如果您使用@Component注释了类,那么您可以共享CollectInfo class.check吗 –

+0

是否'EmployeeImpl'弹簧容器被管理? –

+0

@Vikram是我定义了 – Doss

回答

1

如果该类不是一个Spring bean你不能在一个类中注入一个bean。
EmployeeImpl未注明任何Spring bean stereotype,例如@Component@Service

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

此外,这两个注释一个bean与@Component:

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

,并在Spring XML配置配置它:

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

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

我建议你赞成通过xml配置注释,因为它是可能的(这是大多数情况下)。

+0

我不能从xml中删除这个 bcoz我正在使用它来工作正常的网关目的。 – Doss

+0

但仍面临相同的空指针异常 – Doss