Introduction of platform
Jeesz is a distributed framework, providing the idea of project modularization, servitization, hot plug, high encapsulation security Java EE rapid development platform.
Jeesz itself integrates Dubbo service management and control, Zookeeper registry, Redis distributed cache technology, FastDFS distributed file system, ActiveMQ asynchronous messaging middleware, Nginx load balancing and other distributed technologies
Use Maven to manage projects, modularize projects, and improve the ease of development and expansibility of projects
Spring Framework is the core container, Spring MVC is the model view controller, MyBatis is the data access layer, Apache Shiro is the authorization layer, Ehcahe is the cache for common data, And Activit is the workflow engine.
The front end integrates Bootstrap4 Metronic framework, and the UI is responsive and flat layout, which is suitable for all PC, Pad, android, ios mobile devices, etc.
Jeesz is mainly targeted at Internet enterprise architecture, and has built-in basic functions of enterprise information system and efficient code generation tools, including: system permission component, data permission component, data dictionary component, core tool component, view operation component, workflow component, code generation and so on. Adopt layered design, double authentication, secure coding of submitted data, password encryption, access authentication and data permission authentication.
Jeesz currently includes the following module projects: background system management system, RestFul independent service system, Scheduler scheduling system, content management (CMS) system, online Office (OA) system, My To-do (Task Service) and My Collection (Bookmark service).
Background management system includes enterprise organizational structure (user management, organization management, regional management), menu management, role permission management, dictionary management and other functions;
RestFul provides standard Rest service apis. You can quickly implement your own business and provide required services.
Quartz timing scheduling system can dynamically configure your task rules;
Content management (CMS) system, including content management, column management, site management, public message, file management, front-end website display and other functions;
Online office (OA) system, mainly provides simple process instances.
Jeesz provides common tools for encapsulation, including logging tools, caching tools, server-side validation, data dictionaries, current organizational data (users, organizations, regions), and other common gadgets. It also provides a powerful online code generation tool that provides simple single-table, one-to-many, tree-structured functionality that can be used if the appearance requirements are not too high. The Jeesz basic framework is used to improve rapid development efficiency.
Built-in features (only partially listed)
1. User management: Users are system operators. This function is used to configure system users.
2. Organization management: configure the organizational structure of the system (company, department, group), tree structure display, can be adjusted at will.
3. Regional management: system of urban regional models, such as maintenance of countries, provinces, cities, districts and counties.
4. Menu management: configure system menus, operation permissions, button permissions, etc.
5. Role management: Role menu permission assignment and role setting Data scope permission division by organization.
6. Dictionary management: Maintain some fixed data frequently used in the system, such as whether, male and female, category, level, etc.
7. Operation logs: Record and query normal operation logs of the system. Record and query system exception information.
8. Connection pool monitoring: Monitor the current system database connection pool status, and analyze SQL to find out system performance bottlenecks.
9. Workflow engine: realize business work order flow and online process designer.
The development tools
1.Eclipse IDE: Using Maven project management, modular.
2. Code generation: the corresponding code can be automatically generated through simple configuration on the interface. Currently, there are three generation modes (add, delete, change and check) : single table, one-to-many and tree structure. The generated code can be used if it does not need to pay attention to the aesthetic degree.
Technology selection (only part of the technology is listed)
1, the back end
Service framework: Dubbo, ZooKeeper, and Rest
Cache: Redis, Ehcache
Message middleware: ActiveMQ
Load balancer: Nginx
Distributed file: FastDFS
Database connection pool: Alibaba Druid 1.0
Core framework: Spring Framework
Security framework: Apache Shiro 1.2
View Framework: Spring MVC 4.0
Server-side validation: Hibernate Validator 5.1
Layout framework: SiteMesh 2.4
Workflow engine: Activiti 5.15
Task scheduling: Quartz 1.8.5
Persistence layer framework: MyBatis 3.2
Log management: SLF4J 1.7, Log4j
Tools: Apache Commons, Jackson 2.2, Xstream 1.4, Dozer 5.3, POI
2, the front end,
JS framework: JQuery 1.9
CSS framework: Bootstrap 4 Metronic
Client-side Validation: JQuery Validation Plugin.
Rich text: CKEcitor
File management: CKFinder
Dynamic TAB: Jerichotab
Data table: jqGrid
Dialog box: jQuery jBox
Tree structure control: jQuery zTree
Other components: Bootstrap 4 Metronic
3, support,
Server middleware: Tomcat 6, 7, Jboss 7, WebLogic 10, WebSphere 8
Database support: Currently, the mysql database is supported, but not limited to the database. In the next version, multiple data source switchover and database read/write separation, such as Oracle, SqlServer, and H2, are supported
Support development environment: Eclipse, MyEclipse, Ras, Idea, etc
Environment building:
1. Environment preparation
1. Development tool: Eclipse IDE(a higher version is recommended)
2.JDK version: JDK1.7
3. Project management: Maven3.1.1
2. Installation procedure
1. Install JDk1.7 and configure environment variables.
2. Install Maven: The maven installation process is unzipped (E:\myprj\jeesz-maven\apache-maven-3.1.1). For your convenience, we have provided the related installation package, which will be shared under the packaged directory.
3. Mavan configure the environment variables, right-click my computer properties advanced system Settings environment variable to find (system variable path), enter your Maven installation package path in the front, declare: because the previous step decompressed the specified directory, so the configuration is as follows:
E: \ myprj \ jeesz – maven \ apache maven – 3.1.1 \ bin.
We all have environment variables configured. If you are not sure, please check the relevant resources to learn more about Maven.
4. Open CMD and press: MVN — version. If the following output is displayed, you have successfully installed Maven
MVN is a command of Maven, mvn-version is to check the version information, MY operating system is 64-bit WIN7, installed maven 3.1.1, if you can print the above information, it means that Maven3 has been installed on your computer.
5. Create workspace (select J2EE view after entering)
6. Set the Eclipse encoding to UTF-8
On the Eclipse toolbar, select Window Prefrences General Workspace
7. Configure the JRE environment (previously you need to install JDK 1.7, here use the installed JDK to configure) :
Select Window Prefrences Java Installed JREs Edit Select your local JDK installation path Finished OK
8. Remove JavaScript verification and other information (since js, CSS, XML and other files with different formats are widely used in the project, some verification information is temporarily removed in consideration of the execution time of each compilation)
Validation “Suspend all Validators” OK
To modify the maven settings. XML configuration file, go to E:\myprj\jeesz-maven\apache-maven-3.1.1\conf,
Add E:/myprj/jeesz-maven/apache-maven-3.1.1/repository
Modify the central library path (if the network is normal, you can download the missing JAR package from the remote central library, I use Oschina central library here, if there is a problem with the network,
You can use your company’s private server to load relevant JAR packages). Considering that sometimes the packages can not be downloaded, I also share the jar packages required by the project with you, and put them all in the following directory:
E: / myprj/jeesz – maven/apache maven – 3.1.1 / repository
The local library directory where the Maven installation directory and Setting file are loaded is configured in Eclipse
11. Import Maven project
File Import Existing Maven Projects next step
Select your local Maven project (jeesz-Project root) and click OK
When all the projects are loaded, click Finish
Note: this import process will take some time, because I have a local connection to the network, so I will download all the JAR packages required by the project from the remote central library, please be patient.
You don’t need to wait long if you’re using a local library, and you won’t have to wait long if you’re using a company private server.
Imported project information
The package for the local library has been downloaded
12. After downloading all jars, update the Maven project:
1) Select all projects 2) right-click Maven “Update Project”, select All “Select Associated Items” and click OK
If the project still has a red X error, it must be missing the relevant JAR package. You can use:
Window showView Problem View exception information in the problem Window
If the JAR package is missing, you can copy the JAR package we provide directly to your specified directory
The next step can be carried out only after all errors in the project are cleared (as shown in the picture below).
Select all projects and clean them: Project clean
Try compiling and packaging the project to see if there is a problem:
Note: Normally we package compilations against the root project because all dependencies are configured there. Jeesz-project “Run As” Maven build…
Enter clean Install -x in the dialog box that pops up and check Skip Tests, Run…
Note: If you are not familiar with maven commands, you may want to look them up
Here’s a quick explanation: Clean install -x means to clean up all projects and pack jars into the local library, where -x represents the output information. (Generally, you can use -x to locate problems with Maven.)
At this point the console starts compiling and loading all packages. This process is a bit long, please be patient
The following results indicate that the project is normal.
The generated packages (including war and JAR) are stored in the target folder. The screenshot below shows the example of jeesz-web-admin.
14.Tomcat release jeesz project (release process is not detailed, everyone will do) :
The following is an introduction to the different projects:
Jeesz-web-admin: Can be deployed independently (background management platform)
Jeesz-web-service: Can be independently deployed (REST service platform, customers can expand REST services according to their own business, which has written related instances)
Dubbo service is provided by Jeesz-service-bookmark and Jeesz-service-Task. Dubbo service is provided by Jeesz-service-Bookmark and Jeesz-service-Task. Dubbo service is provided by Jeesz-service-Task and jeesz-service-Task. It can also be deployed separately.)
Jeesz-web-bookmark and Jeesz-Web-Task are dubbo consumer platforms, in which the service interfaces of Dubbo service are exposed as follows: Jeesz-facade-bookmark, Jeesz-facade-Task (this describes how the Dubbo client invokes the Dubbo service provider through favorites and backlog items only. The client can put the Dubbo consumer into different projects with a few simple configurations)
Deployment conditions:
1) Execute mysql database script: jeesz.sql
You can refer to the JDBC configuration items of the database
2) Jeesz-web-admin can be deployed directly by Tomcat
Login username and password: jeesz/admin
3) Jeesz-web-service: can be independently deployed by Tomcat
Login username and password: jeesz/admin
The following conditions are required to deploy a Dubbo-related project
Install dubbo management platform, decompress war package to Tomcat, replace the directory with the root directory, and directly start Tomcat (The development environment provides Windows).
Zookeeper registry installation, I provide ZooKeeper-3.4.5 version (the development environment provides Windows), go to the installation directory to start
Note: I have provided relevant programs, in which dubbo management and control platform needs to be independently deployed on Tomcat server, which does not require high availability configuration and can be started directly by starting Tomcat. The Zookeeper registry has related commands that you can run and start directly. If you want to deploy on a Linux system, you can see the documentation we provide
5) After the Dubbo control console and registry are ready to start, the Jeesz-service-Bookmark and Jeesz-service-Task projects can be deployed to Tomat at the same time (independently) as the Dubbo service provider
6) Log in dubbo Control Console to check relevant service information, and you can see that the service you published has been controlled by the Control Console:
http://localhost:8080/root
This is accessible directly by address because the package name was changed to Root
User name Password: root/root
7) Branch deployment of Jeesz-Web-Bookmark, Jeesz-Web-Task Dubbo consumer projects to let developers know how the service is invoked.
Here is the installation process of the whole project, please developers after installing the project into development, all business directly servitization, because the project is based on driver development, so design your table, Through the Gen code generation module of jeesz-Web-admin project, all the controller, Service, DAO, XML, JSP interfaces are automatically generated, and the business is written and processed directly. We will continue to improve the document in the near future, please pay attention to it.