Spring Ioc

2019-03-04  本文已影响0人  青柠_efca

IoC

实战:依赖注入的例子

消息服务接口和实现类

public interface MessageService {
   String getMessage();
}
public class MessageServiceImpl implements MessageService {
    private String username;
    private int age;

    public MessageServiceImpl(String username, int age) {
        this.username = username;
        this.age = age;
    }

    @Override
    public String getMessage() {
        return "Hello World!" + "\nusername is " + username + ",age is " + age;
    }
}

打印器类

public class MessagePrinter {
    final private MessageService messageService;

    public MessagePrinter(MessageService messageService) {
        this.messageService = messageService;
    }

    public void printMessage() {
        System.out.println(this.messageService.getMessage());
    }
}

配置文件

 <!--定义bean,并使用构造器注入-->
    <bean id="messageServiceImpl" class="com.spring.quickstart.MessageServiceImpl">
        <constructor-arg name="username" value="Way Lau"/>
        <constructor-arg name="age" value="30"/>
    </bean>

    <bean id="messagePrinter" class="com.spring.quickstart.MessagePrinter">
        <constructor-arg name="messageService" ref="messageServiceImpl"/>
    </bean>

应用主类

public class MessageApp {
    public static void main(String[] args) {
        ApplicationContext context = new ClassPathXmlApplicationContext("/applicationContext.xml");
        MessagePrinter messagePrinter = context.getBean(MessagePrinter.class);
        messagePrinter.printMessage();
    }
}

运行结果

Hello worldWay Lau,age is30
上一篇 下一篇

猜你喜欢

热点阅读