Как правильно использовать внедрение зависимостей в приложении Spring Boot?
Мое программное обеспечение имеет главное окно JavaFX и несколько вложенных диалоговых окон, которые открываются и закрыто из главного окна. Мне нужно использовать клиенты REST в поддиалогах, которые внедряются Spring Boot. Однако для инициализации каждого экземпляра клиента требуется параметр конструктора.
В итоге я получаю множество REST-клиентов в контроллере моего главного окна, которые затем передаются контроллерам подчиненного окна. диалоги. Есть ли лучший способ реализовать это, чтобы избавиться от всех параметров конструктора?
@Component
@Scope("prototype")
public class MainController {
private final FirstClient first;
private final SecondClient second;
private final ThirdClient third;
@Autowired
public MainController(FirstClient first, SecondClient second, ThirdClient third) {
this.first = first;
this.second = second;
this.third = third;
}
private void openSubDialog() {
// ...
SubController subController = new SubController(first, second);
// ...
}
private void openAnotherSubDialog() {
// ...
AnotherSubController anotherSubController = new AnotherSubController(first, third);
// ...
}
}
Мои классы контроллеров помечены @Component и @Scope("prototype").
@Component
@Scope("prototype")
public class SubController {
private final FirstClient first;
private final SecondClient second;
@Autowired
public SubController(FirstClient first, SecondClient second) {
this.first = first;
this.second = second;
}
private void doSomething() {
var result = first.callSomeService();
}
}
И, наконец, мои REST-клиенты выглядят примерно так:
@Service
public class FirstClient {
public SomeType callSomeService() {
return restClient.getSomeData();
}
}
Я ищу способ напрямую внедрить клиентов REST в контроллеры поддиалогов без необходимости добавлять параметры конструктора и передавать их. вниз от основного вида. В псевдокоде примерно так:
@Component
@Scope("prototype")
public class ImprovedController {
@InjectHereDirectly
private final FirstClient first;
@InjectHereDirectly
private final SecondClient second;
// No constructor needed
private void doSomething() {
var result = first.callSomeService();
}
}
Подробнее здесь: https://stackoverflow.com/questions/783 ... pring-boot
Внедрение зависимостей в приложение JavaFX с помощью Spring Boot ⇐ JAVA
Программисты JAVA общаются здесь
-
Anonymous
1713598759
Anonymous
[b]Как правильно использовать внедрение зависимостей в приложении Spring Boot?[/b]
Мое программное обеспечение имеет главное окно JavaFX и несколько вложенных диалоговых окон, которые открываются и закрыто из главного окна. Мне нужно использовать клиенты REST в поддиалогах, которые внедряются Spring Boot. Однако для инициализации каждого экземпляра клиента требуется параметр конструктора.
В итоге я получаю множество REST-клиентов в контроллере моего главного окна, которые затем передаются контроллерам подчиненного окна. диалоги. Есть ли лучший способ реализовать это, чтобы избавиться от всех параметров конструктора?
@Component
@Scope("prototype")
public class MainController {
private final FirstClient first;
private final SecondClient second;
private final ThirdClient third;
@Autowired
public MainController(FirstClient first, SecondClient second, ThirdClient third) {
this.first = first;
this.second = second;
this.third = third;
}
private void openSubDialog() {
// ...
SubController subController = new SubController(first, second);
// ...
}
private void openAnotherSubDialog() {
// ...
AnotherSubController anotherSubController = new AnotherSubController(first, third);
// ...
}
}
Мои классы контроллеров помечены @Component и @Scope("prototype").
@Component
@Scope("prototype")
public class SubController {
private final FirstClient first;
private final SecondClient second;
@Autowired
public SubController(FirstClient first, SecondClient second) {
this.first = first;
this.second = second;
}
private void doSomething() {
var result = first.callSomeService();
}
}
И, наконец, мои REST-клиенты выглядят примерно так:
@Service
public class FirstClient {
public SomeType callSomeService() {
return restClient.getSomeData();
}
}
Я ищу способ напрямую внедрить клиентов REST в контроллеры поддиалогов без необходимости добавлять параметры конструктора и передавать их. вниз от основного вида. В псевдокоде примерно так:
@Component
@Scope("prototype")
public class ImprovedController {
@InjectHereDirectly
private final FirstClient first;
@InjectHereDirectly
private final SecondClient second;
// No constructor needed
private void doSomething() {
var result = first.callSomeService();
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/78346407/dependency-injection-in-javafx-application-with-spring-boot[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия