уточняющие бобы в SpringBoot - PullRequest
0 голосов
/ 17 января 2019

У меня есть приложение SpringBoot. с этим классом, который я использую, чтобы подделать отправителя почты в моей среде localhost

@Service
@Profile("local")
@Qualifier("emailSender")
public class FackeEmailSender {
private static final Logger logger = LoggerFactory.getLogger(FackeEmailSender.class);

и этот другой

@Service
@Profile("prod")
public class EmailSender {
    private static final Logger logger = LoggerFactory.getLogger(EmailSender.class);

тем не менее, когда я запускаю приложение. с этим профилем:

spring.profiles.active=local

Я получил эту ошибку

***************************
APPLICATION FAILED TO START
***************************

Description:

Parameter 0 of method setEmailSender in com.tdk.jms.EmailQueueListener required a bean of type 'com.tdk.services.EmailSender' that could not be found.


Action:

Consider defining a bean of type 'com.tdk.services.EmailSender' in your configuration.

и

@Component
class EmailQueueListener implements QueueListener {


    private EmailSender emailSender;


    @Autowired
    void setEmailSender(EmailSender emailSender) {
        this.emailSender = emailSender;
    }
..
}

Ответы [ 2 ]

0 голосов
/ 16 июня 2019

вы можете попробовать использовать

@ AutoSired EmailSender EmailSender;

вместо использования в setEmailSender

0 голосов
/ 17 января 2019

Ваш EmailSender & FackeEmailSender не реализует интерфейс. вы можете извлечь интерфейс EmailSender и затем реализовать этот интерфейс для обоих компонентов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...