Я немного новичок в весне, и я столкнулся с Исключением Null Pointer. Я считаю, что @Autowired
не работает над моим MongoRepository. По какой-то причине, когда я попробовал несколько примеров, он работал. (Закомментированный из кода в функции выполнения работал)Spring Boot MongoRepository Null Pointer Exception
Это ошибка, я получаю:
2016-05-20 02: 31: 20,877 ОШИБКА 6272 --- [НИО-8080-exec- 2] oaccC [. [. [/]. [DispatcherServlet]: Servlet.service() для сервлет [диспетчерServlet] в контексте с путём [] исключение [Обработка запроса не выполнена; вложенное исключение составляет java.lang.NullPointerException] с первопричиной
java.lang.NullPointerException: нуль на com.applesauce.service.CustomerService.addCustomer (CustomerService.java:24) ~ [/ классов: на]
Можете ли вы, ребята, взглянуть и направить меня? Также, пожалуйста, дайте мне знать, если я делаю что-то неправильно для лучших практик. Если вам нужна дополнительная информация, пожалуйста, спросите!
com.applesauce.controller
@RestController
@RequestMapping("/customer")
public class CustomerController {
private CustomerService customerService = new CustomerService();
@RequestMapping(value = "/addcustomer", method = RequestMethod.GET)
public Customer addCustomer(@RequestParam("firstName") String fName,
@RequestParam("lastName") String lName,
@RequestParam("email") String email,
@RequestParam("phoneNumber") String phoneNumber,
@RequestParam("source") String source){
return customerService.addCustomer(new Customer(fName,lName,email,phoneNumber,source));
}
}
com.applesauce.repository
@Repository
public interface CustomerRepository extends MongoRepository<Customer, String> {
public Customer findByFirstName(String firstName);
public List<Customer> findByLastName(String lastName);
}
com.applesauce.service
@EnableMongoRepositories(basePackages = "com.applesauce.repository")
public class CustomerService {
@Autowired
private CustomerRepository repository;
public Customer addCustomer(Customer customer){
repository.save(customer);
return customer;
}
}
Разве это не ваше 'CustomerS ervice' должен быть Spring '@ Service'? Аннотируйте вместо этого и не создавайте его вручную, используйте '@ Autowired'. Кстати, вы должны удалить весь ненужный код из своего вопроса, который также включает в себя все прокомментированные строки. –
Спасибо за подсказку.Я удалил часть кода. Можете ли вы объяснить «Аннотировать как это вместо этого и не создавать его вручную, используйте @Autowired». эта часть немного больше? Я не понимаю. –