Spring 当我使用medicore类使用存储库时,显示空指针异常
当我从控制器调用服务层时,数据保存在数据库中 我的控制器是:Spring 当我使用medicore类使用存储库时,显示空指针异常,spring,spring-mvc,Spring,Spring Mvc,当我从控制器调用服务层时,数据保存在数据库中 我的控制器是: @RestController @RequestMapping("/api") public class ApiController { @Autowired(required = true) PersonService personService; //This is service layer class @RequestMapping("/add") public void add
@RestController
@RequestMapping("/api")
public class ApiController {
@Autowired(required = true)
PersonService personService; //This is service layer class
@RequestMapping("/add")
public void add(){
person.setLastName("Rahim");
person.setFirstName("Uddin");
person.setAddress("Dhaka");
person.setCity("Dhaka");
personService.add(person);
}
}
服务层是:
@Service
@Transactional
public class PersonServiceImpl implements PersonService {
@Autowired
PersonDao personDao;
@Override
public void addPerson(Person person) {
personDao.addPerson(person);
}
}
@RestController
@RequestMapping("/api")
public class ApiController {
@Autowired(required = true)
PersonService personService; //This is service layer class
@RequestMapping("/add")
public void add(){
MiddleClass m=new MiddleClass();
m.create();
}
}
直到现在一切都很好
但当我通过另一个类调用服务层时,会显示null指针异常。
当时:
我的控制器是:
@Service
@Transactional
public class PersonServiceImpl implements PersonService {
@Autowired
PersonDao personDao;
@Override
public void addPerson(Person person) {
personDao.addPerson(person);
}
}
@RestController
@RequestMapping("/api")
public class ApiController {
@Autowired(required = true)
PersonService personService; //This is service layer class
@RequestMapping("/add")
public void add(){
MiddleClass m=new MiddleClass();
m.create();
}
}
我的中产阶级是:
public class MiddleClass {
@Autowired
PersonService personService;
public void create(){
Person person=new Person();
person.setLastName("Rahim");
person.setFirstName("Uddin");
person.setAddress("Dhaka");
person.setCity("Dhaka");
personService.addPerson(person);//this time same service layer
//is showing null pointer exception here
}
}
为什么??????????是因为在MiddleClass中没有任何注释吗?您正在使用new创建MiddleClass实例。因此Spring无法知道它必须将服务注入到中间类实例中。它只能将bean注入到它自己创建的其他bean中 因此,中间类必须是Springbean,并且必须自动连接到控制器中,就像服务一样。可能重复的