Я пытаюсь создать трехуровневое приложение с пружиной, view
, logic
, data
, более или менее. view
зависит от logic
, что зависит от data
.Многоуровневое разрешение на использование приложения весны
Как настроить приложение Spring в проекте view
, чтобы можно было разрешить граф зависимостей?
Например:
view
В слое:
@Controller
public class SomeView {
private final SomeService someService;
@Autowired
public SomeView(SomeService someService) {
this.someService = someService;
}
}
@Configuration
@EnableAutoConfiguration
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
В logic
слое:
@Component
public class SomeService {
private final SomeData someData;
@Autowired
public SomeService(SomeData someData){
this.someData = someData;
}
}
В data
слое:
@Component
public class SomeData {
}
Эта конфигурация не может загрузиться, поскольку SomeService
не может решить SomeData
потому SomeData
не сканируется в view
слоях Application.java
Это интересно, и я думаю, что он решает мою проблему, но у меня все еще есть проблемы. Если я перемещаю 'Приложение' в' com.example.something' (где все остальные зависимости находятся в 'com.example.something'), он работает; однако, если я оставлю его в 'com.example.something.else' с' ComponentScan ({"com.example.something"}) ', он не работает. Разве это не должно быть одно и то же? – Tom
Что вы уходите в пакет com.example.something.else, Application.cass или другие классы. Это должно быть хорошо, потому что оно остается тем же. Также см. Мое редактирование для дополнительного решения. –
Если это решит вашу проблему, тогда примите ее. Мне нужно знать и для другого помочь :) –