出于好奇,我想知道为什么Spring版本附带servlet 2.3 api而不是servlet 2.5规范?我下载了Spring 3.0,我看到了servlet 2.3 api。
答案 0 :(得分:1)
我认为Spring 3.0与servlet 2.3兼容。您可以随时使用较新的版本,因为Servlet规范是向后兼容的。
E.g。当使用maven时,只需显式添加servlet 3.0依赖(必须使用provided
范围),它将覆盖传递2.3依赖。
答案 1 :(得分:0)
你经常会看到Spring指定了所有库的依赖关系,并且很多时候 - 在框架本身中,Spring使用反射来调用一系列版本的库中的任意API 。框架的长度使您可以轻松地面对不一致的API,因为消费者是惊人的。
当两个API足够不同以至于可以将它们视为两个不同的导入时,这是一回事,例如,Hibernate 2与Hibernate 3.但即使在Hibernate 3.x版本中,Spring也知道有一些微妙的API中断和合作。在Spring 3.1中,应该有Hibernate 4支持,这是另一个与Hibernate 2或3完全不同的API,所以你可以期待它也支持该版本。如果Spring的依赖项在Maven描述符中是“可选的”,那么最好的东西!
通过使用Spring的Hibernate 3支持,无论您使用哪种Hibernate 3,都可以获得一个理智,通用的界面。因此,如果您看到Spring指定旧版本的稳定API(如servlet规范)的情况,请不要担心,它也可能支持更新版本。例如,Spring 3.1将更全面地支持servlet 3。