This article is written in my research on J2SE and J2EE in the last three years. In the past three years, I have studied J2SE Swing, Applet, Net, RMI, Collections, IO, JNI ...... The JDBC, Sevlet, JSP, and JNDI of J2EE are studied ..... Soon I found out that this seems too superficial: first, I found that I only know a large number of Apis provided by java and cannot use it well. Second, I have never learned any knowledge that helps write programs. At this time, I can only write a few pages of small programs. Out of this naive idea, I studied Collections, Logger, IO... in JDK ..... The source code of java creates these excellent frameworks with the most basic syntax of java.
Since then, I continue to study the J2EE part and find that this is a direction that I cannot understand at all (I have been stuck for half a year). Why is it that only interfaces are not implemented! Later, because I had been using Tomcat, Derby, and other software, I suddenly found out: Oh! Originally, J2EE was only a standard and only an architecture. The real implementation is provided by different providers.
Then I studied MOM4J, OpenJMS, Mocki, HSQLD ...... We found that this is the implementation of J2EE! It turns out that the software is so complicated that it will actually do so .... How can norms and implementations be integrated? Through the above research, we found that there are too many ideas and too many similarities behind J2EE! These similarities are the concept behind it-design patterns! (Fortunately, when I was learning java, I usually read some books about design patterns in one direction of java! I'm lucky to know why when I can appreciate it !) In fact, the model is a way of thinking, a concept ...... Patterns must be applied to programs. Only real projects can understand the meaning of patterns ......
The more you learn, the less you learn! We have found some open-source projects that are useful and worth learning. We recommend them to you today.
I. assumervlet and JSP
Many people step into J2EE from Servlet and JSP. It is the J2EE presentation layer used to present content on the server to the customer. J2EE is very important. No! Everyone knows this! Let's start to recommend it!
1. Jakarta Tomcat
The free open-source Serlvet container provided by the Apache Foundation is a core project of the Jakarta project, which is developed by Apache, Sun, and other companies (all of which are big itwriters) developed together with individuals, most Servlet and Jsp containers around the world use it! Due to Sun's participation and support, the latest Servlet and Jsp specifications can always be reflected in Tomcat.
However, it is a very comprehensive Serlvet container. The source code may contain 4000 pages, which may be relatively large for beginners or general veterans! If you have the ability to recommend research! Download address: http://jakarta.apache.org/tomcat/index.html
We recommend two smaller ones!
2. Jetty
Jetty is an open source HTTP server and Java serverlet container. The source code is only about 1000 pages, which is worth studying. If you are interested, visit http://jetty.mortbay.com/download. I once flipped through, but there is no time. (It's all on the blog. When the blog is finalized and the content is complete, let's do what I love !)
3. Jigsaw
Jigsaw is an HTTP developed by W3C. It is a Java-based server that provides a blueprint for the future development of Web technology. W3C knows! (It's so famous. Many standards are developed by it! Check it out whenever you have time !) Http://www.w3.org/Jigsaw code is only around 1000 pages.
4. Jo!
Jo! Is a pure Java Web server that implements Servlet API 2.2, JSP 1.1, and HTTP/1.1. Its features include servlet tag, SSI, advanced thread management, virtual host, data cache, automatic compression of text or HTML files for transmission, international support, automatic reload of Servlet, Jsp, automatically reload web project files (WARs), supports hot WAR deployment and a Swing console. Jo! It can be used as a web Container of jboss and jakarta avlon-phoenix. Http://www.tagtraum.com /. I strongly recommend that you study the software before studying Tomcat, mainly because it is much smaller than Tomcat, and developers provide a comprehensive manual. You can study both of them in this direction!
Ii. JDBC direction
Many people like JDBC and databases! Very profound things can be fooled once you hear it. In fact, after you have actually studied the implementation of the database, you will find that the interface is really too simple and perfect! To design such an excellent framework, you still need to learn. We recommend the implementation of several databases below!
1. Hypersonic SQL
Hypersonic SQL is a relational database developed in Java. It seems that JDBC is not compatible. Many advanced features of JDBC are not supported. Fortunately, ANSI-92 standard SQL syntax is supported. I recommend it mainly because its code is about 1600 pages less. Such a small database is worth studying, and it occupies a small amount of space, which is only about 160 K and has a fast database engine. We recommend that you use the first open source database. : Http://hsqldb.sourceforge.net /.
2. Mckoi DataBase
McKoiDB is similar to Hypersonic SQL. It is a pure Java-developed database of GPL license. The JDBC Driver uses the Specifaction of JDBC version 3. He also follows SQL-92 standards, tries to support new SQL features, and supports Transaction features. You can select either of them! : Http://mckoi.com/database /.
3. Apache Derby
I recommend that you use Apache Derby to learn a Java database and study the database to become a master database. I suggest you study Apache Derby first. Apache Derby is a high-quality, pure Java-developed embedded relational database engine, IBM®Donate it to the Apache open source community, and IBM's product CloudSpace is its product. Derby is based on a file system and is highly portable and lightweight, making it easy to publish. The main reason is that there is no good interface for commercial users, and there is not much of it. However, it is extremely useful for us to use databases and research databases. To be honest with small and medium-sized enterprises, you should not use Oracle or SqlServer. You can use Derby. What's more, it is open-source! It's not easy to give full play to your strengths! Download address: http://incubator.apache.org/derby.
But do not try to understand it before you have enough capabilities! Comments and source code about 15000 pages, I read a year! Able to read it and truly understand it, absolutely good master! There are only two possibilities for you to read the Derby source code: 1. You become the top master-at least the database part; 2. You are crazy. Select it !!!! As a self-developed database, I chose a database such as Hypersonic SQL for further research! Isn't it the amount of reading in a year! I can study how to create a database for three years! Some people have never done anything for the rest of their lives, nor have they studied anything else!
As an IT practitioner in a country that has been behind other countries for several years and is engaged in the IT downstream industry "outsourcing", I think IT is better to study other people's excellent things first! You can study others first, then digest and learn for yourself! It is a pity that we are dedicated to building a car!
Iii. JMS direction
JMS may be a strange direction for everyone! In fact, JMS is easy to understand and get started. It is mainly a Java Message Service, and the API is quite simple. However, it is widely used in enterprises. Here are a few introductions!
1. MOM4J
MOM4J is a message-oriented middleware that fully implements JMS1.1 specifications and is backward compatible with JMS1.0 and 1.02. It provides its own message processing storage so that it is independent from Relational Data and language, and its client can be developed in any language. It can be regarded as a sparrow, which is easy to implement! It contains a naming server, a message server, and its own continuity layer. The design is also clever, fully utilizing the concept of File System Design in the operating system. There are few codes, about 250 pages. Recently I am writing the source code reading book for this implementation. I hope to meet you next year! Download address: http://mom4j.sourceforge.net/index.html.
2. OpenJMS
OpenJMS is an open-source Java Message Service API 1.0.2 standard implementation, which includes the following features:
1. It supports both the point-to-point (PTP) model and the Pub/Sub Model.
2. synchronous and asynchronous message sending are supported.
3. JDBC persistence management uses database tables to store messages.
4. Visual Management Interface.
5. Applet support.
6. can be combined with Servlet containers such as Jakarta Tomcat.
7. Support for RMI, TCP, HTTP, and SSL protocols.
8. Client verification.
9. provides reliable message transmission, transactions, and message filtering.
A good open source project for JMS! I am also studying its source code! By the way, we can study the implementation of JNDI and the details of network communication. This is the second open-source project I studied in JMS. About 1600 pages of code! : Http://openjms.sourceforge.net/index.html
3. ActiveMQ
ActiveMQ is an open source code released based on Apache 2.0 licenced and implements JMS 1.1. It can be seamlessly integrated with Geronimo, lightweight containers, and any Java application. Apache can be used and released as needed! I personally prefer Apache source code! : Http://activemq.codehaus.org/
4. JORAM
JORAM is similar to the JMS message middleware distributed under ObjectWeb. ObjectWeb products are also worth studying! Next I will give you another ObjectWeb product. : Http://joram.objectweb.org/
My personal recommendations: OpenJMS and ActiveMQ!
Iv. EJB direction
EJB is a relatively "advanced" direction. Sun has been hitting the ground in the distributed computing field. But since Spring, Hibernation ...... Then it seems to be gone! This direction is also less open-source. The main reason why ejbs are combined with JNDI, JDBC, JMS, JTS, and JTA is rarely independent. The following two libraries are recommended, but it seems that they will also be loaded.
1. EasyBeans
A new project of ObjectWeb, a lightweight EJB3 container, has not been officially released yet, But code can be checked out from their subversion repository. The Code Generation Volume is about 600 pages. After reading it, you can compare the network programming, architecture, RMI, and container status design.