自学笔记,如有错误请指出,我虚心改正
环境说明:Windows10、MyEclipse2016ci、jdk1.8、MySQL5.7、Tomcat9.0
材料准备:
还没有开始使用Maven的开发者可以在Spring官网上去寻找需要的包,下载过程可以参考番外1 (https://blog.csdn.net/jinxlzc/article/details/88044005)
本次需要的Spring包一共有4个:
基础包名 | 分别对应Spring核心容器模块 |
spring-core-5.1.5.RELEASE.jar | Spring-core模块 |
spring-beans-5.1.5.RELEASE.jar | Spring-beans模块 |
spring-context-5.1.5.RELEASE.jar | Spring-context模块 |
spring-expression-5.1.5.RELEASE.jar | Spring-expression模块 |
此外Spring框架依赖于Apache Commons Logging组件,所以需要下载commons-logging-1.2.jar,下载方法参考番外1文章最后
新建一个文件夹将找到的5个包放在一起,至此前期准备材料工作完成
使用MyEclipse创建一个Web项目并导入刚才准备好的包
创建TestDao接口,Spring解决的是业务逻辑层和其他层的耦合问题,所以它采用的是面向接口编程思想
在src目录下建一个名为dao的包,并在包中创建接口TestDao,在接口中创建say方法,代码如下:
package dao;
/**
* @author lzc
*
*/
public interface TestDao {
public void say();
}
创建TestDao接口的实现类TestDaoImpl
在dao包下创建TestDao接口的实现类TestDaoImpl,代码如下
package dao;
/**
* @author lzc
*
*/
public class TestDaoImpl implements TestDao{
@Override
public void say()
{
System.out.println("Hello World!");
}
}
创建配置文件applicationContext.xml
在src目录下创建Spring的配置文件applicationContext.xml,在文件里使用实现类TestDaoImpl创建一个id为test的Bean,代码如下:
<?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"
>
<bean id="test" class="dao.TestDaoImpl"/>
</beans>
配置文件的信息可以从Spring的帮助文档中复制,找到当时Spring包的解压文件夹,打开到目录(spring-framework-5.1.5.RELEASE-dist\spring-framework-5.1.5.RELEASE\docs\spring-framework-reference),打开core.html
在1.2.1. Configuration Metadata中可以找到配置文件的约束信息
创建测试类
在src目录下创建一个test包,并在包中创建Test类,代码如下:
package Test;
import dao.TestDao;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
/**
* @author lzc
*
*/
public class Test {
public static void main(String[] args) {
ApplicationContext appCon =new ClassPathXmlApplicationContext("applicationContext.xml");
TestDao thetest=(TestDao)appCon.getBean("test");
thetest.say();
}
}
执行该类的main方法得到如下效果:
小结:程序没有使用new来创建TestDaoImpl的对象,而是让Spring来获取实现类对象,这就是Spring IoC的工作机制