首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

Spring 学习笔记(1)

Spring 学习笔记(1)

好记忆不如烂笔头, 能记下点什么, 就记下点什么, 方便后期的巩固
Spring介绍Spring 是一个开源框架,是一个分层的 JavaEE 一站式框架。
所谓一站式框架是指 Spring 有 JavaEE 开发的每一层解决方案。
  •         WEB层:SpringMVC
  •         Service层:Spring的Bean管理,声明式事务
  •         DAO层:Spring的JDBC模板,ORM模板
优点:
  •         IOC:方便解耦合
  •         AOP:对程序进行扩展
  •         轻量级框架
  •         方便与其他框架整合
Spring使用Spring开发包解压后的目录介绍:
  •         docs: Spring 开发规范和API
  •         libs: Spring jar 包和源代码
  •         schema: Spring 配置文件的约束


DataAccess 用于数据访问,WEB 用于页面显示,核心容器也就是IOC部分。
控制反转(IOC)控制反转(Inversion of Control)是指将对象的创建权反转(交给)Spring。
使用IOC就需要导入IOC相关的包,也就是上图中核心容器中的几个包:beans,context,core,expression四个包。

实现原理传统方式创建对象:
UserDAO userDAO=new UserDAO();
进一步面向接口编程,可以多态:
UserDAO userDAO=new UserDAOImpl();
这种方式的缺点是接口和实现类高耦合,切换底层实现类时,需要修改源代码。程序设计应该满足OCP元祖,在尽量不修改程序源代码的基础上对程序进行扩展。此时,可以使用工厂模式:
class BeanFactory{
    public static UserDAO getUserDAO(){
        return new UserDAOImpl();
    }
}
此种方式虽然在接口和实现类之间没有耦合,但是接口和工厂之间存在耦合。
使用工厂+反射+配置文件的方式,实现解耦,这也是 Spring 框架 IOC 的底层实现。
//xml配置文件
//<bean id="userDAO" class="xxx.UserDAOImpl"></bean>
class BeanFactory{
    public static Object getBean(String id){
        //解析XML
        //反射
        Class clazz=Class.forName();
        return clazz.newInstance();
    }
}
返回列表