Spring framework uses many Design patterns. Some of these
patterns are:
Singleton – By default beans defined in spring config files are
singleton. These are based on Singleton pattern.
Template – This pattern is used in many classes likeJdbcTemplate, RestTemplate, JmsTemplate, JpaTemplate etc.
Dependency Injection – This pattern is the core behind the design of
BeanFactory and ApplicationContext.
Proxy – Aspect Oriented Programming (AOP) heavily uses proxy
design pattern.
Front Controller – DispatcherServlet in Spring is based on Front
Controller pattern to ensure that incoming requests are dispatched to
other controllers.
Factory pattern – To create an instance of an object, BeanFactory is
used. This is based on Factory pattern.
View Helper – Spring has multiple options to separating core code
from presentation in views. Like- Custom JSP tags, Velocity macros
etc