Code: Select all
xl.person.controller.PersonController
Die PersonController-Klasse befindet sich im externen Modul (dieses Modul hat auch die Abhängigkeit) – @RestController-Anmerkungen
In meinem Application-Modul instanziiere ich die Beans als solche und würde erwarten, dass der PersonController aus der benutzerdefinierten Abhängigkeit nicht enthalten ist . Wie Sie sehen können, wird „componentScan“ für andere Klassen benötigt, die ich aus der benutzerdefinierten Abhängigkeit verwende
Code: Select all
@Configuration
@ComponentScan(
basePackages = "xl.person",
excludeFilters={
@ComponentScan.Filter(
type = FilterType.ASSIGNABLE_TYPE,
value = { xl.person.controller.PersonController.class }
)
}
)
public class PersonConfiguration {
@Bean
@Primary
PersonController personController(
PersonService service, //from dependency
PersonSecondService serviceTwo //not from dependency
) {
return new PersonController(service, serviceTwo);
}
}
Code: Select all
@SpringBootApplication(
scanBasePackages = "xl.app"
exclude = { PersonController.class }
)
Update
Trigger scheint der @RestController zu sein< /code> auf der PersonController-Definition Ich habe. Im externen Modul ist die Klasse also bereits erstellt und steht dann in Konflikt mit der benutzerdefinierten Abhängigkeit. Aus offensichtlichen Gründen möchte ich jedoch den @RestController in meiner Controller-Klasse behalten.
Auch der @ComponentScan in meiner Konfigurationsklasse scheint ignoriert zu werden (daher funktioniert nicht), weil @SpringBootApplication(scanBasePackages="xl.app") meiner Meinung nach den ersten Scan durchführt und bereits den Fehler auslöst. Allerdings funktioniert hier nicht das Ausschließen = { PersonController.class der benutzerdefinierten Abhängigkeitsklasse.