哪个更适合专业使用(web.xml(部署描述符)或@WebServlet注释?[关闭]

Posted

技术标签:

【中文标题】哪个更适合专业使用(web.xml(部署描述符)或@WebServlet注释?[关闭]【英文标题】:Which is better to use in professionally (web.xml(Deployment descriptor) or @WebServlet annotation? [closed] 【发布时间】:2015-06-11 02:18:00 【问题描述】:

早期的 servlet 版本(小于 3.0),我们使用 web.xml 文件作为部署描述符: web.xml

<web-app>  
 <servlet>  
    <servlet-name>WebServlet</servlet-name>  
    <servlet-class>LoginServlet</servlet-class>  
  </servlet>   

  <servlet-mapping>  
    <servlet-name>WebServlet</servlet-name>  
    <url-pattern>/Login</url-pattern>  
  </servlet-mapping>   

  <welcome-file-list>  
   <welcome-file>index.html</welcome-file>  
  </welcome-file-list>  
</web-app>    

现在在tomcat 7.0和servlet v3.0的帮助下,我们使用@WebServlet注解。 例如:

@WebServlet(
    name = "AnnotatedServlet",
    description = "A sample annotated servlet",
    urlPatterns = "/Login"
)
public class LoginServlet extends HttpServlet 
    // servlet code here...

现在我的问题是哪个更适合专业使用? 需要你诚实的建议。 提前致谢。

【问题讨论】:

【参考方案1】:

这取决于你的需要:

如果您希望将所有配置内容保存在一个地方,请选择web.xml; 否则,如果您(和我一样)认为 XML 配置文件在我们处理大量声明和配置项时变得过于繁重,请使用注释。

我个人更喜欢注解,因为它属于我的 Java 代码,我发现自己在上面处理大型 XML 配置文件(也许这里不是你的情况)很无聊,对我来说需要很多时间才能得到我在寻找什么(这是我个人的看法)。

另一方面,后者无关紧要,因为当应用程序运行良好时,没有人会问你为 servlet 声明选择了什么。

【讨论】:

【参考方案2】:

这个问题比较主观。有些人喜欢将行为与配置分开,因此更喜欢使用 XML 配置。就我个人而言,我更喜欢使用注解,因为当我阅读代码时,我可以看到配置就在那里。选择你喜欢的风格,并坚持下去。虽然可以混合配置样式,但我建议保持一致并使用一种样式。

【讨论】:

【参考方案3】:

让我们这样说吧:如果一个注解提供了功能并且本身就充当了一个注释,并且没有将代码绑定到某个特定的过程以便在没有这个注解的情况下正常运行,那么就去使用注解.例如,标记为事务性的事务性方法不会杀死其操作逻辑,并且还可以用作良好的代码级注释。否则,这些信息可能最好用 XML 表示,因为虽然它最终会影响代码的运行方式,但不会改变代码的主要功能,因此不属于源文件。

所以这里我推荐你xml配置。

【讨论】:

【参考方案4】:

在我看来,最好的方法是坚持一种风格,这样新程序员就不会对其中一种方式感到困惑。

如果您的容器支持注释,请坚持使用,但要使其成为规则(您可以为整个公司制定约定)。

您应该考虑的另一件事是,使用 XML 配置文件,您的所有配置都在一个文件中,无需浏览所有文件即可更轻松地理解系统。

【讨论】:

以上是关于哪个更适合专业使用(web.xml(部署描述符)或@WebServlet注释?[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

Deloyment Descriptor web.xml

Descriptor&web.xml

MSI vs nuget包:哪个更适合持续交付?

Deployment descriptor

Deployment descriptor

哪个更适合 Java 开发托管:Aptana?谷歌应用引擎?切片主机?