本文不涉及原理深入的内容,仅介绍一下spring容器启动最简单的方式——ClassPathXmlApplicationContext。
1. spring容器jar包引入
maven坐标dependency
groupId:org.springframework
artifactId:spring-context
version:4.3.11.RELEASE
2. 定义一个接口类
package com.loge.service;
public interface TestApi {
public TestBean sayHello();
}
3. 定义一个实现类
package com.loge.service.Impl;
import com.loge.service.TestApi;
public class TestApiImpl implements TestApi {
@Override
public void sayHello() {
System.out.println("hello");
}
}
4. 新建xml配置文件
需要在resources目录下创建一个配置文件,文件名没有特别要求,例如本文就用test.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" xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.2.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.2.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-4.2.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.2.xsd">
<bean id="testApi" class="com.zeei.service.Impl.TestApiImpl"/>
</beans>
5. 定义启动文件
package com.loge.demo;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Test {
public static void main(String[] args) throws FileNotFoundException, UnsupportedEncodingException {
ApplicationContext ac = new ClassPathXmlApplicationContext("classpath:test.xml");
TestApi testApi = ac.getBean("testApi",TestApi.class);
testApi.sayHello();
}
}
如果使用springboot方式跟这种方式有些区别,待补充...