Per Spring 3 document, The IoC container, аннотация @Named
является стандартом, эквивалентным аннотации @Component
.@Named аннотация в Spring MVC
С @Repository
, @Service
и @Controller
являются все @Component
, я попытался использовали @Named
для всех из них в моем приложении Spring MVC. Он работает нормально. Но я обнаружил, что замена @Controller
кажется ошибкой. В классе контроллера первоначально было
@Controller
public class MyController{
...
}
Это нормально работает. Когда я изменил @Controller
к @Named
@Named
public class MyController{
...
}
Он потерпел неудачу с ошибкой:
"No mapping found for HTTP request with URI ...".
Но если я добавил @RequestMapping
к классу, как следовать
@Named
@RequestMapping
public class MyController{
...
}
Это будет работать, как ожидалось.
Для @Repository
и @Service
, я могу просто заменить их @Named
без проблем. Но замена @Controller
требует дополнительной работы. Есть ли что-то, что мне не хватает в конфигурации?
Означает ли это, что я могу спокойно использовать '@ Named' для замены '@ Component' для общей инъекции bean-компонентов, но мне все еще нужно использовать' @ Repository', '@ Service' и' @ Controller' в специальных функциях Spring MVC? –
@dino Добро пожаловать. Подумайте о принятии этого ответа, если вы не хотите ждать дополнительных ответов с другими подробностями. –