Скачать презентацию Spring Framework Io C Containers Цели Скачать презентацию Spring Framework Io C Containers Цели

Season 2 - Spring Framework.pptx

  • Количество слайдов: 14

Spring Framework Io. C Containers Spring Framework Io. C Containers

Цели • Познакомиться с Spring Framework • Рассмотреть основные модули Spring Framwork • Понять Цели • Познакомиться с Spring Framework • Рассмотреть основные модули Spring Framwork • Понять что такое Inversion of Control • Реализация Inversion of Control в Spring

Что такое Spring Универсальный фреймворк с открытым исходным кодом для Javaплатформы. • Inversion of Что такое Spring Универсальный фреймворк с открытым исходным кодом для Javaплатформы. • Inversion of Control контейнер • Модель-представление-контроллер • Доступ к данным • Управление транзакциями • Интеграция с другими фреймворками

Framework Architecture Spring Framework Web (MVC/Remoting) Data Access Integration JDBC ORM Web Servlet OXM Framework Architecture Spring Framework Web (MVC/Remoting) Data Access Integration JDBC ORM Web Servlet OXM JMS Portlet Struts AOP Aspects Instrumentation Core Container Beans Core Context Test Expression Language

Component Dependencies Пример зависимостей классов в реальном проекте Lucene. Search. Manager (полнотекстовый поиск на Component Dependencies Пример зависимостей классов в реальном проекте Lucene. Search. Manager (полнотекстовый поиск на основе Lucene) User. Manager (работа с пользователями – создание, удаление, поиск) Connection. Pool (подключение к БД) Session. Manager (управление пользовательскими сессиями) JDBC (основная работа с БД) Cache. Manager (хранение и извлечение объектов из кэша) Full. Text. Search. Manager (полнотекстовый поиск) Search. Manager (основной набор поисковых команд)

Configuration file

Application. Context Контейнер объектов и их зависимостей. //Context is located on file system Application. Application. Context Контейнер объектов и их зависимостей. //Context is located on file system Application. Context context 1 = new File. System. Xml. Application. Context("c: /Beans. xml"); //Context is located within CLASSPATH Application. Context context 2 = new Class. Path. Xml. Application. Context("context. xml"); //Context is located in servlet context Application. Context context 3 = (Application. Context) get. Servlet. Context(). get. Attribute("org. springframework. web. context. Web. Application. Context. ROOT"); Table Manager Bean Factory Cache Manager JDBC Session Mamanger Download Service Library Processor Connection Pool User Factory Result Holder Form Manager User Manager Full. Text Search

Bean Definition Properties class id/name scope constructor-arg properties initialization method destruction method Description Определяет Bean Definition Properties class id/name scope constructor-arg properties initialization method destruction method Description Определяет имя класса для создания объекта Имя “бина” которое можно использовать для извлечения из контекста или связывания с другими “бинами”. Определяет поведение при создании “бина”. Параметры передаваемые в конструктор класса. Список всех зависимостей от других “бинов”. Имя метода который будет вызван после установления всех зависимостей. Имя метода который будет вызван после того как бин будет удален из контекста.

Bean Scopes Scope Description singleton Состояние по умолчанию. Определяет создание “бина” по типу синглтон. Bean Scopes Scope Description singleton Состояние по умолчанию. Определяет создание “бина” по типу синглтон. prototype Новый объект будет создан каждые раз при извлечении из Application. Context или создании в зависимостях. request Доступен только в web-aware Application. Context. Объект будет создан для каждого нового HTTP Request. session Доступен только в web-aware Application. Context. Объект будет создан для каждого нового HTTP Session.

Base Interfaces public class Example. Bean implements Initializing. Bean { public void after. Properties. Base Interfaces public class Example. Bean implements Initializing. Bean { public void after. Properties. Set() { // do some initialization work } } public class Example. Bean implements Disposable. Bean { public void destroy() { // do some destruction work } } public class Example. Bean implements Application. Context. Aware { public void set. Application. Context(Application. Context arg 0) throws Beans. Exception { //setup application context } }

Io. C Annotations @Component @Scope( Io. C Annotations @Component @Scope("session") public class JDBC { //Spring bean component, does not require to be declared in app context } public class User. Manager { //be sure jdbc will be initialized before you start using it @Autowired private JDBC jdbc; }

Life Cycle Annotations public class User. Manager { @Post. Construct public void init() { Life Cycle Annotations public class User. Manager { @Post. Construct public void init() { //do some initialization work } @Pre. Destroy public void destroy() { //release all resources } } public class User. Manager { //You can use context in any Bean @Autowired private Application. Context app. Context; }

Пример приложения с использованием Spring Framework • Эмуляция работы базы данных с прослойкой подключаемого Пример приложения с использованием Spring Framework • Эмуляция работы базы данных с прослойкой подключаемого кэша реализованного с помощью Spring Io. C.

Домашнее задание Accelerator Control. Panel Vehicle Gas. Tank Engine Steering. Wheel Horn Hand. Brake. Домашнее задание Accelerator Control. Panel Vehicle Gas. Tank Engine Steering. Wheel Horn Hand. Brake. Pedal Forward wheels Wheel Rear wheels Wheel 1. Создать зависимости между объектами с помощью Spring Io. C используя реальные данные. 2. Мы должны получить управление путем извлечения объекта Vehicle из контекста и взяв его Control. Panel. 3. Модель должна отвечать следующим требованиям: - Передние колеса должны реализовать интерфейс Steared (поворачиваемые) и Retarding (умеющие тормозить) - Задние колеса только Retarding (умеющие тормозить) - Brake. Pedal и Hand. Brake должны с разной силой воздействовать на торможение колес - Управление автомобилем должно происходить через Control. Panel, результаты управления должны выводиться в консоль - Каждый элемент должен реализовывать интерфейс Status. Aware и возвращать свое состояние (работоспособность, наличие горючего и т. д. ) - После создания Control. Panel должен сработать метод инициализации и он должен получить состояние каждого узла и вывести все на экран - Control. Panel должна отображать текущую скорость автомобиля в зависимости от управления.