Design Pattern

Application Controller Design Pattern – Core J2EE Patterns

The Application Controller is a sub pattern required in the Web implementations. This controller is placed in between the controllers that are related to HTTP, such as front controllers and action controllers and the remaining MVC machine part of the application. It can also be used in order to substitute them. In an MVC implementation, this pattern includes a layer of complexity in addition. It is more helpful when modeling the interactions as a state machine.

The application controller can be put to advantage when it is being used in a full-featured web application. It works better than the old page based controllers. The dynamic pages are not supposed to available all the time, as they are produced on a fly. These pages depend on the pages prior to it. They might even be accessible only until after the events have already happened.

Application Controller Design Pattern

The application controller is responsible for taking care of business logic and does not intrude into the responsibilities of the domain model. For every user interaction, the web application is in a specific state. Every state has previously defined events which once happened, these predefined events may alter from one state of the application, for a certain user, to the other state. Every alteration is linked with a certain response, which is presented to the user at the end. In order to analyze the request further, application controllers stand behind the action controller. It may also stand behind a front controller in order to substitute the classical page controllers that it is being forwarded to. The domain classes are the one on which then events are supposed to provoke the execution of the methods. The application controllers contain references to the domain class and the view class, as a collaborator and because these classes are supposed to render responses.

Spring 5 Design Pattern Book

You could purchase my Spring 5 book that is with title name “Spring 5 Design Patterns“. This book is available on the Amazon and Packt publisher website. Learn various design patterns and best practices in Spring 5 and use them to solve common design problems. You could use author discount to purchase this book by using code- “AUTHDIS40“.

The structure of the application controller

The structure of the application controller is such that it connects the intercepting filter, front controller, mapper, map, and target. All of these objects are centralized by the application controller. The client gets responses from the intercepting filter and the front controller. It then delegates it further to the application controller. The application controller sends the request to the mapper which further sends it to the map object. The application controller invokes the target while the mapper provides the target. The application controller pattern is used to cater many different issues and it gives the benefit of improved reusability, modularity, and extensibility.

Use an Application Controller to centralize retrieval and invocation of request-processing components, such as commands and views.

Previous
Next
Dinesh Rajput

Dinesh Rajput is the chief editor of a website Dineshonjava, a technical blog dedicated to the Spring and Java technologies. It has a series of articles related to Java technologies. Dinesh has been a Spring enthusiast since 2008 and is a Pivotal Certified Spring Professional, an author of a book Spring 5 Design Pattern, and a blogger. He has more than 10 years of experience with different aspects of Spring and Java design and development. His core expertise lies in the latest version of Spring Framework, Spring Boot, Spring Security, creating REST APIs, Microservice Architecture, Reactive Pattern, Spring AOP, Design Patterns, Struts, Hibernate, Web Services, Spring Batch, Cassandra, MongoDB, and Web Application Design and Architecture. He is currently working as a technology manager at a leading product and web development company. He worked as a developer and tech lead at the Bennett, Coleman & Co. Ltd and was the first developer in his previous company, Paytm. Dinesh is passionate about the latest Java technologies and loves to write technical blogs related to it. He is a very active member of the Java and Spring community on different forums. When it comes to the Spring Framework and Java, Dinesh tops the list!

Share
Published by
Dinesh Rajput

Recent Posts

Strategy Design Patterns using Lambda

Strategy Design Patterns We can easily create a strategy design pattern using lambda. To implement…

2 years ago

Decorator Pattern using Lambda

Decorator Pattern A decorator pattern allows a user to add new functionality to an existing…

2 years ago

Delegating pattern using lambda

Delegating pattern In software engineering, the delegation pattern is an object-oriented design pattern that allows…

2 years ago

Spring Vs Django- Know The Difference Between The Two

Technology has emerged a lot in the last decade, and now we have artificial intelligence;…

2 years ago

TOP 20 MongoDB INTERVIEW QUESTIONS 2022

Managing a database is becoming increasingly complex now due to the vast amount of data…

2 years ago

Scheduler @Scheduled Annotation Spring Boot

Overview In this article, we will explore Spring Scheduler how we could use it by…

3 years ago