5
I AspectJ gerade umgesetzt wie hier beschrieben: https://stackoverflow.com/a/10998044/2182503AspectJ: Autowired Felder sind null in Initbinder
Diese Lösung funktioniert gut, bis ich bemerkte, dass mein @Autowired
Felder innerhalb @InitBinder
null sind. Die Felder sind nur null innerhalb der @InitBinder
.
@Controller
public class EmployeeController {
@Autowired private GenericDaoImpl<Role, Integer> roleDao;
@Autowired private GenericDaoImpl<Employee, Integer> employeeDao;
@Autowired private EmployeeValidator employeeValidator;
@InitBinder
private void initBinder(WebDataBinder binder) {
// autowired fields are null
binder.setValidator(employeeValidator);
binder.registerCustomEditor(Set.class, "roles", new CustomCollectionEditor(Set.class) {
protected Object convertElement(Object element) {
if (element != null) {
Integer id = new Integer((String) element);
Role role = roleDao.findById(id);
return role;
}
return null;
}
});
}
@PreAuthorize("hasRole('MASTERDATA_VIEW')")
@RequestMapping(value = { "/employees" }, method = RequestMethod.GET)
public ModelAndView showEmployeeList() {
// dao not null
List<Employee> employees = employeeDao.findAll();
...
}
Ich kann nicht verstehen, warum sie manchmal null sind und somethimes nicht. (Innerhalb der gleichen Klasse)
Vielen Dank, eine der Methoden in meinem Controller wurde als privat markiert. Konnte nicht herausfinden, warum alle anderen arbeiteten und das war nicht. – Hiro2k