一、概述
Spring是一个分层的SE/EE一站式轻量级开源框架
一站式框架:有EE开发的每一层解决方案。
Web层:SpringMVC
Service层:Spring的Bean管理,Spring声明式事务
DAO层:Spring的JDBC模板,Spring的ORM模板
二、Spring的优势、
1、方便解耦,简化开发
通过Spring提供的IOC容器,可以将对象之间依赖关系交由Spring控制,以降低程序过度耦合。
2、AOP编程的支持
3、声明式事务的支持
4、方便集成各种优秀框架
三、IOC:Inversion of Control(控制反转)
耦合比如:
Class Service{public voidmethod(){
DAO dao= newDAOImpl();
dao.method();
}
}
现在DAOImpl要换成DAOExtendImpl的话,就需要修改代码
Class Service{public voidmethod(){
DAO dao= newDAOExtendImpl();
dao.method();
}
}
这样就会大大增加开发风险和成本。那能不能不修改代码情况下就能实现程序的扩展?
传统解决方案:使用工厂模式
实现Service与Dao之间的解耦,但是DAO与工厂有耦合,解决他们之间的耦合就使用配置文件,配置对象类型,通过反射创建对象。
Spring的解耦底层原理也是这样的,Spring已经提供了工厂,所以我们只需要配置对象类型就可以了。具体使用方式:
①、下载Spring的开发包
在springframework下找到spring,并展开,选择要下载的版本,展开它
②、解压
docs:Spring的开发规范和API
libs:Spring的开发jar和源码
schema:Spring的配置文件的约束
③、创建web项目,搭建环境
④、创建接口和实现类
public interfaceUserDAO {public voidsave();
}
public class UserDAOImpl implementsUserDAO{
@Overridepublic voidsave() {
System.out.println("DemoDAOImpl...");
}
}
⑤、将实现类交给Spring管理
Ⅰ、在src下新建applicationContext.xml
在spring的解压路径下找到spring-framework-4.2.4.RELEASE\docs\spring-framework-reference\html\xsd-configuration.html,并双击打开,找到 the beans schema,复制如下内容
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
Ⅱ、将UserDAO实现类配置
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
⑥、编写测试类
@Testpublic voiddemo1() {//创建Spring的工厂
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");//根据工厂获取对象
UserDAO userDAO = (UserDAO) applicationContext.getBean("userDAO");
userDAO.save();
}