Common open-source framework technologies for J2EE development

Source: Internet
Author: User
Tags ftp file

1 persistent layer:
1) hibernate
This does not need to be introduced. It is frequently used. ing is usually used, including inheritance ing and parent-child table ing.
Dao introduces bba96, a package developed based on it. The latest version is bba96 2.0, which encapsulates hibernate. The query function includes the method for executing hsql or SQL query/update, if you want multi-level logical condition query, You can assemble queryobject by yourself. you can refer to it for hibernatedao. you can also use it directly.
2) ibatis
Another ORM tool, Apache, is less integrated than hibernate, with a relatively high degree of freedom

2: springmvc
Principles and quick start:
The configuration file is:
Spring's configuration file defaults to WEB-INF/xxxx-servelet.xm where XXX is the servlet-name of org. springframework. Web. servlet. dispatcherservlet in Web. xml.
Action distribution:
Spring will map the URL defined in the configuration file to a specific controller class, and then call the corresponding action method in the Controller Using Reflection based on the action = xxx or other parameters in the URL.
Bind input data:
Spring provides the binder to bind pojo through a one-to-one reflection of the name. You can also directly retrieve data from request. getparameter.
Input data verification
Sping provides the validator interface. Of course, you can also use the open source commons-validaor to support the best.
Interceptor)
The interfaces provided by spring interceptor need to be compiled by yourself, which is not as good as webwork.
(The main difference between webwork and Struts is that webwork creates an action as a new object while struts inherits an action from singlemoule, so select the appropriate option based on the project requirements .)


3: View Layer
1) Tag Library: jsp2.0/jstl
Because webwork or spring labels are really limited, jstl labels are generally used in the view layer, and it is said that jstl is well designed and the speed is the fastest way to use all labels.

2) rich clients: dojo widgets, Yui (yahooui), FCKeditor, and coolest calendar controls
Dojo mainly provides rich client controls such as tree and tab, which can be used for auxiliary client development.
Like dojo, yahooui has its own JavaScript debugging console. It mainly supports Ajax development and has many rich client controls such as tree, table, and menu.
FCKeditor's most popular text editor
Currently, many calendar controls are available in the coolest calendar control. Integration is also relatively simple in projects. This is just one of them. The interface is nice to say ..

3) javascript: Prototype. js
Prototype. as a successful open-source framework of JavaScript, JS encapsulates a lot of useful functions and it is easy to compile Ajax applications. Now Ajax technology is becoming increasingly mature, and there are abundant framework resources, such as Yui, DWR and so on. It is also because JavaScript does not have a suitable debugging tool, so there is no need to write Ajax applications from scratch. I personally think it is a good choice to use some mature Ajax frameworks to implement page update without refreshing.

4) Table Control: Display tag, extreme table
These two functions are similar, both of which are table generation at the view layer and interface comparison. You can export Excel and PDF files, which is easy to support spring.
In comparison, extremetable is recommended. It is well designed with more functions than displaytag. It supports Ajax and encapsulates some interceptors. The most important thing is that there are detailed Chinese user documents on the wiki page.

5): Oscache
Oscache is a cache technology implementation component of the Web application layer in the J2EE architecture provided by opensymphony. cache is a technology used to improve the system response speed and system running performance. Especially in Web applications, caching page output results can significantly improve system stability and performance.
It is mainly used to process some data or pages that will not change in a short period of time or within a certain period of time, or to buffer some unchanged statistical reports in the memory, which can fully reduce the pressure on the server, prevents load balancing and quickly restarts the server (through hard disk cache ).

6) sitemesh
Sitemesh uses the decorator mode to improve the maintainability and reusability of pages. The principle is to use filter to intercept requests and response, and combine the page components head, content, and banner into a complete view. We usually use the include tag to continuously include various headers, stylesheet, scripts and footer on each JSP page. Now, with the help of sitemesh, we can delete them to easily achieve the composite view mode.
Sitemesh is also a project of opensymphony. The latest version is 2.2. Currently, opensymphony has not been updated since 04 .. it seems that there is still an innovative way to assemble pages. The opensymphony open-source organization code is generally well written and can be adapted to its own project by modifying its source code.
Test found that sitemesh still has some problems, such as Chinese problems, its default encoding is iso-8859-1 in use need to make some changes.

7) CSS and XHTML
This does not need to be said. Web page development follows W3C standards.

8) tab: pager-taglib component

Pager-taglib is a set of paging tag libraries, which can flexibly implement paging navigation pages of different styles and can be well separated from the paging logic of the server. It is also relatively simple to use.

9) form: jodd form taglib

Jodd form taglib is easy to use. You only need to wrap the header and tail of form with <jodd: Form bean = "mybean">
Mybean will be automatically bound, and all attributes with the same name of mybean will be automatically bound to the input, selectbox, checkbox, and radiobox marked in common HTML... no code needs to be written in these input boxes...

10) Ajax: DWR
The most common Ajax framework for J2EE applications

11) report charts
Eclipse Birt has powerful functions and is also very huge... dozens of MB. Generally, it is not needed unless there are special requirements or other chart design software can solve it.
Jasperreports + ireport is a Java-based open-source report tool that can be used to create reports in the Java environment like other ide report tools. Jasperreports supports PDF, HTML, xls, CSV, and XML file output formats. Jasperreports is currently the most common reporting tool for Java developers.
Jfreechart is mainly used to create a variety of charts, including: pie chart, bar chart (common bar chart and stack bar chart), line chart, Area Chart, distribution chart, hybrid chart, Gantt chart, and some dashboard.
Qinqi Report, which is made in China. It is recommended that it is suitable for Chinese situations. It is open source code and free to use. Pure Java Development, applicable to a variety of system platforms. It is particularly suitable for systems with B/S structures. The official website has its advantages. It seems that it is a good choice, and the most important thing is to support domestic products.

4. Permission control: acegi
Acegi is the most mature security system in Spring framework. It provides powerful and flexible enterprise-level security services, such as sound authentication and authorization mechanisms, HTTP resource access control, and method call access control, CAS supported
(Yale University's single point of login technology, this single point of login solution is more famous. I have also configured and used it. It can be used if users are distributed in different places and different systems use a set of Logon passwords, this is generally the solution for login from the registration machine)
Acegi is only used in combination with the best security framework of spring and has powerful functions. Of course, there are some other security frameworks. Here I will list some of the most popular ones I have found on the Internet, for how to use this function, see the official documentation...
JAAS, Seraph, jsai-servlet security, Gabriel, josso, Kasai, jpam, and opensaml are all security control frameworks.

5. Full-text search
1) Lucene
Lucene is a full-text index interface that can be used to add inverted data files to index files. The indexing speed and query speed of Lucene are quite fast. It queries results of millions of data in milliseconds, currently, the most popular open-source Apache Project, with a fast version update speed now reaching 2.0. Each version is updated a lot. Currently, the most popular version is 1.4.3, however, it has a limit of 2 GB for a single index file, which is not restricted by version 2.0. I have studied a lot and it has better scalability, you can expand the word segmentation interface and query interface.
There are many systems developed based on it, such as the most common eclipse search functions, and some open-source software such as compass, nutch, lius, also, I recently used insearch (enterprise-level FTP file Webpage Search)

</Jodd: Form>

 


6: Public util class
It is mainly the Jakarta-commons class library, the most common of which is the following Class Libraries
1) Jakarta-commons-language
The most common class is the stringutils class, which provides a high efficiency for common methods of string processing.
2) Jakarta-commons-beantuils
Beantuils is used to obtain reflection function encapsulation and read nested attributes, MAP and array attributes.
3) Jakarta-commons-collections
There are many utils Methods

7. Log Management
Log4j
A task is a log record, which can be divided into info, warn, and error levels to better Debug programs.

8. Open-Source J2EE framework
1) appfuse
Appfuse is a guiding entry-level J2EE framework developed by Matt raible. It demonstrates how to integrate popular basic frameworks such as spring, hibernate, ibatis, struts, xdcolet, and JUnit. in the persistent layer, appfuse uses the Hibernate O/R ing tool. In terms of containers, appfuse uses spring. Users can freely choose struts, spring/MVC, webwork, JSF web frameworks.

2) springside
Springside fully demonstrates all aspects of enterprise applications. springside, an e-commerce website, also draws a lot of reference to the excellent appfuse experience. The most important thing is that it is an open-source project in China. It can be helpful to know some actual technical trends and directions in China...

9: Template
Mainly include veloctiy and freemarker
The template uses the data provided by servlet to dynamically generate HTML. The compiler speed is fast, and the output speed is close to that of the Static HTML page.

10: Workflow
I know that jbpm shark osworkflow is the most famous one. Since there is not much research on it, it is not clear what is the difference between them.

Project Management Software
Dotproject: A lamp-based open-source project management software. The most famous project management software
JIRA: Project Plan, Task Arrangement, error management
Bugzilla: submits and manages bugs. It is integrated with eclipse. you can install myeclipse and configure it.
Bugfree draws on Microsoft's software development philosophy, free open source code, and web-based lite Bug Management.
CVS: I will not introduce them all.
SVN: Subversion has gradually surpassed CVs and is more suitable for javaee projects. After using Apache for a long time, SourceForge just launched SVN support.
Test Cases: mainly for JUnit unit tests, compiling testcase, spring also provides good support for JUnit.

Postscript:
The component middleware available for spring-based application development is dazzled, so different open-source products can be used to address different project requirements, for example, spring + hibernate/ibatis, spring + webwork + hibernate/ibatis, spring + Struts + hibernate/ibatis, reasonable Framework Design and code reuse design can greatly improve the project development efficiency and procedures, and facilitate later maintenance.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.