1 Создайте проект Maven, выберите архетип maven-archetype-webapp 1.4
2Пропишите зависимости в файл pom. xlm, версия Java 20
3Создайте папку конфиг, где добавьте класс-инициализатор и конфигурацинный файл
4Создайте класс-контроллер, про пишите в нëм маппинги
5Создайте DAO-класс для заметок
6Дополните контроллер
shell
mvn archetype:generate -DgroupId=com.example -DartifactId=my-webapp -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false
Где:
- `-DgroupId=com.example` задает идентификатор группы проекта
- `-DartifactId=my-webapp` задает идентификатор артефакта проекта
- `-DarchetypeArtifactId=maven-archetype-webapp` указывает, что мы хотим использовать архетип maven-archetype-webapp
- `-DinteractiveMode=false` указывает, что не нужно запрашивать дополнительные данные у пользователя
2. Прописывание зависимостей в файле pom.xml и версия Java:
Для добавления зависимостей в файл pom.xml нужно открыть его и добавить необходимые зависимости в секцию `<dependencies>`. Например, для добавления зависимости на Spring Framework, можно использовать следующую конфигурацию:
xml
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.0.0.RELEASE</version>
</dependency>
</dependencies>
Для указания версии Java используется элемент `<properties>` в файле pom.xml. Например, для указания версии Java 11:
xml
<properties>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
</properties>
3. Создание папки "конфиг" с классом-инициализатором и конфигурационным файлом:
Создадим папку "конфиг" в корневом каталоге проекта. Затем создадим в этой папке класс-инициализатор, который будет выполняться при запуске приложения, и конфигурационный файл для настройки приложения.
java
package com.example.config;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
public class AppInitializer extends HttpServlet {
@Override
public void init() throws ServletException {
// Инициализация приложения
}
}
4. Создание класса-контроллера и написание маппингов:
Создадим класс-контроллер в пакете "com.example.controller". Класс будет содержать методы для обработки входящих запросов и возвращать соответствующие ответы.
java
package com.example.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
@RequestMapping("/example")
public class ExampleController {
@GetMapping("/hello")
@ResponseBody
public String hello() {
return "Hello World!";
}
}
Данный класс является контроллером Spring MVC и имеет аннотацию `@Controller`, которая говорит о том, что класс является компонентом контроллера. Также для указания URL-пути к данному контроллеру используется аннотация `@RequestMapping`.
5. Создание DAO-класса для заметок:
Создадим класс DAO-класса для работы с заметками в пакете "com.example.dao". DAO-класс будет выполнять операции сохранения, получения и удаления заметок в базе данных или другом хранилище данных.
java
package com.example.dao;
import com.example.model.Note;
import org.springframework.stereotype.Repository;
@Repository
public class NoteDAO {
public void save(Note note) {
// Сохранение заметки в базе данных
}
public Note getById(Long id) {
// Получение заметки по идентификатору
return null;
}
public void delete(Note note) {
// Удаление заметки из базы данных
}
}
В данном примере класс DAO-класса имеет аннотацию `@Repository`, которая говорит о том, что класс является компонентом репозитория Spring. DAO-класс может использовать различные средства доступа к данным, такие как JDBC, JPA или другие.
6. Дополнение контроллера:
Дополним класс-контроллер `ExampleController` методами, которые будут выполнять операции с заметками, используя DAO-класс `NoteDAO`.
java
package com.example.controller;
import com.example.dao.NoteDAO;
import com.example.model.Note;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
@Controller
@RequestMapping("/example")
public class ExampleController {
private final NoteDAO noteDAO;
@Autowired
public ExampleController(NoteDAO noteDAO) {
this.noteDAO = noteDAO;
}
@GetMapping("/hello")
@ResponseBody
public String hello() {
return "Hello World!";
}
@PostMapping("/note")
@ResponseBody
public String saveNote(@RequestBody Note note) {
noteDAO.save(note);
return "Note saved successfully!";
}
@GetMapping("/note/{id}")
@ResponseBody
public Note getNoteById(@PathVariable Long id) {
return noteDAO.getById(id);
}
@DeleteMapping("/note/{id}")
@ResponseBody
public String deleteNoteById(@PathVariable Long id) {
Note note = noteDAO.getById(id);
if (note != null) {
noteDAO.delete(note);
return "Note deleted successfully!";
}
return "Note not found!";
}
}
В данном примере добавлены новые методы `saveNote`, `getNoteById` и `deleteNoteById`, которые выполняют операции сохранения, получения и удаления заметок, соответственно. Аннотация `@Autowired` указывает на внедрение зависимости DAO-класса `NoteDAO` в контроллер `ExampleController`.Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет
Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет