Spring MVC 2.5 混合使用注释和注释XML 配置,但 xml 被忽略
在我的 Spring MVC Web 应用程序中,我想将基于 xml 的配置与注释混合在一起: 我使用 @Controller
、@RequestMapping("bla.htm")
、@RequestParam
等注释来解析 HttpRequest 到
Controller
方法。因此我添加
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"/>
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"/>
<context:component-scan base-package="somePackage.controller"/>
到我的 dispatcher-servlet.xml
中。
但我的控制器有属性。这些属性可以通过 @AutoWired 注释注入。但我也定义了范围。所以我每个属性都有两个注释,这使得代码可读性不好。所以我想在我的 applicationContext.xml
文件中注入依赖项。
有没有办法可以保留注释驱动的请求映射,但使用 context.xml 文件进行依赖注入?或者只能使用注释或 xml 配置?
注意:我的依赖注入 bean 位于不同的 xml 文件中。
PS:
我应该提到,我使用Spring 2.5并且无法升级它。
In my Spring MVC webapplication I want to mix xml based configuration with annotations:
I use annotations like @Controller
, @RequestMapping("bla.htm")
, @RequestParam
etc. to resolve HttpRequest
s to Controller
Methods. Therefore I added
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"/>
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"/>
<context:component-scan base-package="somePackage.controller"/>
to my dispatcher-servlet.xml
.
But my controllers have attributes. Those attributes could be injected via @AutoWired
annotation. But I also have do define Scopes. So i would have two annotations per attribute, which makes the code bad readable. So I want to inject dependencies in my applicationContext.xml
file.
Is there a way I can keep the annotation-driven request-mapping but use context.xml files for Dependency Injection? Or is it only possible to use EITHER annotations OR xml configuration?
note: my beans for dependency injection are in a different xml file.
PS:
I should have mentioned, I use Spring 2.5 and can't upgrade it.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
不,
可以很好地处理 XML。但您需要删除
。更新:对于 Spring 2.5,这应该可以帮助您开始:
No,
<mvc:annotation-driven>
works fine with XML. But you'll need to get rid of the<context:component-scan>
.Update: with Spring 2.5, this should get you started:
是的,这当然是可能的。
要使用控制器注释,例如
@Controller
和@RequestMapping
,请确保放入然后简单定义您的控制器使用普通的 XML bean 表示法,例如:
这些 bean 引用也可以来自
web.xml
中定义的任何其他applicationContext.xml
。Yes this is certainly possible.
To use the controller annotations such as
@Controller
and@RequestMapping
make sure you putin your
<servletname>-servlet.xml
Then simple define your controllers using the normal XML bean notation such as:
These bean refs can come from any other
applicationContext.xml
defined in yourweb.xml
too.