Предположим, у нас есть приложение написанное с помощью Spring Boot, а так же есть конфигурация на xml, рассмотрим, как использовать их в одном приложении:
Есть 2 сущности, кошки и пользователи:
package com.entity; public class User { private String name; private String surname; public User() { } public User(String name, String surname) { this.name = name; this.surname = surname; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSurname() { return surname; } public void setSurname(String surname) { this.surname = surname; } }
package com.entity; public class Cat { private String name; private int age; public Cat(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }Контроллер для пользователей и для котов, обратите внимание, они находятся в разных пакета:
package com.controller; import com.entity.User; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.ArrayList; import java.util.List; @RestController public class UserController { private static Listusers = new ArrayList (){{ add(new User("name", "surname")); add(new User("name2", "surname2")); add(new User("name3", "surname3")); add(new User("name4", "surname4")); add(new User("name5", "surname5")); }}; @RequestMapping("/api/users/all") public List getAllUser(){ return users; } }
package ru.controller.web; import com.entity.Cat; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.ArrayList; import java.util.List; @RestController public class CatController { private static ListКонфиг xml:cats = new ArrayList (){{ add(new Cat("name",1)); add(new Cat("name2",2)); add(new Cat("name3",3)); add(new Cat("name4",4)); }}; @RequestMapping("/api/cats/all") public List getCats(){ return cats; } }
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd "> <context:component-scan base-package="ru.controller.*"/> </beans>И инициализатор для Spring Boot:
package com; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.ImportResource; @SpringBootApplication(scanBasePackages = "com.*") @ImportResource("classpath*:context.xml") public class Application { public static void main(String[] arg){ SpringApplication.run(Application.class, arg); } }Необходимо обратить внимание, на то, что сканирование просиходит из пакета com.*, т.е. контроллер для кошек - игнорирутся. Подключение xml конфигурации происходит с помощью аннотации ImportResources, в него передается массив с путями до xml конфигураций. Запустив приложение, видим, что оба пути /api/cats/all и /api/users/all - работают.
Комментариев нет :
Отправить комментарий