Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java开发框架,由Rod Johnson 在其著作ExpertOne-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。Spring的核心是控制反转(IoC)和面向切面(AOP)。
注:图片来源百度
1) Spring Core:主要组件是BeanFactory,是BeanFactory工厂模式的一个实现,使用IOC将应用配置和依赖说明与实际的应用代码分离出来。
2) Spring AOP:提供了面向切面编程的支持(后续详细介绍)。
3) Spring context:一个核心配置文件,为Spring框架提供上下文信息。
4) Spring dao:Spring操作数据库的模块。(后续详细介绍)
5) Spring ORM : Spring集成了各种orm(object relationship mapping 对象关系映射)框架的模块,集成Hibernate。
6) Spring web提供适合Web应用的上下文,也提供Spring和其他框架的集成,如struts。
7) Spring web mvc:利用IOC使控制逻辑和业务对象的完全分离。
1)创建一个接口 IOutputGenerator.java
package com.lsh.output;
publicinterface IOutputGenerator {
publicvoid lshOutput();
}
2)创建一个实现类JsonOutputGenerator.java
package com.lsh.output;
publicclass JsonOutputGenerator implementsIOutputGenerator {
publicvoid lshOutput(){
System.out.println("Json Output Generator");
}
}
3)创建一个实现类CsvOutputGenerator.java
package com.lsh.output;
publicclass CsvOutputGenerator implements IOutputGenerator{
publicvoid lshOutput(){
System.out.println("Csv Output Generator");
}
}
4)创建一个辅助类LshHelper.java
package com.lsh.output;
IOutputGeneratoroutputGenerator;
publicLshHelper (){
outputGenerator = newCsvOutputGenerator();
}
publicvoid lshOutput(){
outputGenerator.lshOutput();
}
5)创建一个测试类 test.java
package com.lsh.output;
publicclass test {
publicstaticvoid main(String[] args) {
OutputHelper output = newOutputHelper();
output.lshOutput();
}
}
输出:Csv OutputGenerator
更改辅助类
package com.lsh.output;
IOutputGeneratoroutputGenerator;
publicLshHelper (){
outputGenerator = newJsonOutputGenerator();
}
publicvoid lshOutput(){
outputGenerator.lshOutput();
}
输出:Json OutputGenerator
上述分析,辅助类LshHelper控制对象“IOutputGenerator”创建的,类与类之间存在藕合。
而Spring 就是将控制交由第三方,IOC容器充当管理者
1)附上Spring各个版本及spring依赖jar包下载地址:
http://maven.springframework.org/release/org/springframework/spring/
2)前提:JDK 1.8 + Apache tomcat 7.0
3)该工程下创建java文件和xml文件
新建一个OutputHelper_spring.java类
新建Spring-Common.xml文件
新建一个测试类test05.java
运行测试类
运行结果输出:Csv Output Generator
更改Spring-Common.xml文件内容
运行结果输出:Json Output Generator
分析:
IOC 容器 创建了OutputHelper_spring对象,通过setter方法传递outputGenerator对象到OutputHelper_spring。
IOC 容器依赖注入到OutputHelper_spring。
注:此章节简单介绍了Spring依赖注入的相关内容,资料参考出处“易百教程及百度”。