Spring Framework

Application Framework

Spring is an application framework for Java applications. Spring is most popular as an inversion of control container for Java's J2EE web applications.

Spring is an alternative to STRUTs and JavaBeans. It also is an excellent implementation for the MVC (model, view, controller) pattern also utilized in front end frameworks.


Background

I first started using the Spring framework for internal projects for Woodard Education, an online educational platform in Shenzhen, a sprawling urban city in the south of China. I started attending Chinese user groups for Agile development, a concept of continuous development created by Japanese carmaker Toyota from the early 1940s to the mid 1970s.

A part of the work flow that was studied by the group during that time was the continuous integration of a J2EE application from Kanban software development, story creation, Java Core development, Spring development, Angular code and production deployment to further Agile planning, product updates, feature requests, bug fixes and then continue integration through a Jenkins pipeline. Many of my initial projects were non-enterprise and were primarily research and development for future endeavours.

Through these groups, my focus has been primarily on the "convention-over-configuration" advantage of Spring Boot. Being able to create production-ready, stand alone Java applications with maximum configuration makes for a great addition to any company's continuous integration. Easily configurable POMs and embedded Tomact server capability for proof of concepts also make for rapid acceptance from shareholders.

Spring Hibernate is another framework integration that assists in the Agile workflow. Being able to utilize Hibernate ORM as a "session management" control, assisting in object-relational mapping of enterprise Microsoft SQL Servers and J2EE application objects has been a part of my most recent technical stack as a J2EE full stack developer.

Summary

My understanding of the Spring framework derives from many of these initial Chinese Agile user groups and extends to one of the reasons I have been hired in subsequent projects in the United States.

The rapid development of enterprise grade applications using Spring Boot allows for a fast turnaround time on the functionality of an application, as well as the ability for Dev Ops teams to take your proof of concept and integrate into the development work flow and configure the environment is also advantageous.

Spring Hibernate allows for annotated configuration of database to application interactivity. Maintaining the MVC model from the backend using data access objects (repositories), services, entities (classes or POJOs) and controllers also allows for the ultimate separation of concerns within a Java/Spring application.

I have utilized Spring Hibernate at both Equifax and Bank of America as a Sr. Application Developer and Application Programmer, respectively.