У меня есть приложение для весенней загрузки (Java8, spring-boot 2.1.4-RELEASE).
Одной из служб на бизнес-уровне необходимо @Autowire bean-компонент из определенных банок в моем classpath. Для этого мне пришлось добавить @ComponentScan ({"package.to.my.bean.inside.the.jar"}), и он был волшебным образом отсканирован и успешно подключен (это было добавлено к основному классу весенней загрузки, который объявить основной метод).
Однако с тех пор мои контроллеры не сканируются, поэтому DispatcherServlet возвращает 404 для каждого запускаемого мной запроса (диспетчер по умолчанию).
На самом деле все мои аннотации весенних загрузочных приложений игнорируются - сканирование не выполняется.
Просто чтобы подчеркнуть - приложение работало отлично до добавления @ ComponentScan.
Класс основного весенне-загрузочного приложения:
package com.liav.ezer;
// This is the problematic addition that cause the endpoints to stop
// inside a jar in the classpath, in com.internal.jar package resides an
// object which i need to wire at run time
@ComponentScan({"com.internal.jar"})
@SpringBootApplication
public class JobsApplication {
public static void main(String[] args) {
SpringApplication.run(JobsApplication .class, args);
}
}
Пример контроллера:
package com.liav.ezer.controller;
@RestController
@EnableAutoConfiguration
@RequestMapping(path = "/jobs")
public class JobController {
@GetMapping(path="/create", produces = "application/json")
@ResponseStatus(HttpStatus.OK)
String createJob(@RequestParam() String jobName) String jobName){
return "job created...";
}
}
Я безуспешно пытался добавить базовый пакет приложения для весенней загрузки в список пакетов в @ComponentScan.
Я попытался сузить область действия объявления пакета до класса, который мне нужен, но не повезло.
Вот код