在服务实现中,在@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 "/>
答案 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配置上的注释(这是最常见的情况)。