本文共 1433 字,大约阅读时间需要 4 分钟。
自动依赖注入大大简化了我们的工作量,但是也有缺陷,如果一个接口有多个实现类,我们该注入哪一个呢?一种方法是设置其中一个bean不参与自动注入。
package shangbo.spring.example38;public interface MessageService { String getMessage();}
package shangbo.spring.example38;public class MessageServiceDBImpl implements MessageService { public String getMessage() { return "This message from database"; }}
package shangbo.spring.example38;public class MessageServiceFileImpl implements MessageService { public String getMessage() { return "This message from file"; }}
package shangbo.spring.example38;public class MessagePrinter { private MessageService service; public void setService(MessageService service) { this.service = service; } public void printMessage() { System.out.println(service.getMessage()); }}
package shangbo.spring.example38;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;public class App { public static void main(String[] args) { // 实例化 Spring IoC 容器 ApplicationContext context = new ClassPathXmlApplicationContext("example.xml", MessagePrinter.class); // 从容器中获得 MessagePrinter 的实例 MessagePrinter printer = context.getBean(MessagePrinter.class); // 使用对象 printer.printMessage(); }}
我们也可以设定全局设定哪些对象不参数自动注入。
–
– 声 明:转载请注明出处 – Last Updated on 2017-05-25 – Written by ShangBo on 2017-05-25 – End