Инструменты пользователя

Инструменты сайта


develop:java:mvc

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
develop:java:mvc [2023/04/02 16:31]
admin
develop:java:mvc [2024/04/14 05:28] (текущий)
admin [Пример приложения]
Строка 67: Строка 67:
 </code> </code>
  
-pow.xml+pom.xml
 <code xml> <code xml>
 <?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
Строка 208: Строка 208:
   * src/main/resources - ресурсы, которые используются в приложении (html страницы, картинки, css и т.д.)   * src/main/resources - ресурсы, которые используются в приложении (html страницы, картинки, css и т.д.)
 Так же обязателен файл **pow.xml**, главный файл для управления работой мавена\\ Так же обязателен файл **pow.xml**, главный файл для управления работой мавена\\
 +
 +
 +==== Управление зависимостями ====
 +Зависимости перечисляются в теге **"dependencies"**\\
 +Всегда задаются как минимум три параметра: "groupId", "artifactId" и "version"\\
 +Узнать эти параметры можно на офф сайте пакета либо на сайте [[https://mvnrepository.com/|maven-репозитория]]. Репозитории кстати есть локальный, приоритетный и внешний\\
 +Пример блока "dependencies"\\
 +<code xml>
 +<dependencies>
 +  <dependency>
 +     <groupId>commons-io</groupId>
 +     <artifactId>commons-io</artifactId>
 +     <version>2.6</version>
 +  </dependency>
 +</dependencies>
 +</code>
 +
 +
 +===== Аннотации =====
 +
 +**Controller** – специальный тип класса, применяемый в MVC приложениях. Похож на обычный сервлет HttpServlet, работающий с объектами HttpServletRequest и HttpServletResponse, но с расширенными возможностями от Spring Framework.\\
 +
 +**Repository** – указывает, что класс используется для задания перечня
 +необходимых работ по поиску, получению и сохранению данных. Аннотация может использоваться для реализации шаблона DAO.\\
 +
 +**Service** – указывает, что класс является сервисом для реализации бизнес логики.\\
 +
 +**Configuration** – эта аннотация используется для классов, которые определяют bean-компоненты.\\
 +
 +**Autowired** – аннотация позволяет автоматически установить значение поля. Функциональность этой аннотации заключается в том, что нам не нужно заботиться о том, как лучше всего Bean'у передать экземпляр другого Bean'a. Spring сам найдет нужный Bean и подставит его значение в свойство, которое отмечено аннотацией.\\
 +
 +**Bean** - компоненты которые создаются и управляются контейнером "Spring IoC"\\
 +<details>
 +<summary>:!: Spring IoC</summary>
 +Inversion of Control - процесс, в котором объект определяет свои зависимости (вложенные объекты например) не объявляя их. Этот объект делегирует работу с такими зависимостями контейнеру "IoC"\\
 +
 +Например класс А содержит в своем свойстве объект класса Б, для инициализации первого объекта, нужно сначала явно создать объект второго, с помощью контейнера IoC этого можно избежать\\
 +
 +Пример объявления
 +<code java>
 +@Component
 +public class Company {
 +    // this body is the same as before
 +}
 +
 +@Configuration
 +@ComponentScan(basePackageClasses = Company.class)
 +public class Config {
 +    @Bean
 +    public Address getAddress() {
 +        return new Address("High Street", 1000);
 +    }
 +}
 +
 +////////
 +ApplicationContext context = new AnnotationConfigApplicationContext(Config.class);
 +
 +Company company = context.getBean("company", Company.class);
 +assertEquals("High Street", company.getAddress().getStreet());
 +assertEquals(1000, company.getAddress().getNumber());
 +</code>
 +</details>
 +
 +
 +
 +===== Установка =====
 +
 +[[https://maven.apache.org/install.html|Дока]]\\
 +Скачать дистрибутив, распаковать, добавить путь **bin/mvn** в переменную **PATH**
 +
 +
 +
  
  
develop/java/mvc.1680453119.txt.gz · Последнее изменение: 2023/04/02 16:31 — admin