JEEPlatform

An enterprise information development foundation platform, can be used to quickly build enterprise background management system, integrated OA(office automation), SCM(supply chain system), ERP(enterprise resource management system), CMS(content management system), CRM(customer relationship management system) and other general business functions of enterprise systems. Github link: github.com/u014427391/… Welcome to download or star

JeePlatform project is a general base platform based on Activiti workflow engine, Spring Framework as the core Framework, ORM Framework Mybatis, Web layer Framework SpringMVC and a variety of open source component frameworks. Based on this platform, rapid development can be achieved. To realize efficient and high-performance development of enterprise information management. The system pursues effective implementation of security and performance.

The system design

System management (Module name Jeeplatform-admin)

Management system login page, using Shiro login authentication

The front end of the home page of the management system can be adapted to mobile pages

The main page of management system adopts open source front-end template with skin changing function

Manage the system home page, obtain user permissions, display menus

The role is authorized. Only the super administrator has the permission

To configure roles, learn about RBAC(Role-based permission Control)

Use the JavaEmail plug-in to send emails. Remember to enable SSl authentication

OA Management System (to be developed)

CMS Management System (to be developed)

System upgrade

Single sign-on Basics (module name Jeeplatform-SSO)(in development)

Project the CAS login login, single sign-on cluster structures, you can refer to the blog: blog.csdn.net/u014427391/… Item SINGLE sign-on (SSO) : Nginx is used as the load balancer, Redis is used to store Tomcat sessions to share Tomcat sessions in the cluster, and Redis is used as the cas ticket repository to achieve CAS ticket consistency in the cluster.

The single sign-on cluster is shown

SpringBoot integrates Redis cache processing (Spring AOP implementation)

Query MySQL database, and then save it to Redis cache. Next time, call Redis cache directly

package org.muses.jeeplatform.cache; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Pointcut; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Component; / / @component @aspect public class RedisAspect {private static final Logger Logger = LoggerFactory.getLogger(RedisAspect.class); @Autowired @Qualifier("redisCache") private RedisCache redisCache; / * * * to intercept all yuan notes RedisCache * / the @pointcut annotation method (" @ the annotation (org. MUSES. Jeeplatform. The annotation. RedisCache) ") public void PointcutMethod (){} /** * * @param joinPoint * @return */ @around ("pointcutMethod()") public Object Around(ProceedingJoinPoint Long startTime = System.currentTimemillis (); String applId = null; Object[] args = joinPoint.getArgs(); if (args ! = null && args.length > 0) { applId = String.valueOf(args[0]); String target = joinPoint.gettarGet ().toString(); String className = target.split("@")[0]; String methodName = JoinPoint.getSignature ().getName(); String redisKey = applId + ":" + className + "." + methodName; Object obj = redisCache.getDataFromRedis(redisKey); if(obj! = null) {LOGGER. The info (" * * * * * * * * * * to check the data from Redis * * * * * * * * * * "); Logger. info("Redis KEY :"+redisKey); Logger. info("REDIS VALUE :"+ obj.tostring ()); return obj; } long endTime = System.currentTimeMillis(); Logger. info("Redis cache AOP processing time :"+(endtime-startTime)); Logger. info("********** no data from Redis **********"); try{ obj = joinPoint.proceed(); }catch(Throwable e){ e.printStackTrace(); } LOGGER. The info (" * * * * * * * * * * start from MySQL query data * * * * * * * * * * "); / / rear: data saved to the database to check the Redis String. Code = redisCache saveDataToRedis (redisKey, obj); If (code. Equals (" OK ")) {LOGGER. The info (" * * * * * * * * * * data save to Redis cache success!!! * * * * * * * * * * "); Logger. info("Redis KEY :"+redisKey); Logger. info("REDIS VALUE :"+ obj.tostring ()); } return obj; }}Copy the code

You can see that Redis saved to the cache

The business plan

General system management functions

  • User management: System user OK
  • Role management: Assigns roles based on enterprise system functions. Each role has different system operation rights. OK
  • Authority management: authority management is subdivided into the system button authority, menu authority, the administrator can subdivide the authority control
  • Online management: Manages online users and forces them offline
  • Menu management: The system can configure the system menu and assign different permissions OK
  • Report statistics: data report, user analysis
  • System monitoring: data monitoring, system logs (user login records)
  • General interface: SMS(short message), system email, Excel export and import operation…

General function of OA System (to be developed)

  • Attendance management: leave process
  • Personnel management: organization management, department management, staff management

General functions of CMS System (to be developed)

  • Information management: article management, article review…

Technical solution

The background technology

  • Workflow engine: Activiti5
  • ORM framework: Mybatis/Hibernate JPA
  • Web Framework: SpringMVC
  • Core framework: Spring Framework4.0
  • Task scheduling: Spring Task
  • Permission Security: Apache Shiro/Spring Security
  • Full text search engine: Lucene/Solr
  • Static processing of pages: Freemark/Velocity
  • Server pages contain technology: SSI
  • Web im: Long Polling /websocket
  • Connection pool: Druid
  • Log processing: SLF4J
  • Cache processing: Redis, EhCache
  • Excel table processing: POI

The front-end technology

  • File upload: JQuery Uploadify
  • Tree structure: EasyUI Tree
  • Date plugin: JQuery Date
  • Popover frame: zDialog
  • Cookie Save: JQuery Cookie
  • Rich text editor: Baidu UEDitor
  • Front-end frameworks: Twitter Bootstrap, ExtJS

The server

  • Load balancer: Nginx
  • Distributed: Alibaba Dubbo
  • Middleware: RocketMQ

Project test

  • DeBug: Junit, FindBugs, EclEmma
  • Program quality: Jdepend4eclipse
  • Pressure test: JMeter

Tool software

  • Server: SecureCRT
  • Java: IntelliJ IDEA/Eclipse
  • Remote control: TeamViewer
  • Version control: Git
  • Jar management: Maven
  • UML modeling: ArgoUML
  • Eclipse test plug-in: EclEmma
  • Application quality check plug-in: Jdepend4eclipse

Github link: github.com/u014427391/… Welcome to download or star