我有一个名为MyController
的Spring MVC @Controller
。我可以在其构造函数中注入Spring Environment
:
public MyController(Environment environment) {
…
}
但是,如果我尝试将相同的Environment
注入到请求处理程序中,它会失败:
@GetMapping
public String getFoo(Environment environment)
错误消息为:No primary or single unique constructor found for interface org.springframework.core.env.Environment
我注意到,我可以在处理程序中注入HTTP servlet请求,没有问题:
public String getFoo(HttpServletRequest request)
为什么我可以在控制器构造函数中注入Environment
,而不能在处理程序方法中注入?
在文档中,我可以从哪里获得只能在一个地方或另一个地方注入的东西的列表?
1条答案
按热度按时间fnvucqvd1#
“注解控制器”
而“dependency injection”,auto-wiring(as
Environment
)是“spring infrastructure”中非常通用的部分(spring-context,-beans,-core)。在顶部!:)