Iは、以下のインターフェースを有する:その2 imlementationでクラスは、単一のBeanを必要とするが、2が見つかりました:
public interface MailSender {
void sender(String to, String subject,String body);
}
を:
public class SmtpkMailSender implements MailSender {
static Log log=LogFactory.getLog(MailSender.class);
public void sender(String to, String subject,String body){
log.info("SMTP To: "+to);
log.info("SMTP Subjecy: "+subject);
log.info("SMTP body: "+body);
}
}
及び第二つある:
@Primary
public class MockMailSender implements MailSender {
static Log log=LogFactory.getLog(MailSender.class);
public void sender(String to, String subject,String body){
log.info("To: "+to);
log.info("Subject: "+subject);
log.info("body: "+body);
}
}
次のようなコントローラクラスに依存性注入を使用しました:
01終わり@RestController
public class MailController {
@Autowired
private MailSender smtpkMailSender;
@RequestMapping("/send")
public String send(){
smtpkMailSender.sender("Person", "Important", "Take Care");
return "mail is sent";
}
}
私は私の豆を含む構成クラスがあります。
@Configuration
public class MailConfig {
@Bean
public SmtpkMailSender getSmtpkMailSender(){
return new SmtpkMailSender();
}
@Bean
public MockMailSender getMockMailSender(){
return new MockMailSender();
}
}
残念ながら、私は自分のアプリケーションを実行すると、それはして文句を言う:見ての通り、私は持っているが、
をプライマリとしてMockMailSender
を指定しました。春はまだ文句を言わず、それを識別できません。
あなたは注入する予定豆綴るために修飾子を追加します。 – duffymo