#java #spring #spring-mvc
#java #spring #spring-mvc
Вопрос:
Я использую Spring MVC framework. В приведенном ниже фрагменте кода возможно ли, чтобы Spring вводил компонент в MyRequestClass
параметр запроса при его создании (т. Е. используя @Autowired
или ApplicationContextAware
интерфейс)? Мне нужен этот объект запроса для доступа к одному из моих одноэлементных компонентов Spring, и я предпочел бы не создавать ApplicationContextAware
реализующий singleton только для этой цели.
Пока я просто получаю NullPointerExceptions, пытаясь получить доступ к свойству beanaroo с любым подходом.
@RequestMapping("/**")
@Controller
public class MyController {
@RequestMapping(value = "/mymethod", method = RequestMethod.POST)
public ModelAndView myMethod(@RequestBody MyRequestClass request,
ModelMap modelMap,
HttpServletResponse response) {
...
}
}
например.
public class MyRequestClass {
@Autowired
private MyInjectedBean beanaroo;
}
Я также попытался определить прототип компонента этого класса в файле контекста моего приложения, но это также не дало никакого эффекта.
Ответ №1:
Вы можете, используя @Configurable
и AspectJ, но я бы на вашем месте не стал.
Я бы просто хотел, чтобы у компонента был метод, который принимает MyInjectedBean
в качестве параметра, и вызывал его из контроллера.
Комментарии:
1. Хорошая мысль … Это достаточно простое решение. Не знаю, почему это сразу не пришло мне в голову! Спасибо, Божо