上篇文章對Java的基本概念作了簡要總結(http://www.cnblogs.com/2018/archive/2011/04/05/1993163.html),本文把對java EE的學習過程總結一下。
基礎
https://javaeetutorial.dev.java.net/files/documents/7232/141115/javaeetutorial6.zip
這個裡面有介紹文檔和例子代碼,這些例子在netbeans可直接開啟,參考文檔部署和運行
這個文檔介紹了整個Java EE的基本概念和示範例子,熟悉這個基本對Java EE的概念就比較瞭解了。
Java EE的基本概念
實際的開發中,只要理解了下面的幾個圖表和規範,只要針對具體的規範和標準進行學習即可。因為本身Java EE規範範圍很大,我們實際中用的只是其中的部分。
【以下是做的一些圖書資料記錄,我認為很重要】
Java EE is based on standards.
Containers are Java EE runtime environments that provide certain services to the components they host such as life-cycle management, dependency injection, and so on. These components use well-defined contracts to communicate with the Java EE infrastructure and with the other components.
containers
Applet containers are provided by most web browsers to execute applet components. When you develop applets, you can concentrate on the visual aspect of the application while the container givesou a secure environment. The applet container uses a sandbox security model where code executed inhe “sandbox” is not allowed to “play outside the sandbox.” This means that the container prevents anyode downloaded to your local computer from accessing local system resources, such as processes oriles.
The application client container (ACC) includes a set of Java classes, libraries, and other files required to bring injection, security management, and naming service to Java SE applications (Swing,atch processing, or just a class with a main() method). ACC communicates with the EJB container usingRMI-IIOP and the web container with HTTP (e.g., for web services).
The web container provides the underlying services for managing and executing web componentsservlets, EJBs Lite, JSPs, filters, listeners, JSF pages, and web services). It is responsible for instantiating,nitializing, and invoking servlets and supporting the HTTP and HTTPS protocols. It is the containersed to feed web pages to client browsers.
The EJB container is responsible for managing the execution of the enterprise beans containing theusiness logic tier of your Java EE application. It creates new instances of EJBs, manages their life cycle, and provides services such as transaction, security, concurrency, distribution, naming service, or theossibility to be invoked asynchronously.
Services
Containers provide underlying services to their deployed components.
• Java Transaction API (JTA): This service offers a transaction demarcation API usedby the container and the application. It also provides an interface between thetransaction manager and a resource manager at the Service Provider Interface(SPI) level.
• Java Persistence API (JPA): Standard API for object-relational mapping (ORM). With its Java Persistence Query Language (JPQL), you can query objects stored in the underlying database.
• Validation: Bean Validation provides a class level constraint declaration and validation facility.
• Java Message Service (JMS): This allows components to communicate asynchronously through messages. It supports reliable point-to-point (P2P) messaging as well as the publish-subscribe (pub-sub) model.
• Java Naming and Directory Interface (JNDI): This API, included in Java SE, is used to access naming and directory systems. Your application uses it to associate (bind) names to objects and then to find these objects (lookup) in a directory. You can look up datasources, JMS factories, EJBs, and other resources. Omnipresent in your code until J2EE 1.4, JNDI is used in a more transparent way through injection.
• JavaMail: Many applications require the ability to send e-mails, which can be implemented through use of the JavaMail API.
• JavaBeans Activation Framework (JAF): The JAF API, included in Java SE, provides a framework for handling data in different MIME types. It is used by JavaMail.
• XML processing: Most Java EE components can be deployed with optional XML deployment descriptors, and applications often have to manipulate XML documents. The Java API for XML Processing (JAXP) provides support for parsing documents with SAX and DOM APIs, as well as for XSLT. The Streaming API for XML (StAX) provides a pull-parsing API for XML.
• Java EE Connector Architecture (JCA): Connectors allow you to access EIS from a Java EE component. These could be databases, mainframes, or Enterprise Resource Planning (ERP) programs.
• Security services: Java Authentication and Authorization Service (JAAS) enables services to authenticate and enforce access controls upon users. The Java Authorization Service Provider Contract for Containers (JACC) defines a contract between a Java EE application server and an authorization service provider, allowing custom authorization service providers to be plugged into any Java EE product.
• Web services: Java EE provides support for SOAP and RESTful web services. The Java API for XML Web Services (JAX-WS), replacing the Java API for XML-based RPC (JAX-RPC), provides support for web services using the SOAP/HTTP protocol. The Java API for RESTful Web Services (JAX-RS) provides support for web services using the REST style.
• Dependency injection: Since Java EE 5, some resources (datasources, JMS factories, persistence units, EJBs…) can be injected in managed components. Java EE 6 goes further by using CDI (Context and Dependency Injection) as well as the DI (Dependency Injection for Java) specifications.
• Management: Java EE defines APIs for managing containers and servers using a special management enterprise bean. The Java Management Extensions (JMX) API is also used to provide some management support.
• Deployment: The Java EE Deployment Specification defines a contract between deployment tools and Java EE products to standardize application deployment.
參考資料
Java EE 6規範中文版.chm
Java+EE+6+API+Specifications.CHM
javadocee6.zip
servlet-2_3-fcs-docs.zip
javaeetutorial6.zip[The Java EE 6Tutorial]
The Java EE 6 Tutorial Basic Concepts, 4th Edition
Beginning Java EE 6 with GlassFish 3, 2nd Edition
這些資料在網上都可以找到
例子實戰
http://netbeans.org/kb/docs/javaee/ecommerce/design.html
很實用的一個例子,覆蓋了多個方面的內容,理解了這個基本對如何實施一個Java EE的項目就有一個比較清晰的概念了。
Java EE發展了十幾年,相關的資料和開源架構等浩如煙海,我們只要把握這些基礎的概念,然後結合相應的執行個體學習和開發改造,在項目中就可以順利應用了。