<dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-spi-annotations</artifactId> <version>3.10.0</version> </dependency> public interface MailSender { void sendMail(String to, String subject, String body); } public class DefaultMailSender implements MailSender { @Override public void sendMail(String to, String subject, String body) { // ... } } import org.apache.camel.spi.annotations.Service; @Service(MailSender.class) public class DefaultMailSender implements MailSender { @Override public void sendMail(String to, String subject, String body) { // ... } } import org.apache.camel.spi.annotations.Service; @Service(MailSender.class, name = "advanced") public class AdvancedMailSender implements MailSender { @Override public void sendMail(String to, String subject, String body) { // ... } } import org.apache.camel.spi.ServiceFactory; import org.apache.camel.spi.annotations.Inject; public class MailSenderLoader { @Inject private ServiceFactory<MailSender> mailSenderFactory; public MailSender loadMailSender() { return mailSenderFactory.newInstance(); } } public class Main { public static void main(String[] args) { MailSenderLoader mailSenderLoader = new MailSenderLoader(); MailSender mailSender = mailSenderLoader.loadMailSender(); mailSender.sendMail("to@example.com", "Hello", "This is a test email"); } }


上一篇:
下一篇:
切换中文