Board logo

标题: Spring 学习笔记(1) [打印本页]

作者: look_w    时间: 2019-5-13 13:33     标题: Spring 学习笔记(1)

好记忆不如烂笔头, 能记下点什么, 就记下点什么, 方便后期的巩固
Spring介绍Spring 是一个开源框架,是一个分层的 JavaEE 一站式框架。
所谓一站式框架是指 Spring 有 JavaEE 开发的每一层解决方案。
优点:
Spring使用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();
    }
}




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0