1. 新建一个maven项目,工程目录如下
2. 添加接口MessageService及其实现类MessageServiceImpl
MessageService.java
package com.peppa.service; public interface MessageService { String getMessage(); }
MessageServiceImpl.java
package com.peppa.serviceImpl; import com.peppa.service.MessageService; public class MessageServiceImpl implements MessageService { @Override public String getMessage() { return "hello world!"; } }
pom文件中添加spring-context依赖
<!-- https://mvnrepository.com/artifact/org.springframework/spring-context --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.1.5.RELEASE</version> </dependency>
在resources目录下添加application.xml文件,内容如下
<?xml version="1.0" encoding="UTF-8" ?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd" default-autowire="byName"> <bean id="messageService" class="com.peppa.serviceImpl.MessageServiceImpl"></bean> </beans>
添加Application.java,将MessageService从context中取出来,而不是使用 new MessageServiceImpl() 获取
package com; import com.peppa.service.MessageService; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class Application { public static void main(String[] args) { ApplicationContext context = new ClassPathXmlApplicationContext("classpath:application.xml"); System.out.println("start success"); MessageService messageService = context.getBean(MessageService.class); System.out.println("will print hello world"); System.out.println(messageService.getMessage()); } }
通过配置文件来启动Spring的ApplicationContext,也就是IoC的核心。ApplicationContext启动过程中,会负责创建实例Bean,往各个Bean中注入依赖等。