Spring Flashcards
жц бина
Load definitions -> Post process definitions -> Instatniate Beans -> Call setters -> BeanNameAware SetBeanName -> ApplicationContextAware setApplicationContext -> BeanPost Procerssors postProcessBeforeInitialization -> @PostConstruct -> afterPropertiesSet -> init() -> BeanPost Procerssors postProcessAfterInitialization()
@DependsOn
паттерны Spring
Proxy (Заместитель)
Паттерн Proxy широко используется в AOP и remoting.
Singleton (Одиночка)
Паттерн Singleton гарантирует, что в памяти будет существовать только один экземпляр объекта, который будет предоставлять сервисы. В Spring область видимости бина (scope) по умолчанию равна singleton и IoC-контейнер создаёт ровно один экземпляр объекта на Spring IoC-контейнер.
Factory (Фабрика)
Этот паттерн позволяет инициализировать объект через публичный статический метод, называемый фабричным методом. Spring использует паттерн Factory для создания объекта бина с использованием следующих двух подходов. BeanFactory ApplicationContext
Template (Шаблон)
Этот паттерн широко используется для работы с повторяющимся бойлерплейт кодом (таким как, закрытие соединений и т. п.). Например, JdbcTemplate, JmsTemplate, JpaTemplate
Model View Controller (Модель-Представление-Контроллер)
Преимущество Spring MVC в том, что ваши контроллеры являются POJO, а не сервлетами. Это облегчает тестирование контроллеров.
Front Controller (Контроллер запросов)
Spring предоставляет DispatcherServlet, чтобы гарантировать, что входящий запрос будет отправлен вашим контроллерам.
View Helper (Вспомогательный компонент представления)
View Helper отделяет статическое содержимое в представлении, такое как JSP, от обработки бизнес-логики.
Dependency injection и inversion of control (IOC) (Внедрение зависимостей и инверсия управления)
IoC-контейнер в Spring, отвечает за создание объекта, связывание объектов вместе, конфигурирование объектов и обработку всего их жизненного цикла от создания до полного уничтожения.
Service Locator (Локатор служб)
ServiceLocatorFactoryBean сохраняет информацию обо всех бинах в контексте. Когда клиентский код запрашивает сервис (бин) по имени, он просто находит этот компонент в контексте и возвращает его. Клиентскому коду не нужно писать код, связанный со Spring, чтобы найти бин.
Observer-Observable (Наблюдатель)
Используется в механизме событий ApplicationContext.
Context Object (Контекстный объект)
Паттерн Context Object, инкапсулирует системные данные в объекте-контексте для совместного использования другими частями приложения без привязки приложения к конкретному протоколу. ApplicationContext является центральным интерфейсом в приложении Spring для предоставления информации о конфигурации приложения.
Abstract Factory (Абстрактная фабрика)
В основе интерфейса FactoryBean из фреймворка Spring лежит паттерн проектирования Abstract Factory. Spring предоставляет множество реализаций данного интерфейса, например ProxyFactoryBean, JndiFactoryBean, LocalSessionFactoryBean, LocalContainerEntityManagerFactoryBean и т. д.
Builder (Строитель)
Фреймворк Spring прозрачным образом реализует паттерн проектирования Builder для некоторых функциональностей. В Spring на паттерне проектирования Builder основаны следующие классы: EmbeddedDatabaseBuilder; AuthenticationManagerBuilder; UriComponentsBuilder; BeanDefinitionBuilder; MockMvcWebClientBuilder.
Object Pool (Пул объектов)
Spring реализует паттерн Object Pool для предоставления приложению источника данных наиболее эффективным способом. Суть паттерна определяется так: создание объектов требует больших затрат, чем переиспользование. Spring позволяет реализовать паттерн Object Pool для переиспользования объекта DataSource в приложении.
Data Access Object (Объект доступа к данным)
В Spring JDBC DAO — обобщенный объект для доступа к данным с бизнес-уровня, предоставляющий согласованный интерфейс для сервисов бизнес-уровня. Основная задача классов DAO состоит в абстрагировании нижележащей логики доступа к данным от сервисов на бизнес-уровне.
Strategy (Стратегия)
Поведенческий паттерн проектирования, который определяет семейство схожих алгоритмов и помещает каждый из них в собственный класс, после чего алгоритмы можно взаимозаменять прямо во время исполнения программы. В Spring реализован множеством классов, наименование которых оканчивается словом “Strategy”, например: AbstractVersionStrategy, BasicLookupStrategy, CachingNamingStrategy, ContentVersionStrategy и т.д..
SpringBoot
- Opinionated ‘starter’ dependencies to simplify the build and application configuration
- Embedded server = jar
- Metrics, Health check, and externalized configuration
- Automatic config
- profiles
@SpringBootApplication = @EnableAutoConfiguration
@ComponentScan
@Configuration
@RestConroller
@Controller
@ResponseBody