Встречается на собеседованиях • сегодня

Как использовать одну логику для нескольких Bean в Spring

В Spring можно использовать общую логику для нескольких бинов через:

  1. Наследование - создать абстрактный класс с общей логикой и наследовать его
java
public abstract class CommonLogic {
    public void sharedMethod() {
        // общая логика
    }
}

@Component
public class BeanA extends CommonLogic { ... }

@Component
public class BeanB extends CommonLogic { ... }

text

2. **Композицию** - вынести логику в отдельный компонент и инжектить его
```java
@Component
public class SharedService {
    public void sharedMethod() { ... }
}

@Component
public class BeanA {
    @Autowired
    private SharedService sharedService;
}

@Component
public class BeanB {
    @Autowired 
    private SharedService sharedService;
}
  1. Аспекты (AOP) - если логика кросс-каттинговая (логирование, транзакции)
java
@Aspect
@Component
public class CommonAspect {
    @Around("execution(* com.example..*(..))")
    public Object applyCommonLogic(ProceedingJoinPoint pjp) throws Throwable {
        // общая логика до/после
        return pjp.proceed();
    }
}
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы