Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Отчёт по прозводственной практике .docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
734.88 Кб
Скачать

1.1 Разработка систем с использованием web-технологий

В наше время тяжело представить себе жизнь без различных электронных устройств и приспособлений. Они в значительной степени помогают нам облегчить выполнение каких-либо действий. WEB-технологии позволяют использовать один ресурс несколькими людьми или системами. WEB-технологии дают возможность изменять данный ресурс для удобного, удаленного доступа пользователей.

На базе WEB-технологий можно построить эффективную систему, связанную с электронной бизнес-коммерцией.

2. Краткое теоретическиое обоснование применяемых для решения поставленной задачи технологий

Для создания WEB-приложения, основываясь на MVC (model, view, controller), будем использовать:

  • для работы с данными – Hibernate

  • в качестве контейнера объектов - Spring

  • в качестве представления - Struts

2.1 WEB-технологии. Spring framework

Веб-приложение —  клиент-серверное приложение, в котором клиентом выступает браузер, а сервером — веб-сервер. Логика веб-приложения распределена между сервером и клиентом, хранение данных осуществляется, преимущественно, на сервере, обмен информацией происходит по сети. Одним из преимуществ такого подхода является тот факт, что клиенты не зависят от конкретной операционной системы пользователя, поэтому веб-приложения являются межплатформенными сервисами.

Spring – это легковесный открытый фреймворк, упрощающий разработку корпоративных (J2EE) приложений и нацеленный на использование простых JavaBean объектов.

  • Легковесный. 2.5 мегабайт и приложение не зависит от классов Spring-а, т.е. есть мы нигде не делаем наследования от Spring и никак от него не зависим, максимум мы можем реализовывать какой-нибудь интерфейс. Получается, что наше приложение реализует логику, а за дополнительными сервисами мы просто обращаемся к Spring, вызывая его методы. Причем вызов делается таким образом, что мы в основном вызываем тоже интерфейсы, а реализация у этих интерфейсов может быть разная, то есть Spring предлагает несколько реализаций для разных платформ, например, различная реализация доступа к данным и т.д. Также Spring можно использовать в маленьких приложениях.

  • Инверсия контроля (или инъекция зависимостей). Классы не создают своих зависимостей, они их получают (через метод setter можно получить любой сервис). Зависимость? То есть один класс зависит от другого класса. Например, наш какой-нибудь сервис выполняет отправку почты. Получается, что наш сервис зависит от сервиса отправки почты. В IoC суть заключается в том, что мы не создаем сервис отправки почты (new MailService и далее вызов методов), а мы его получаем. По сути мы получаем на вход, например, через setter или как угодно, но мы получаем Service и дальше делаем с ним всё что угодно. Интересно здесь то, что мы можем получить любой MailService.

  • Аспектно-ориентированный. Используется AspectJ. В Spring есть своя реализация АОП, но все же лучше использовать AspectJ. Если коротко, то АОП - это выделение сквозной функциональности в отдельные модули. Например, функциональность, которая занимается управлением транзакцией, то есть эта функциональность выносится в отдельный модуль и дополнение к функциональности тоже выносится в отдельный модуль. Потом определяем, что такой-то и такой-то метод будут участвовать в транзакции. То есть это позволяет локализовать все, что связано со сквозной функциональностью в одном месте.

  • Spring - это контейнер объектов. Это означает, что Spring хранит в себе объекты, он их создает и управляет их жизненным циклом. По сути это означает, что мы нигде не вызываем оператор new (через Spring не вызываем конструктор, то есть не используем new). Если нам понадобился какой-нибудь объект, то нужно обращаться к контейнеру Spring и он его выдает. Как он его выдает - это все можно настроить. Например, либо через new, либо будет выдавать Singleton, либо будет выдавать из пула объектов. IoC работает благодаря тому, что все объекты находятся в одном контейнере.

  • Фреймворк. Значит, что есть возможность, компоновать сложные приложения из простых компонент, настраиваемых в конфигурационных файлах. Также фреймворк упрощает выполнение и управление J2EE функциями в приложении (транзакции, сообщения, веб).