首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> J2EE

Java EE 6 增強擴展性:Web 片段與可插拔共享框架

     編輯:J2EE

Servlet 3.0 透過 Web 片段模組化部署描述符,支援框架零配置整合

傳統 web.xml 需手動註冊第三方框架(如 Spring MVC、Wicket),導致檔案龐大難維護。Web 片段 將 web.xml 邏輯分段,每個框架自行定義所需 Servlet、監聽器等:

<web-fragment>
  <servlet><servlet-name>myFrameworkServlet</servlet-name>...</servlet>
  <listener><listener-class>myFramework.myFrameworkListener</listener-class></listener>
</web-fragment>

web-fragment.xml 置於框架 JAR 的 META-INF。web.xml 的 <metadata-complete> 控制容器是否掃描片段與註解。

描述符處理順序控制

Servlet 3.0 支援絕對排序 (<absolute-ordering> 在 web.xml) 與相對排序 (<ordering> 在 web-fragment.xml),決定 Servlet/監聽器/過濾器調用順序。

可插拔共享框架

新介面 ServletContainerInitializer 允許框架在容器啟動時程式化註冊元件:

@HandlesTypes(AnnotationA.class)
public class AServletContainerInitializer implements ServletContainerInitializer {
    public void onStartup(Set<Class<?>> c, ServletContext ctx) {
        ServletRegistration reg = ctx.addServlet("AServlet", "com.foo.AServlet");
        reg.addMapping("/foo");
    }
}

容器透過 JAR 服務 API 發現實作,@HandlesTypes 指定處理的註解類型,WEB-INF/lib 下符合條件的類別將傳入初始化器。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved