This article was written in my research J2SE, J2EE, after nearly three years. 3 years ago I studied the J2SE's Swing, Applet, Net, RMI, Collections, IO, JNI ... ... of the J2EE, JDBC, Sevlet, JSP, JNDI ... .. I soon found that these seem to be too superficial: the first, I found know only their java to provide a large number of API, can not use it very well; Secondly, I did not learn the knowledge of any help to write programs, then I am only able to write a few pages of small program. For this naive idea of the JDK in my Collections, Logger, IO ... .. the source code, found that the world really is amazing, even with such a master - the most basic use of java language syntax, create these Excellent Framework.
From then on out of control, I continued to study part of J2EE, but also found that this is a direction I do not understand (there have been stagnant for half a year), why only the interface, not achieved ah! Later, as has been using Tomcat, Derby and other software suddenly found: Oh! original J2EE is just a standard is only a framework. The true realization of a different provider.
Then I studied MOM4J, OpenJMS, Mocki, HSQLD ... ... found that the implementation is J2EE ah! Original software could even such a complex, would be to do so .... Specification and implementation is how to be one it? By the above findings : The original J2EE actually have too much behind the idea, too many similarities! these similarities is the idea behind - design patterns! (very lucky, I learn java, I generally learn java in one direction on will read a book about design patterns! very fortunate enough to enjoy a little time to really Zhidao that yes why!) model is one kind of Siweifangshi Qi Shi, Li Nian is a ... ... model that will be used in the Cheng Xu Zhong, Zhi You from a real project in order to understand the mode of meaning ... ...
The more we study and found that the less know! In the learning process find some useful, it is worth learning the open source projects, recommended to everyone here today.
1, JavaServlet and JSP direction
Many people are entering from the J2EE Servlet and JSP's. It is the J2EE presentation layer for rendering server to the client content. J2EE very important aspect. Not wordy it! We all know! The following recommendation to start it!
1. Jakarta Tomcat
Apache Foundation's free open source Serlvet container, it is the Jakarta project, a core project, the Apache, Sun and other companies (both IT sector predators Oh) and individuals co-developed with all Servlet and Jsp world's most containers are to use it Oh! As Sun's involvement and support, the latest Servlet and Jsp specification always be reflected in the Tomcat.
But it is a very, very full of Serlvet container, all the source code may be 4000, for the beginner or the veteran may still be relatively normal big! Is recommended in your ability to study! Download: http://jakarta.apache. org / tomcat / index.html
The following two smaller recommend it!
Jetty is an open source HTTP server and Java serverlet container. Source code is only 1000 or so, it is worth examining. Http://jetty.mortbay.com/ interested can go to download to see. I have turned a bit, but there is no time. (All of a blog, and other blog in shape, and content integrity, and do another event I am interested now!)
Jigsaw is W3C development of HTTP, Java-based servers, providing a blueprint for the future development of Web technology. W3C know it! (Too famous, and many of its standards are set! Free often go see it!) Download URL: http://www.w3.org/Jigsaw code only 1000 or so.
Jo! Is a pure Java implementation of the Servlet API 2.2, JSP 1.1, and HTTP/1.1's Web server. Its features include support for servlet tag, support for SSI, advanced thread management, virtual hosting, data caching, automatic compressed transfer text or HTML files, internationalization support, automatically re-load the Servlet, Jsp, automatically re-load the web project file ( WARs), support hot deployment of WAR and a Swing console. jo! can be used as jboss and jakarta avalon-phoenix of web containers. Download http://www.tagtraum.com/. I strongly recommend you research study of the software before Tomcat, mainly in the much smaller than the Tomcat, and the developer to provide a more full manual. The direction of these two also can be a!
Second, JDBC direction
Many people like JDBC, the database you! Very profound thing, one can fool people. In fact, you are really the realization of the database found, the interface is really too simple, too perfect! To design such a good framework still need to learn. Following the realization of several databases on the recommendation it!
1. Hypersonic SQL
Hypersonic SQL the more popular open source database, the direction of the development of pure Java relational database. If not JDBC compliant, JDBC many advanced features are not supported, but fortunately supports ANSI-92 standard SQL syntax. I recommend it mainly to its 1600 or so less code, so the database is worth a small study, and his account of the space is small, only about 160K, the database engine has a fast. Recommended that you first open source database. Download: http://hsqldb.sourceforge.net/.
2. Mckoi DataBase
McKoiDB and Hypersonic SQL similar, it is the GPL's license the development of pure Java database. He is the use of JDBC Driver JDBC version 3 of Specifaction. He is also the follow SQL-92 standard, also try to support the new SQL features, and supports the functions of Transaction. 2 can choose one! Download: http://mckoi.com/database/.
3. Apache Derby
I suggest learning to use Java's database Apache Derby, research database want to be a database expert I suggest you first study the Apache Derby. Apache Derby is a high-quality, development of pure Java embedded relational database engine, IBM ® be donated to the Apache open source community, while IBM's product CloudSpace its corresponding product. Derby is based on the file system with a high degree of portability and is lightweight, which makes it very easy to release. Main is not a good business users interface, does not have too many features. But for us to use the database of the database is very useful. For small and medium enterprises be honest you do not use any Oracle, SqlServer, and with Derby on it, let alone open source too! Long as it can play its strengths are Burongyia! Download: http://incubator. apache.org / derby.
However, there is not enough capacity in the former, do not try to read it! Comments and source code is about 15,000, the amount I read a year! Can read down and to really understand it, the absolute master! You can read the source code only Derby two possibilities: 1. You become a leading expert - at least this part of the database; 2. you're crazy. Select it!!!! As my own so I first select a Hypersonic SQL database first study, to be settled, and then continue to examine the Derby! Not that year, the amount of reading you! I can of 3 years to study how to do a database, but it is still very much worth it! some people engage in IT life itself did not do anything, did not study other people's stuff!
As an IT lagging behind in a number of years engaged in IT in the downstream industries, "outsourcing" the country's IT practitioners, my view is the first study other people's good stuff for me! You can research others first and then digestion, learning to own use! bent on behind closed doors is a great pity!
3, JMS direction
May all of us for JMS is a relatively unknown direction! Fact JMS is a relatively easy to understand, easy to use directions. Mainly Java Message Service, API is quite simple. However, in a wide range of enterprise applications. Here are just a few now!
MOM4J is a fully realized JMS1.1 messaging middleware specification and backward compatible JMS1.0 and 1.02. It provides its own message processing relational data storage to make it independent of language, its clients can use any language development. It can be a little sparrow, it is all too simple to achieve! It contains a name server, a message server, while continuing to provide their own layer. Design is quite ingenious, fully using the operating system file system design concept. Very little code, 250 pages or so, I recently wrote that the source code to read book, and hope next year to meet with everyone! Download: http://mom4j.sourceforge.net/index.html.
OpenJMS is an open source Java Message Service API 1.0.2 Specification of implementation, which includes the following features:
1. It supports point to point (point-to-point) (PTP) model and the publish / subscribe (Pub / Sub) model.
2. To support synchronous and asynchronous messages.
3. JDBC persistence manager to use a database table to store the message.
4. Visual management interface.
5. Applet support.
6. To work with Jakarta Tomcat Servlet container such combination.
7. To support RMI, TCP, HTTP and SSL protocol.
8. Client-side validation.
9. To provide a reliable message transport, transaction and message filtering.
The direction of a good open source projects JMS! I am currently also studying its source code! Learn it the way of JNDI implementation, and network traffic details. This is my JMS direction of the second open source project. The amount of code 1600 about it! Download: http://openjms.sourceforge.net/index.html
ActiveMQ is an open source release based on Apache 2.0 licenced and implements JMS 1.1. It can with Geronimo, lightweight containers and any Java application to seamlessly together. Apache's main use and distribution can be arbitrary Oh! Individuals prefer Apache's source code! Download: http://activemq.codehaus.org/
JORAM ObjectWeb a similar openJMS distributed under the JMS messaging middleware. ObjectWeb's products are also very worthy of study! Now I will give you another ObjectWeb products. Download: http://joram.objectweb.org/
I personally recommend: OpenJMS and ActiveMQ!
4, EJB direction
EJB a more "advanced" direction. Sun, once this strike out in the field of distributed computing. However since the emergence of Spring, Hibernation ... ... seems to decline after it! This direction is also less open source alone, the main EJB is and JNDI, JDBC, JMS, JTS, JTA is rarely combine separate. However, if the following two recommendations should download other libraries.
ObjectWeb's a new project, a lightweight EJB3 container, although not yet officially released, but already from their subversion repository can be detected in the code. Code less than 600 pages or so familiar with it on network programming, architecture, RMI, containers better understanding of the state design! That is learned and can learn from other EJB design why not Oh! Download: http:/ / easybeans.objectweb.org /
OpenEJB is a pre-generated, self-contained, portable EJB container system that can be inserted into any server environment, including application server, Web servers, J2EE platforms, CORBA ORB and the database and so on. OpenEJB to be used for Apple's WebObjects. Sounds good, I do not studied. Do not know I would not recommended. Download: http://www.openejb.org/
5, J2EE container
On the interview so much, all J2EE various directions. In fact, J2EE is a specification, J2EE product provider must provide the general requirements of their professional realization. The implementation itself is the J2EE container. Market, a lot of the popular J2EE container, in the field of popular open source only a few, very few. The most famous is JBoss.
In the area of J2EE application server, Jboss is the fastest growing application server. Follow the business-friendly as Jboss distribution LGPL license, and by the open source community development, which makes Jboss widely popular. In addition, Jboss application server also has many outstanding features.
First, it will have a revolutionary JMX microkernel service as the bus structure;
Second, it is itself service-oriented architecture (Service-Oriented Architecture, SOA);
Third, it also has a unified class loader, which enables the application of hot deployment and hot unloading capacity. Therefore, it is highly modular and loosely coupled. Jboss user's positive feedback tells us, Jboss Application Server is a robust, high-quality, but also has good performance. To meet the growing needs of the enterprise market, Jboss Inc. started in 2003 launched a 24 * 7, professional-level product support services. Meanwhile, to expand the enterprise market, Jboss, Jboss company also signed a number of channel partners. For example, Jboss company with HP, Novell, Computer Associates, Unisys, are all partners.
In June 2004, Jboss Inc., Jboss application server through the Sun's J2EE certification. This is the history of Jboss application server by far the most important milestone. At the same time, Jboss has been followed by the latest J2EE specification, and in some technology to lead the development of J2EE specification. Therefore, whether in business or in the open source community, Jboss, becoming the first J2EE 1.4 certified by the mainstream application server. Now, Jboss application server has truly developed into an enterprise-strength (ie, support for mission critical grade applications) and application servers.
Jboss 4.0 J2EE certification as one of the important achievements, in September 2004 has been successfully posted. Meanwhile, Jboss 4.0 also provides Jboss AOP (Aspect-Oriented Programming, Aspect Oriented Programming) component. Recently, AOP attracted a lot of developer attention. It provides a new programming model allows users to aspects (eg, services) from the bottom to separate the business logic, which can shorten the software development cycle. Individual users can use Jboss AOP, Jboss application server that is able to use it outside. Alternatively, users can also use it in application server environments. Jboss AOP 1.0 has been released in October 2004. Famous now! Can download a use click to download Address: http://www.jboss.org/
The use of information on the JBoss very much, even more than than commercial software. Have the opportunity to study it!
JOnAS is an open source J2EE implementation, development associations in ObjectWeb. Integration of Tomcat or Jetty as its Web container, to ensure compliance with Servlet 2.3 and JSP 1.2 specifications. JOnAS server relies or to achieve the following Java API: JCA, JDBC, JTA, JMS, JMX, JNDI, JAAS, JavaMail. Download: http://jonas.objectweb.org/
Is the Apache Software Foundation Apache Geronimo open source J2EE server that integrates many advanced technologies and design concepts. Most of these technologies and concepts from the individual projects, configuration and deployment model are different. Geronimo can these projects and methods of configuration and deployment is fully integrated into a unified, user-friendly model. Meet the standards as J2EE server, Geronimo offers a rich set of features and has no obligation to Apache license, with "immediate deployment" type J2EE 1.4 containers of all kinds of advantages, including:
1. Meet J2EE1.4 standard servers.
2. Pre-integrated open source project.
3. Reunification integration model.
4. Scalability, manageability and configuration management functions.
I have been relatively recommend Apache products. Major is free to use any. Download: http://incubator.apache.org / projects / geronimo /
You may say so much bored of! Is not a lot a lot ah! Is not true, we do not too much too much! Not too much too much. Whether you are not a J2EE expert, or J2SE master, some things you should definitely very smart. For example: 1.Java the Collections Framework is java data structure, and not only thoroughly understand it, but also to extend it as needed, to use their own ideas to create a data structure. 2. Network programming will certainly have to be right, since many procedures are now and not on the same machine, and not how the network line Oh! 3.IO will certainly be it! Do not have your program input and output data, ah! Whole IO package plus NIO also has more than 600 pages of source code Oh! 4.JDBC you want to be right! database will not, in your enterprise applications in your data where it saved to ah! file - so behind it! typically have not learned J2EE. Although the underlying database file is saved with. 5.Serverlet, JSp do if you do web site, it must be. Ask you a simple question, how the page page ah! Specific methods, statements in this article it! 6. Ant should learn it! Java language publishing tools similar to c in the make tool. 7.JUnit used it! Unit test software. Do not ah! Your software will not bug! You cow! (Recommended we study its source code, very useful framework, including a large number of design patterns, source code less than 100 pages! Read only sigh - master is expert) friends carefully you can see many of you use the IDE tools are JUnit Oh! is it.
And everything has just begun! Are interested, you may need a framework of database connection pool, such as: C3P0, Jakarta DBCP, DBPool .... Can study the J2EE Framework Spring ... .... Web Framework Struts ... ... persistence framework Hibernate .... . and even development tools Eclipse ... .. Sun-led peer communication JXTA ... .. reporting tools JFreeChart, JasperReports ... .. distributed network programming, CORBA, network communication JGROUPS, XML parsing xerces ... .. (inadvertently Open source has entered between your computer and do not believe ah! your JDK installation directory jdk1.6.0 src com sun org apache is Xerces, an XML parsing of the well-known open source projects)
Anyway I suggest to start from the basic, learned it J2SE, familiar with its source, an accurate understanding of their design, and then separately break J2EE - not a bite to eat a fat man! Not do too much greed wide! Down to earth on it !