Skip to content

Spring Core Capstone: EMS (Employee Management System) A hands-on capstone project that demonstrates full proficiency in Spring Core using a layered architecture. The system registers employees based on active environment profiles (dev/prod), assigns dynamically generated IDs using SpEL, and showcases constructor/setter/field injection, bean scopes

Notifications You must be signed in to change notification settings

ChandraSekhar-VCS/spring-core-capstone-simple-employee-management-system

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

6 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Spring Core Capstone Project

This project demonstrates a comprehensive hands-on mastery of the Spring Core module using real-world enterprise patterns. It includes all major features of Spring Core, including Bean Scopes, Dependency Injection styles, Profiles, @Value, SpEL, Component Scanning, and Lifecycle Callbacks.

πŸ“ Project Structure

com.chandrasekhar.springcore.capstone β”œβ”€β”€ config/ # Spring @Configuration class β”œβ”€β”€ controller/ # Application entry controller β”œβ”€β”€ env/ # Environment-specific @Profile-based beans β”œβ”€β”€ model/ # Domain model (Employee) β”œβ”€β”€ repository/ # Simulated repository layer β”œβ”€β”€ service/ # Business logic & notification service β”œβ”€β”€ util/ # Utility class for SpEL expressions └── main/ # Main Application bootstrap class

πŸ”§ Technologies Used

  • Java 21
  • Spring Framework 6.2.x (Core, Context)
  • Annotation-based configuration
  • Maven

βœ… Features Demonstrated

  • @Component, @Service, @Repository, @Controller stereotypes
  • Constructor, Setter, and Field-based Dependency Injection (@Autowired)
  • Java-based configuration using @Configuration and @Bean
  • Prototype scope with manual injection via ApplicationContext
  • Environment-based profiles using @Profile
  • Property injection with @Value (from application.properties)
  • Spring Expression Language (SpEL)
  • Lifecycle methods: @PostConstruct, @PreDestroy
  • Manual lifecycle with initMethod, destroyMethod
  • Clean separation of concerns using a layered architecture

πŸš€ Running the Application

  1. Set profile in main class:
    context.getEnvironment().setActiveProfiles("dev"); // or "prod"
  2. Run the MainApp CapstoneApp.main()

About

Spring Core Capstone: EMS (Employee Management System) A hands-on capstone project that demonstrates full proficiency in Spring Core using a layered architecture. The system registers employees based on active environment profiles (dev/prod), assigns dynamically generated IDs using SpEL, and showcases constructor/setter/field injection, bean scopes

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages