Необязательный компонент от создания до использованияJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Необязательный компонент от создания до использования

Сообщение Anonymous »

В application.yml некоторые свойства могут быть заданы или нет (в зависимости от среды обработка в конце может быть выполнена или нет). Если не задано, то компонент, инициализированный этими свойствами в конфигурации, не должен инициализироваться. Я видел, что не рекомендуется возвращать значение null.
В коде службы я хочу инициализировать его только в том случае, если компонент был создан в конфигурации.
В коде службы, где используется предыдущая служба, я видел, что я могу использовать Необязательно в конструкторе или @Autowired(required = false) для атрибута, а затем я сделаю if(myService != null), чтобы не выполнять код, если сервис не существует.
Пример кода в конфигурации с комментарием, где я не знаю, что делать:
@Configuration
public class MyConfiguration {
// Empty value by default if not given
@Value("${property.value:}")
private String myProperty;

@Bean("myBean")
public MyBeanObject myBeanObject() {
if (StringUtils.isNotEmpty(this.myProperty)) {
return new MyBeanObject;
} else {
// How to do?
}
}
}

Пример первого сервиса с комментарием, где я не знаю, как делать:
// How to make this service optional and not created if bean does not exist?
@Service("myFirstService")
public class MyFirstServiceImpl extends AbstractMyService {
@Autowired
public MyFirstServiceImpl(@Qualifier("myBean") MyBeanObject myBeanObject) {
super(myBeanObject);
}
}

Пример второго сервиса, где я выполняю обработку только в том случае, если сервис существует (не знаю, правильно ли это):
@Service
public class MySecondServiceImpl {
private AbstractMyService myService;

@Autowired
public MySecondServiceImpl(@Qualifier("myFirstService") Optional myServiceOpt) {
if(myServiceOpt.isPresent()) {
this.myService = myServiceOpt.get();
}
}

public void method() {
if(this.myService != null) {
// treatment
}
}
}


Подробнее здесь: https://stackoverflow.com/questions/798 ... n-to-usage
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»