为什么不推荐使用Spring MVC配置支持XML配置?

时间:2013-10-10 02:33:14

标签: java spring spring-mvc struts2

Spring MVC主要使用注释来配置其控制器,据我所知,在Spring中配置Controller而没有Annotions(只有XML)的唯一方法是扩展AbstracController(或类似的Controller类),目前所有这些类都是对于Spring 3已弃用。

虽然我认为放弃对这个类的支持是一个好主意,主要是因为扩展这个类会创建几乎不依赖Spring作为依赖的控制器,我不明白为什么Spring不提供类似Struts Actions的配置(Struts 2中的操作不会扩展任何奇怪的类,因此它们不具有Struts的任何依赖性)

为什么Spring MVC不能通过XML提供像Struts 2 Actions这样干净的POJO样式配置?

为什么要使用丑陋的注释放弃对MVC上的XML配置的支持?为什么不把它放在所有Spring Proyects中呢?

1 个答案:

答案 0 :(得分:5)

XML / POJO方法的主要问题在于,无法通过查看代码来判断出特殊魔法正在发生。

而不是看

@SomeAnnotation   <<-- Oh, golly there is something special happening here.
java code... 

你看

Java code    <<-- special magic hidden in XML file (or not, no way to tell)
             <<-- are these linked? no idea..
             <<-- is something going on? let me go and search....

如果源代码发生更改,则XML可能(或可能不会)不同步。

通过注释,您可以同时更新java代码和弹簧注释 是的,它很混乱,但至少很容易同步这两个。

当它们在你的脸上时,注释很难理解。如果它们甚至看不到,那么我们非愤怒的开发者的精神负担实在太大了。

  

为什么不放弃所有Spring项目呢?

那不是那么甜蜜......

  

使用丑陋的注释?

显然有问题:Is there a way to hide annotations in Eclipse?
答案是:https://stackoverflow.com/a/2569646/650492
有点......这有帮助吗?