Spring Flashcards Preview

Java > Spring > Flashcards

Flashcards in Spring Deck (59)
Loading flashcards...
1

Что такое JSF

JavaServer Faces (JSF) — это фреймворк для веб-приложений, написанный на Java. для облегчения разработки пользовательских интерфейсов для Java EE-приложений. JSF основывается на использовании компонентов

2

Расскажите о Spring Framework.

универсальный фреймворк с открытым исходным кодом для Java-платформы.замена модели Enterprise JavaBeans.

3

преимуществa Spring Framework

независимые друг от друга компоненты, что дает преимущества в командной разработке, переносимости модулей и т.д..
Проект Spring содержит в себе множество подпроектов, которые затрагивают важные части создания софта, такие как вебсервисы, веб программирование, работа с базами данных, загрузка файлов, обработка ошибок и многое другое. Всё это настраивается в едином формате и упрощает поддержку приложения.

4

Dependency Injection (DI)

Внедрение зависимости (Dependency injection, DI) — процесс предоставления внешней зависимости программному компоненту. Является специфичной формой «инверсии управления» ( Inversion of control, IoC),
через конструктор либо через сеттер

5

Spring модули

1)Inversion of Control-контейнер: конфигурирование компонентов приложений и управление жизненным циклом Java-объектов.
2)Фреймворк доступа к данным: через JDBC- и ORM-средства
3)транзакции
4)MVC
5)Security
6)Тестирование
7)Spring cloud
8)REST

6

AOP

возможность реализации сквозной логики. Подход Spring к АОП заключается в создании “динамических прокси” для целевых объектов и “привязывании” объектов к конфигурированному совету для выполнения сквозной логики.

7

Что такое joinpoint АОП?

места в приложении, в которые можно вставлять дополнительную логику с использованием АОП.

8

Что такое advice АОП?

Фрагмент кода, который должен выполняться в отдельной точке соединения, представляет собой advice.

9

Что такое pointcut АОП (срез он же перхватчик)?

срез, представляет собой коллекцию всех точек соединения Method Invocation в отдельном классе. Часто между срезами можно установить сложные отношения, чтобы обеспечить дополнительные ограничения на то, когда будет выполнен совет.

10

Что такое aspect АОП?

это комбинация совета и срезов.

11

Что такое weaving АОП?

процесс действительной вставки аспектов в определенную точку кода приложения. Для решений АОП времени компиляции это делается на этапе компиляции, обычно в виде дополнительного шага процесса сборки

12

разница между Spring AOP и AspectJ АОП?

AspectJ используется когда нужно привязаться не только к полям но и к методам или к обьектам

Spring AOP немного проще, он поддерживает аннотации AspectJ,
Недостатком Spring AOP является работа только со своими бинами, которые существуют в Spring Context.

13

IoC контейнер Spring?

IoC предоставляет службы, через которые компоненты могут получать доступ к своим зависимостям, и службы для взаимодействия с зависимостями в течение их времени жизни

14

Что такое Spring бин?

любой компонент, управляемый контейнером

15

конфигурационный файл Spring Bean?

определяет все бины, которые будут инициализированы в Spring Context. При создании экземпляра Spring ApplicationContext будет прочитан конфигурационный xml файл и выполнены указанные в нем необходимые инициализации. .

16

способы настроить класс как 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

17

scope у Spring Bean?

singleton — может быть создан только один экземпляр бина. Этот тип используется спрингом по умолчанию, если не указано другое. Следует осторожно использовать публичные свойства класса, т.к. они не будут потокобезопасными.
prototype — создается новый экземпляр при каждом запросе.
request — аналогичен prototype, но название служит пояснением к использованию бина в веб приложении. Создается новый экземпляр при каждом HTTP request.
session — новый бин создается в контейнере при каждой новой HTTP сессии.
global-session: используется для создания глобальных бинов на уровне сессии для Portlet приложений.

18

жизненный цикл Spring Bean?

@PostConstruct
public void init(){
System.out.println("Bean init method called");
}


@PreDestroy
public void destroy(){
System.out.println("Bean destroy method called");
}

19

@Autowired?

Считается хорошей практикой задавать явные связи между зависимостями, но в Spring предусмотрен дополнительный механизм связывания @Autowired. Аннотация может использоваться над полем или методом для связывания по типу. Чтобы аннотация заработала, необходимо указать небольшие настройки в конфигурационном файле спринг с помощью элемента context:annotation-config.

20

Является ли Spring бин потокобезопасным?

о умолчанию бин задается как синглтон в Spring. Таким образом все публичные переменные класса могут быть изменены одновременно из разных мест. Так что — нет, не является. Однако поменяв область действия бина на request, prototype, session он станет потокобезопасным, но это скажется на производительности.

21

Что такое контроллер в Spring MVC?

управление, связь между моделью и видом. обрабатывает запросы

22

@Component

используется для указания класса в качестве компонента спринг. При использовании поиска аннотаций, такой класс будет сконфигурирован как spring bean.

23

@Controller

пециальный тип класса, применяемый в MVC приложениях. Обрабатывает запросы и часто используется с аннотацией @RequestMapping.

24

@Repository

указывает, что класс используется для работы с поиском, получением и хранением данных. Аннотация может использоваться для реализации шаблона DAO.

25

@Service

указывает, что класс является сервисом для реализации бизнес логики (на самом деле не отличается от Component, но просто помогает разработчику указать смысловую нагрузку класса).

26

DispatcherServlet в MVC

сервлет диспетчера в MVC. Этот сервлет анализирует запросы и направляет их соответствующему контроллеру для обработки. В Spring MVC класс DispatcherServlet является центральным сервлетом, который получает запросы и направляет их соответствующим контроллерам. В приложении Spring MVC может существовать произвольное количество экземпляров DispatcherServlet, предназначенных для разных целей (например, для обработки запросов пользовательского интерфейса, запросов веб-служб REST и т.д.). Каждый экземпляр DispatcherServlet имеет собственную конфигурацию WebApplicationContext, которая определяет характеристики уровня сервлета, такие как контроллеры, поддерживающие сервлет, отображение обработчиков, распознавание представлений, интернационализация, оформление темами, проверка достоверности, преобразование типов и

27

ContextLoaderListener

слушатель при старте и завершении корневого класса Spring WebApplicationContext. Основным назначением является связывание жизненного цикла ApplicationContext и ServletContext, а так же автоматического создания ApplicationContext. Можно использовать этот класс для доступа к бинам из различных контекстов спринг. Настраивается в web.xml:


contextConfigLocation
/WEB-INF/spring/root-context.xml



org.springframework.web.context.ContextLoaderListener

28

WEB-INF папка

Папка WEB-INF служит хранилищем для файлов, к которым закрыт прямой доступ из адресной строки. Существует специальное понятие внутренних ресурсов, которые не доступны извне.

Поместив ваши представления в папку WEB-INF/view/*.jsp вы скроете представления и доступ к ним можно будет получить только из контроллера.

29

MultipartResolver в Spring?

Интерфейс MultipartResolver используется для загрузки файлов. Пару раз сталкивался - там еще бин с максимальным размером файла настраивается

30

ApplicationContext и WebApplicationContext

Spring загружает файл applicationContext.xml и создает ApplicationContext для всего приложения.
в одном веб-приложении может быть несколько WebApplicationContext. Говоря простыми словами, каждый DispatcherServlet связан с одним WebApplicationContext.

ApplicationContext предоставляет:

Фабричные методы бина для доступа к компонентам приложения
Возможность загружать файловые ресурсы в общем виде
Возможность публиковать события и регистрировать обработчики на них
Возможность работать с сообщениями с поддержкой интернационализации
Наследование от родительского контекста