美文网首页我爱编程
Spring框架入门

Spring框架入门

作者: 流年划破容颜_cc55 | 来源:发表于2018-06-10 10:37 被阅读27次


    1 :crm系统架构

    将Dao、Service、Action放入spring容器进行管理。

    注意:在三层中都需要spring。


    2:Spring 简介

    Spring是一个基于IOC和AOP的结构J2EE系统的框架 IOC 反转控制 是Spring的基础,Inversion Of Control 简单说就是创建对象由以前的程序员自己new 构造方法来调用,变成了交由Spring创建对象 DI 依赖注入 Dependency Inject. 简单地说就是拿到的对象的属性,已经被注入好相关值了,直接使用即可。 

    Spring的出现是为了取代EJB(Enterprise JavaBean)的臃肿、低效、脱离现实的缺点。

    Spring致力于J2EE应用的各层(表现层、业务层、持久层)的解决方案,Spring是企业应用开发的“一站式”选择。

    定义:Spring是分层的JavaSE/EE应用一站式的轻量级开源框架(官网: http://spring.io/ ),以Ioc(Inverse of control)控制反转和Aop(Aspect Oriented Programming)面向切面编程为核心。轻量级:针对EJB来说,使用方便。


    一站式:spring针对各各层(表现层、业务层、持久层)提出解决方案。

    表现层:springmvc(spring自己的mvc框架),提供和其它web框架整合方案。

    业务层:spring基于aop(面向切面编程)思想进行事务控制。

    持久层:spring自己提供JdbcTemplate,提供和其它持久层框架整合的方案。

    spring核心 :Ioc(控制反转)和aop(面向切面编程)。

    重点是:IOC,spring要管理各各层的bean。


    3:什么是IOC    

    简单的将,IOC就是把创建对象的控制权从原理的自己创建变成由工厂创建。

    一个形象的比喻就是,原来买鸡,你要去菜市场自己买,自己回家去毛,分解肢体,烤炒蒸吨,上餐桌。现在的有了IOC 就等于你有了很多钱,你可以直接去餐厅吃鸡,不用再自己去弄那些繁琐的事,餐厅已经帮你全部解决了。

    不使用ioc,代码中创建一个对象直接操作接口实现类,并没有面向接口开发。

    面向接口开发:调用接口的方法,只面向接口而不面向接口实现类,因为一个接口可能有多个实现类。

    没有面向接口开发的问题:调用接口的类和接口实现类之间存在直接耦合。

    解决:

    将调用接口的类和接口实现类要解耦合。

    可以通过将创建接口实现类对象的工作交给工厂来作。

    对象只与工厂耦合,对象之间没有耦合。


    4:IOC入门

    下载spring开发包,导入jar包到工程

    官网:官网地址

    下载地址:点击这里

    下载版本:Spring4.2.4

    要写个IOC的配置文件,applicationContext.xml(默认名称)

    然后在要配置bean,也就是对象的映射关系


    入门例子

    //从spring的容器中获取bean实例

    @Test

    public void test1() {

    //创建spring容器的实例

     ApplicationContext applicationContext =new ClassPathXmlApplicationContext("spring/applicationContext.xml"); //通过容器实例对象获取bean实例

    //通过 bean的名称来获取

    CustomerDao customerDao = (CustomerDao) applicationContext.getBean("customerDao"); System.out.println(customerDao);

     CustomerService customerService = (CustomerService)applicationContext.getBean("customerService");

     System.out.println(customerService);

    }

    ApplicationContext加载文件的方法

    ApplicationContext理解为spring容器的上下文,通过上下文操作容器中bean。

    ClassPathXmlApplicationContext:加载classpath下的配置文件创建一个容器实例

    FileSystemXmlApplicationContext:加载文件系统中任意目录下的配置文件,创建一个容器实例

    掌握:多文件的加载方法



    5 DI的概念

    控制反转,哪些对象被反转,获得依赖对象的过程被反转了。

    action:调用service,action依赖service,在action中所依赖的service创建被反转到spring容器。

    service:依赖dao,依赖的dao创建被反转到spring容器

    依赖注入(Dependency Injection)”。所谓依赖注入,就是由IOC容器在运行期间,动态地将对象的依赖关系注入到对象的属性中。

     

    service:依赖dao,如何实现依赖注入?

    1、spring要管理service(前提)

    2、spring要管理dao(前提)

    总结前提:依赖方(service)、被依赖方(dao)都需要被spring管理

    3、根据依赖关系,service依赖dao,将dao实例注入至service的属性中。

    底层原理:spring根据配置文件中配置依赖关系,首先获取被依赖的对象dao实例,调用service对象中set方法将dao实例设置(注入)到service属性。

    终结:依赖注入,就是工厂会根据各个类之间的关系自动的进行依赖注入,例如如果一个类中定义了另外的一个类,而在声明这个类的时候,系统就会从工厂中找到另外的一个类,如果存在就注入,不存在,就报错。


    6:IOC和DI的区别

    ioc:控制反转,将对象的创建权反转到ioc容器。

    DI:依赖注入,将对象所依赖的对象注入到对象的属性中。

    就是IOC的具体 实现方法。

    1、IOC就是一个容器

    2、IOC容器中包括spring管理的所有bean。

    3、IOC容器负责对bean进行实例化

    4、IOC容器对bean进行实例化时候,检查有哪些依赖的属性,将依赖的属性注入到实例化的bean的属性中。

    要实现依赖注入,需要spring管理依赖方和被依赖方(spring要对依赖方和被依赖方实例化)


    7 依赖注入的方法


    1:通过有参构造器注入属性值

    :2:通过set方法注入(常用!!!)

    3:p命名空间和spEL表达式注入方式(了解)

    相关文章

      网友评论

        本文标题:Spring框架入门

        本文链接:https://www.haomeiwen.com/subject/xqkfeftx.html