程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> J2EE >> Java EE 6簡化開發總結:注解支持與Profile(1)

Java EE 6簡化開發總結:注解支持與Profile(1)

編輯:J2EE

【51CTO精選譯文】在51CTO之前的一系列Java EE 6的文章中,已經介紹了諸如CDIBean驗證等新技術,以及Web分片Facelets,無接口視圖,以及標准API等支持,通過這些特性可以更容易地開發企業或Web應用程序。此外,Java EE 6平台許多地方的安全性也得到了極大的增強,特別是注解現在可以用在更多類型的Java EE組件中了,用於依賴性注入的注解現在也標准化了,使可注入類具有更好的跨框架遷移特性。

注解支持更多類型的Java EE組件

Java EE 5引入了最簡單的基於注解的編程模型,在新版本中得到了擴展,可以支持更多類型的Java EE組件,如Servlet和JSF組件。例如,在Web應用程序中再也不用部署描述符定義Servlet了,你需要做的就是使用@WebServlet注解標記一個類,如:

  1. @WebServlet(name="CalculatorServlet", urlPatterns={"/calc", "/getVal"})
  2. public class CalculatorServlet extends HttpServlet{
  3. public void doGet(HttpServletRequest req, HttpServletResponse res) {
  4. ...
  5. }
  6. ...
  7. }

@WebServlet注解是Servlet 3.0提供的注解之一,下面是Servlet 3.0中提供的其它注解:

@WebFilter:在Web應用程序中定義Servlet過濾器;

@WebInitParam:指定所有必須傳給Servlet或Servlet過濾器的init參數;

@WebListener:注解一個監聽器,在特定Web應用程序上下文中獲得各種不同操作事件;

@MultipartConfig:在一個Servlet上指定時,表示Servlet的MIME類型是multipart/*。

JSF 2.0中注解支持的一個好處是簡化了配置托管Bean的方法,不再需要在JSF配置文件faces-config.XML中通過配置注冊一個托管Bean,現在你只需要使用@ManagedBean注解標記托管Bean,並使用RequestScope注解設置其范圍即可,如:

  1. import Javax.faces.bean.ManagedBean;
  2. import Javax.faces.bean.RequestScoped;
  3. @ManagedBean(name="userBean")
  4. @RequestScoped
  5. public class UserBean {
  6. private String name;
  7. public String getName() {
  8. return name;
  9. }
  10. public void setName(String name) {
  11. this.name = name;
  12. }
  13. public UserBean() {}
  14. }

JSF 2.0還提供了其它一些注解,如:

@ManagedProperty:將Bean的屬性標記為托管屬性;

@ResourceDependency:聲明組件將要使用的資源;

@ListenFor:允許組件將特定事件作為一個監聽器訂閱到組件;

@FacesConverter:將類注冊為一個Converter,也就是說,這個類可以執行Object到String,和String到Object的轉換;

@FacesValidator:將類注冊為一個Validator,也就是說,這個類可以執行驗證。

  • Java EE 6新特性之Servlet 3.0的異步處理
  • 在Java EE 6中使用JSF 2.0簡化頁面制作
  • EJB 3.1五大模式改進令Java EE 6更好用
  • Java EE 6引入的JPA 2.0四大新特性詳解
  • Hibernate之父建議開發者升級到Java EE 6
如果你想讓一個注解得到處理,無論是Servlet 3.0注解還是JSF 2.0注解,你需要將使用這些注解標記的類放到Web應用程序的WEB-INF/classes目錄下,也可以將這些類打包到一個jar文件,然後放到程序的WEB-INF/lib目錄下。

Web分片的例子中,我們在web.XML文件中使用<metadata-complete>元素通知Web容器是否要尋找注解,如果你將<metadata-complete>設為false,或者在文件中不指定<metadata-complete>元素,那麼在部署期間,容器必須掃描注解和Web分片,為Web應用程序構建有效的元數據。如果將<metadata-complete>設為true,將由部署描述符為Web應用程序提供所有的配置信息。在這個例子中,Web容器不會搜索注解和Web分片。

隨著對注解和新方法ServletContext的支持,web.xml對Servlet 3.0來說顯得可有可無,也就是說,在應用程序war文件中不再需要包括一個web.XML文件。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved