반응형
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean
with name 'emailService' defined in file [C:\~~~~~~~\.class]: Unsatisfied dependency expressed
through constructor parameter 1; nested exception is
org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type
'org.springframework.mail.javamail.JavaMailSender' available: expected at least 1 bean which
qualifies as autowire candidate. Dependency annotations: {}
...
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean
of type 'org.springframework.mail.javamail.JavaMailSender' available: expected at least 1 bean
which qualifies as autowire candidate. Dependency annotations: {}
autowired를 통한 자동주입이 어렵기 때문에 JavaMailSender타입의 Bean을 새로 등록해본다는 생각해봄
package com.sample.mail;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import java.util.Properties;
@Configuration
public class MailConfiguration {
@Bean
public JavaMailSender javaMailSender(){
JavaMailSenderImpl javaMailSender = new JavaMailSenderImpl();
javaMailSender.setHost("mail.sample.co.kr");
javaMailSender.setUsername("SMTP 설정 이메일");
javaMailSender.setPassword("계정 비밀번호");
javaMailSender.setPort(465);
javaMailSender.setJavaMailProperties(getMailProperties());
return javaMailSender;
}
private Properties getMailProperties() {
Properties properties = new Properties();
properties.setProperty("mail.transport.protocol", "smtp");
properties.setProperty("mail.smtp.auth", "true");
properties.setProperty("mail.smtp.starttls.enable", "true");
properties.setProperty("mail.debug", "true");
properties.setProperty("mail.smtp.ssl.trust","smtp.naver.com");
properties.setProperty("mail.smtp.ssl.enable","true");
return properties;
}
}
이 이슈가 생기는 근본적인 것을 고민해 보았는데 역시 application.yml의 값들을 제대로 @Value에서 못 읽는다는 생각이 들었다.
@PropertySource(value = " ")나@PropertySource("classpath:")를 쓰려고 해도 해당 어노테이션은 .properties만 적용되고 .yml은 적용되지 않아 사용이 불가능 하다.
반응형
'Backend > Utils' 카테고리의 다른 글
[Tiles] 프로젝트에 Tiles 적용 (0) | 2024.03.04 |
---|---|
[Tomcat] Invalid byte tag in constant pool : 19, Tomcat로그 한글깨짐 (0) | 2024.02.28 |
[Feat] Pagenation, Select 옵션 (0) | 2023.10.29 |
[Feat] 다중선택, Radio 옵션, VO 파라미터 전달 (0) | 2023.10.27 |
POI 사용법 (0) | 2023.07.25 |