0
問題是@autowiring不起作用,我跟着所有的搜索結果,但仍然得到這個錯誤「錯誤創建bean:NameController注入自動裝配依賴失敗;」,任何幫助將不勝感激。創建bean時出錯:NameController注入自動裝配的依賴項失敗;
堆棧跟蹤:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'travailController': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: com.pcd.service.TravailService com.pcd.restcontroller.TravailController.travailServ; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'travailServ': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.pcd.repository.TravailRepository com.pcd.serviceImpl.TravailServiceImpl.travailRepository; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'travailRepository': Invocation of init method failed; nested exception is org.springframework.data.mapping.PropertyReferenceException: No property saveTravail found for type Travail!
控制器:
@Controller
public class TravailController {
@Autowired
TravailService travailServ;
@Autowired
MatiereService matiereServ;
@Autowired
GroupeService groupeServ;
@RequestMapping(value = "/add", method = RequestMethod.POST)
public ModelAndView saveEmployee(@ModelAttribute("travail")Travail travail,
BindingResult result) {
travailServ.saveTravail(new Travail());
return new ModelAndView("redirect:/travail");
}
@RequestMapping(value = { "/list" }, method = RequestMethod.GET)
public String newGroupe(@ModelAttribute("travail") Travail travail,ModelMap model,BindingResult result) {
model.addAttribute("travail", travail);
model.addAttribute("matieres", matiereServ.findAlmatieres());
model.addAttribute("groupes", groupeServ.findAllGroupes());
model.addAttribute("listTravail", travailServ.findAllTravail());
return "travail";
}
@RequestMapping("/remove/{id}")
public String removePerson(@PathVariable("id") int id){
this.travailServ.deleteTravailById(id);
return "redirect:/travail";
}
@RequestMapping("/edit/{id}")
public String editPerson(@PathVariable("id") int id, Model model){
model.addAttribute("travail", travailServ.findById(id));
model.addAttribute("listTravail", travailServ.findAllTravail());
return "travail";
}
TravailServiceImpl:
@Service("travailServ")
public class TravailServiceImpl implements TravailService{
@Autowired
private TravailRepository travailRepository;
@Override
public List<Travail> findAllTravail() {
try{
return (List<Travail>) travailRepository.findAll();
}catch(Exception e){
return null;
}
}
@Override
public Travail findById(int id) {
return travailRepository.findById(id);
}
@Override
public Travail findByTitre(String titre) {
return travailRepository.findByTitre(titre);
}
@Override
@Transactional
public Travail findByDescription(String description) {
return travailRepository.findByDescription(description);
}
@Override
public void deleteTravailById(int id) {
travailRepository.delete(id);
}
@Override
public void saveTravail(Travail travail) {
travailRepository.save(travail);
}
TravailService:
public interface TravailService {
List<Travail> findAllTravail();
Travail findById(int id);
Travail findByTitre(String titre);
Travail findByDescription(String description);
void saveTravail(Travail travail);
void deleteTravailById(int id);
}
TravailRepository:
public interface TravailRepository extends CrudRepository<Travail, Integer> {
List<Travail> findAllTravail();
Travail findById(int id);
Travail findByTitre(String titre);
Travail findByDescription(String description);
void saveTravail(Travail travail);
void deleteTravailById(int id);}
謝謝,有效 ! – sand