Я создал внешний контроллер в проекте, содержащем несколько (REST) приложений. Теперь проблема в том, что контроллер применяется ко всем приложениям, к которым я пытаюсь получить доступ через браузер. Я хотел бы спросить, является ли конфигурация или аннотация, чтобы определить, к какому приложению должен применяться контроллер.
Это код контроллера:
@Controller
public class FrontendController {
@RequestMapping(value = "/")
public String index() {
return "index";
}
}
В том же пакете реализовано приложение, которое обслуживает внешние источники:
@SpringBootApplication
public class WebServer {
public static void main(String[] args) {
// Tell server to look for web-server.properties or web-server.yml
System.setProperty("spring.config.name", "web-server");
SpringApplication.run(com.studienarbeit.chaoscenter.services.departments.DepartmentsServer.class, args);
}
}
Другие приложения находятся в разных пакетах, и, тем не менее, они по-прежнему обслуживают внешние источники. Других контроллеров в проекте нет, и другие приложения используют репозитории Spring Data REST.
Примечание: Каждое приложение работает на своем собственном порту.
Примечание 2: Я попробовал подход, используя профиль для контроллера:
@Profile("web-server")
Поскольку я работаю с IntelliJ, я установил для активного профиля значение web-server
и добавил следующий флаг в Параметры виртуальной машины для конкретного приложения:
-Dspring.profiles.active=web-server
Почему-то мои другие приложения все еще обращаются к внешнему контроллеру. Может я что то пропустил?
Примечание 3: Другие реализации приложения выглядят в основном точно так же, как приложение WebServer
, и они используют репозитории Spring Data REST, которые выглядят так:
public interface EmployeeRepository extends CrudRepository<Employee, Long> {
}