Інтеграція Spring з Struts 2 поєднує переваги обох фреймворків. Struts 2 чудово підходить для обробки взаємодії з користувачем у веб-додатках, а Spring спрощує управління залежностями та ресурсами в вашій програмі. Разом вони дозволяють створювати потужні та модульні веб-додатки.
Що таке Spring?
Spring — це популярний фреймворк, який полегшує розробку на Java. Однією з його основних функцій є впровадження залежностей (Dependency Injection, DI), що означає, що об’єкти (як, наприклад, ваш клас Action) можуть автоматично отримувати свої необхідні залежності (як сервіси або класи DAO), без необхідності створювати чи керувати ними вручну.
Чому варто інтегрувати Spring з Struts 2?
- Struts 2 обробляє веб-запити та взаємодію з користувачем.
- Spring керує логікою на рівні додатка, такою як сервіси, підключення до бази даних та біні.
Використання Spring з Struts 2:
- Дозволяє вам керувати сервісами та бінів з допомогою Spring.
- Спрощує управління залежностями, дозволяючи Spring керувати створенням та впровадженням об’єктів.
Як інтегрувати Spring з Struts 2?
Крок 1: Додайте необхідні бібліотеки
Вам потрібно включити JAR-файли для Spring та Struts 2 у вашому проекті.
Наприклад:
- JAR-файли Struts 2: struts2-core, struts2-spring-plugin
- JAR-файли Spring: spring-core, spring-context, spring-beans
Крок 2: Налаштування Spring за допомогою applicationContext.xml
Це файл конфігурації Spring, у якому ви визначаєте свої біні.
Бін — це просто об'єкт, яким керує Spring за вас.
Приклад (applicationContext.xml):
Крок 3: Створення класу сервісу
Цей клас містить бізнес-логіку вашого додатка.
Приклад (UserService.java):
package com.example.service;
public class UserService {
public String registerUser(String name, String email) {
// Імітація збереження користувача в базі даних
return "Користувач зареєстрований з ім'ям: " + name + " та електронною поштою: " + email;
}
}
Крок 4: Створення класу Action для Struts 2
Клас Action обробляє запити користувача і взаємодіє з сервісом, яким керує Spring.
Приклад (UserAction.java):
package com.example.action;
import com.example.service.UserService;
import com.opensymphony.xwork2.ActionSupport;
import org.springframework.beans.factory.annotation.Autowired;
public class UserAction extends ActionSupport {
private String name;
private String email;
private String message;
// Автоматичне впровадження біну UserService
@Autowired
private UserService userService;
public String execute() {
message = userService.registerUser(name, email);
return SUCCESS;
}
// Геттери та сеттери для name, email та message
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getMessage() {
return message;
}
}
Крок 5: Налаштування struts.xml
Цей файл зв'язує клас Action з додатком.
Приклад (struts.xml):
success.jsp
Крок 6: Оновлення web.xml для завантаження Spring
Вам потрібно налаштувати Spring у файлі web.xml вашого додатка.
Приклад:
contextConfigLocation
/WEB-INF/applicationContext.xml
org.springframework.web.context.ContextLoaderListener
Крок 7: Створення форми вводу (index.jsp)
Створіть форму, де користувачі можуть ввести свої дані.
Приклад (index.jsp):
Name:
Email:
Крок 8: Створення сторінки успіху (success.jsp)
Ця сторінка відображає повідомлення про успіх.
Приклад (success.jsp):
${message}
``` # Як це працює 1. Користувач заповнює форму на **index.jsp** і відправляє її. 2. Запит надсилається до класу **UserAction**. 3. Spring впроваджує бін **UserAction** в клас Action. 4. **UserService** обробляє запит і повертає повідомлення. 5. Повідомлення відображається на **success.jsp**. # Підсумок простого прикладу 1. **Форма**: Користувач вводить ім'я та електронну пошту. 2. **Клас Action**: Struts 2 обробляє форму і викликає сервіс, яким керує Spring. 3. **Сервіс**: Spring обробляє дані. 4.
**Результат**: Відображає повідомлення про успіх.
Знайдіть усі відповідні теми тут: [
https://medium.com/@SachinPandeyOnline/list/advanced-java-5584092a1097](/@SachinPandeyOnline/list/advanced-java-5584092a1097)
Перекладено з: [Advanced Java — Spring with Struts2](https://medium.com/@SachinPandeyOnline/advanced-java-spring-with-struts2-a08ba29e8aa6)