Backend Development 21 min read

Comprehensive Overview of Our Company’s Technology Stack, Server Environment, and Team Management Practices

This article presents a detailed case study of a mid‑size development team’s front‑end and back‑end technology stack, server environment, project workflow, and management practices, aiming to share practical solutions and lessons learned for building and maintaining enterprise‑grade Java applications.

Java Captain
Java Captain
Java Captain
Comprehensive Overview of Our Company’s Technology Stack, Server Environment, and Team Management Practices

Purpose

The goal is to analyse, from a personal perspective, the technology stacks used in the company, the problems they solve, and the daily project‑management methods of a team of dozens, providing a holistic view that may inspire others.

Key Points

Only technologies that solve real problems are introduced.

Front‑end Technology Stack

1. CSS3 for styling

Solves page rendering issues.

2. HTML5 for page structure

Addresses mobile compatibility.

3. SeaJS framework

Handles modular development and loading.

4. jQuery

Facilitates DOM manipulation.

5. Popular front‑end plugins

bootstrapValidator for form validation

Bootstrap for layout

layer for modal dialogs

jQuery cxSelect for cascading dropdowns

bootstrap‑fileinput for multi‑file upload

iCheck for checkbox styling

UEditor for rich‑text editing

6. Custom business plugins

Eliminate code duplication for features such as collection, like, comment, message, follow, personal‑info settings, payment triggers, and exam‑paper question panels.

Back‑end Technology Stack

1. Layered architecture

Core layer provides generic capabilities (DB persistence, Redis cache, HTTP wrapper, utilities). Base layer represents core business entities. Business layer handles cross‑project logic. Web layer serves external users with isolated services.

2. Shared services extraction

Common services (SMS, email, dictionary, collection, follow, order, payment) are packaged as reusable JARs.

3. Jedis‑based Redis wrapper

Unified ID generation and caching of Freemarker snippets to reduce database load.

4. Maven for project management

Custom archetypes for rapid project creation

Aggregation for multi‑module builds

Inheritance for shared configuration

Properties for variable substitution

Standardised resource layout

Dependency management and conflict resolution

HTTP proxy for repository access

Publishing internal artifacts to Nexus

5. Nexus private repository

Prevents duplicate JAR downloads

Enables internal artifact sharing

Manages third‑party libraries

6. GitLab for version control

Supports collaborative development with defined workflow.

7. Jenkins/Hudson CI

Automates build, publish, rollback

Scheduled builds for early issue detection

One‑click deployment

Build steps: pull from GitLab → Maven build → SCP to server → remote script execution

8. MySQL for data storage

Standard relational database.

9. Spring + Spring MVC + MyBatis (SSM)

Handles HTTP requests, business logic, and persistence.

10. Hibernate Validator

Validates incoming parameters (non‑null, range, etc.).

11. Spring MVC interceptors

Implements permission checks (SSO, role, payment).

12. Spring AOP

Extracts common code such as uniform JSON responses.

13. Logback

Logging framework.

14. Flying‑saucer + iText + Freemarker

Generates PDFs (exam tickets, reports).

15. JavaMail

Email sending service.

16. TestNG + H2

Unit testing for code quality.

17. Cookie + Redis

Implements single‑sign‑on.

18. Global exception handling (HandlerExceptionResolver)

Unified handling of business, timeout, and other exceptions.

19. ServletContextAware

Initialises Freemarker config and global static variables (domain, file storage path).

20. Quartz

Scheduled task execution.

21. Jsoup web crawler

Scrapes external site data.

22. QR code generation

Provides QR‑code functionality.

23. Custom JSP tags

Implements site‑wide pagination.

24. Druid connection pool

Manages database connections.

25. Spring IoC container

Dependency injection for flexible implementations and configuration.

26. CXF / Axis

WebService integration with third parties.

27. Custom annotations + reflection

Method access control

Inject user info via AOP

28. MyBatis

Data persistence

Mapper interfaces for CRUD

PageHelper for pagination

Interceptor for SQL logging

29. JSP / Freemarker view layer

Renders UI.

30. Custom Freemarker tags

Handles dictionary‑like cross‑table lookups.

31. Custom JSON view

Standardises JSON response format.

32. EL expressions & JSTL

Accesses model data and handles view logic.

33. Custom annotations for feature toggles

@Void to skip JSON wrapping

Annotation‑based SSO interception

AOP + annotation for user info injection

Server Environment

Unified internal test and production environments

Nginx for reverse proxy, static‑dynamic separation, IP restrictions, request routing

Redis for business cache

Tomcat as web container

JDK 8

MySQL database

Mount for static resource mounting

Team Management

Management philosophy: self‑management, learning, progress, openness, sharing.

1. Java coding standards

Project naming

Output standards

Development guidelines

Front‑back API contracts

Java coding conventions

URL design

2. Database operation standards

No stored procedures

Naming conventions

Field types

SQL change tracking and approval

3. Worktile for project & task management

Centralises documentation, meetings, timelines, and sharing.

4. Internal wiki for knowledge retention

Facilitates collaborative editing and knowledge solidification.

5. Pair programming

Accelerates onboarding and reinforces knowledge.

6. Reading culture

Daily reading time and weekly book sharing.

7. Coding habits

Morning planning on XMind, afternoon implementation.

8. Regular demo sessions

Encourages high performers and supports slower teammates.

9. Code reviews

Ensures adherence to standards and shared coding style.

10. Daily work plan

Clarifies goals, blockers, risks, and resource coordination.

Software Build Process (Project Management)

1. Project Initiation

Control difficulty and scope

Define timeline and deliverables

Allocate resources and create Worktile project

Produce stakeholder‑approved project plan

2. Requirement Analysis

Product explains project and prototype

Derive system flowcharts

Validate understanding with product

Extract domain terms and use‑case list

Assign, schedule, and prioritize use cases

3. System Design

Deduplicate and classify domain terms

Create class diagrams

Validate coverage against prototype

Define class relationships

Draft method pseudocode (future work)

Design complex business logic

Plan service deployment per layer

Plan URL list from prototype

4. Product Development

Create base, business, and web Eclipse/IDEA projects

Define entities, services, and annotations

Generate database schema

Configure Nginx, host, and Jetty

Follow URL list to create physical files

Implement use cases in code

Daily code review

Local self‑testing per use case

Team demo of completed use cases

5. Product Testing

Merge to master and add to CI pipeline

Sync production data to internal DB

Execute DB migration scripts

Update server configs (Nginx, Tomcat)

Coordinate internal testing with business

Validate workflows, UI, and compatibility

Release when no critical bugs remain and stakeholders approve

6. Project Summary

Complete missing documentation

Team members record personal gains in XMind

Discuss and consolidate improvement list

Assign owners and schedule knowledge‑sharing sessions

Identify high‑cost, complex, repetitive areas

Root‑cause analysis of process/tech gaps

Assign project owners to resolve issues

Final demo to product for acceptance

Team Tools

1. IDEs: Eclipse and IntelliJ IDEA

Standardise version, plugins, settings, shortcuts, and code templates.

2. Network tunnelling: PeanutShell or ngrok

Enable internal‑network penetration for payment and API debugging.

3. Additional recommended tools

XMind – mind‑mapping

Everything – file search

Weizhi – knowledge management

Notepad++ – advanced editor

Postman – API testing

SecureCRT – SSH client

Navicat – DB client

Jetty – web container

SourceTree – Git GUI

PowerDesigner – modelling

Visio – flowcharts

Lantern – VPN

TeamViewer – remote control

JD‑GUI – Java decompiler

FFmpeg – video processing

Snipaste – screenshot

Screen Recorder – screen capture

PS: If you find this sharing useful, feel free to like and share.

(End)

Javaproject managementSpringMaventeam managementTech Stack
Java Captain
Written by

Java Captain

Focused on Java technologies: SSM, the Spring ecosystem, microservices, MySQL, MyCat, clustering, distributed systems, middleware, Linux, networking, multithreading; occasionally covers DevOps tools like Jenkins, Nexus, Docker, ELK; shares practical tech insights and is dedicated to full‑stack Java development.

0 followers
Reader feedback

How this landed with the community

login Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.