Spring Flashcards
Что такое JSF
JavaServer Faces (JSF) — это фреймворк для веб-приложений, написанный на Java. для облегчения разработки пользовательских интерфейсов для Java EE-приложений. JSF основывается на использовании компонентов
Расскажите о Spring Framework.
универсальный фреймворк с открытым исходным кодом для Java-платформы.замена модели Enterprise JavaBeans.
преимуществa Spring Framework
независимые друг от друга компоненты, что дает преимущества в командной разработке, переносимости модулей и т.д..
Проект Spring содержит в себе множество подпроектов, которые затрагивают важные части создания софта, такие как вебсервисы, веб программирование, работа с базами данных, загрузка файлов, обработка ошибок и многое другое. Всё это настраивается в едином формате и упрощает поддержку приложения.
Dependency Injection (DI)
Внедрение зависимости (Dependency injection, DI) — процесс предоставления внешней зависимости программному компоненту. Является специфичной формой «инверсии управления» ( Inversion of control, IoC),
через конструктор либо через сеттер
Spring модули
1) Inversion of Control-контейнер: конфигурирование компонентов приложений и управление жизненным циклом Java-объектов.
2) Фреймворк доступа к данным: через JDBC- и ORM-средства
3) транзакции
4) MVC
5) Security
6) Тестирование
7) Spring cloud
8) REST
AOP
возможность реализации сквозной логики. Подход Spring к АОП заключается в создании “динамических прокси” для целевых объектов и “привязывании” объектов к конфигурированному совету для выполнения сквозной логики.
Что такое joinpoint АОП?
места в приложении, в которые можно вставлять дополнительную логику с использованием АОП.
Что такое advice АОП?
Фрагмент кода, который должен выполняться в отдельной точке соединения, представляет собой advice.
Что такое pointcut АОП (срез он же перхватчик)?
срез, представляет собой коллекцию всех точек соединения Method Invocation в отдельном классе. Часто между срезами можно установить сложные отношения, чтобы обеспечить дополнительные ограничения на то, когда будет выполнен совет.
Что такое aspect АОП?
это комбинация совета и срезов.
Что такое weaving АОП?
процесс действительной вставки аспектов в определенную точку кода приложения. Для решений АОП времени компиляции это делается на этапе компиляции, обычно в виде дополнительного шага процесса сборки
разница между Spring AOP и AspectJ АОП?
AspectJ используется когда нужно привязаться не только к полям но и к методам или к обьектам
Spring AOP немного проще, он поддерживает аннотации AspectJ,
Недостатком Spring AOP является работа только со своими бинами, которые существуют в Spring Context.
IoC контейнер Spring?
IoC предоставляет службы, через которые компоненты могут получать доступ к своим зависимостям, и службы для взаимодействия с зависимостями в течение их времени жизни
Что такое Spring бин?
любой компонент, управляемый контейнером
конфигурационный файл Spring Bean?
определяет все бины, которые будут инициализированы в Spring Context. При создании экземпляра Spring ApplicationContext будет прочитан конфигурационный xml файл и выполнены указанные в нем необходимые инициализации. .
способы настроить класс как Spring Bean?
1)XML конфигурация:
2)Java based: @Configuration @ComponentScan(value="ru.javastudy.spring.main") public class MyConfiguration { @Bean public MyService getService(){ return new MyService(); } }
3)Annotation based:
@Component, @Service, @Repository, @Controller
scope у Spring Bean?
singleton — может быть создан только один экземпляр бина. Этот тип используется спрингом по умолчанию, если не указано другое. Следует осторожно использовать публичные свойства класса, т.к. они не будут потокобезопасными.
prototype — создается новый экземпляр при каждом запросе.
request — аналогичен prototype, но название служит пояснением к использованию бина в веб приложении. Создается новый экземпляр при каждом HTTP request.
session — новый бин создается в контейнере при каждой новой HTTP сессии.
global-session: используется для создания глобальных бинов на уровне сессии для Portlet приложений.
жизненный цикл Spring Bean?
@PostConstruct
public void init(){
System.out.println(“Bean init method called”);
}
@PreDestroy public void destroy(){ System.out.println("Bean destroy method called"); }
@Autowired?
Считается хорошей практикой задавать явные связи между зависимостями, но в Spring предусмотрен дополнительный механизм связывания @Autowired. Аннотация может использоваться над полем или методом для связывания по типу. Чтобы аннотация заработала, необходимо указать небольшие настройки в конфигурационном файле спринг с помощью элемента context:annotation-config.
Является ли Spring бин потокобезопасным?
о умолчанию бин задается как синглтон в Spring. Таким образом все публичные переменные класса могут быть изменены одновременно из разных мест. Так что — нет, не является. Однако поменяв область действия бина на request, prototype, session он станет потокобезопасным, но это скажется на производительности.
Что такое контроллер в Spring MVC?
управление, связь между моделью и видом. обрабатывает запросы
@Component
используется для указания класса в качестве компонента спринг. При использовании поиска аннотаций, такой класс будет сконфигурирован как spring bean.
@Controller
пециальный тип класса, применяемый в MVC приложениях. Обрабатывает запросы и часто используется с аннотацией @RequestMapping.