Весна, вводя список бобов только с конкретными бобами, включеннымиJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Весна, вводя список бобов только с конкретными бобами, включенными

Сообщение Anonymous »

Весной, когда я вводил список бобов, я хочу вводить конкретные реализации интерфейса, когда используется в разных местах. Это возможно? Какой будет самый чистый способ настроить это? Например, у меня есть следующие валидаторы: < /p>
public interface Validator {
Optional validate(MultipartFile file);
}

public class Validator1 implements Validator {
public Optional validate(MultipartFile file) {
// do stuff
}
}

public class Validator2 implements Validator {
public Optional validate(MultipartFile file) {
// do stuff
}
}

public class Validator3 implements Validator {
public Optional validate(MultipartFile file) {
// do stuff
}
}
< /code>
, а затем у меня есть служба проверки, которая выглядит аналогично этим: < /p>
public class ValidationService {
@Autowired
private List validators;

public List validate(MultipartFile file) {
List errors = new ArrayList();
validators.forEach(v -> {
Optional error = v.validate(file);
if (error.isPresent()) {
errors.add(error.get());
}
});
return errors;
}
}
< /code>
, а затем у меня есть несколько сервисов, которые используют Validationservice, например: < /p>
public class Service1 {

@Autowired
private ValidationService validationService;

public void doStuff(MultipartFile file) {
...
validationService.validate(file);
...
}
}

public class Service2 {

@Autowired
private ValidationService validationService;

public void doStuff(MultipartFile file) {
...
validationService.validate(file);
...
}
}
< /code>
Когда проверяют звонки Service1, я хочу, чтобы Validator1 и Validator2 были введены в Validatoratorservice.
Когда вызовы Service2 Validate, я хочу только Validator2 и Validator3. Validatorservice. < /p>
Надеюсь, я объяснил это достаточно четко. Заранее спасибо за любую предложенную помощь.

Подробнее здесь: https://stackoverflow.com/questions/715 ... s-included
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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