• Spring的入门知识点总结


    一 .  Spring概述

    1.1 Spring 是什么?

      Spring是一个开源的企业级应用程序Java开发框架。目的是为了简化企业级应用程序开发。

    1.2 Spring的特性

         (1)轻量级 

      Spring框架基础版本的包小,启动占用的资源少。(与Struts2相比)

      (2)非侵入式

           我们的代码不需要与Spring框架的类或者接口发生依赖关系。

          (3)IOC功能

           Spring提供了IOC容器,管理对象和管理对象之间的依赖关系。我们一般都是在程序内部的代码来new对象和管理对象之间的依赖关系,现在把控制权交给IOC容器。

          (4)DI功能

           DI是依赖注入。是指Spring IOC容器将被依赖的对象注入到依赖的对象中。举个例子:对象A依赖对象B,那么Spring根据依赖关系,将对象A注入到对象B中。

          (5)AOP编程

           AOP,面向切面编程,是一种编程思想。他将代码分成核心关注点和横切关注点,然后要求横切关注点必须从代码中剥离出来,与核心关注点解耦。那么解耦了,怎么使用横切关注点功能呢,我们可以通过声明式配置,动态的织入横切关注点的代码。

          (6)一站式

           根据Spring IOC的特点,可以很方便集成第三方框架或者技术。

    二. 体系结构

          最下层是test,然后依次核心容器层--->AOP等---->数据访问/集成,Web

        核心容器层包括:Spring-core, Spring-beans, spring-context, spring-expression。

           (1)spring core:框架的基础组成,提供了IOC和DI功能。

           (2)spring beans:依赖core,提供了BeanFactory。

           (3)spring context:基于core和beans,主要接口AppicationContext。

           (4)spring expression:表达式语言,用于运行时查询和操作对象。比如设置属性,根据name去ioc容器获取bean。

           数据访问/集成:JDBC、ORM。

           (1)JDBC:一组规范化的接口。各个数据厂商的数据库驱动软件需要实现这些接口。我们可以通过查询JDBC的接口和驱动器程序来操作对应的数据库。

           (2)ORM:对象关系映射,是指将对象和数据库中的表建立映射关系,我们可以通过操作对象来实现持久化(读写数据库)。JPA是一个ORM框架的规范,Hibernate是JPA的实现。

      Web:Web、WebMVC、WebScoket

    三. IOC容器

      3.1 BeanFactory是框架的顶级IOC容器接口,ApplicationContext接口间接继承了BeanFactory接口。

      ApplicationContext常见的实现类:FileSystemXmlApplication 、ClassPathXmlApplication、WebXmlApplication。

      3.2 Bean

           Bean的加载过程:

       (1)Spring IOC容器根据配置文件、Java配置类、Spring自带的注解(如@Service、@Controller等)来获取bean的配置信息。

          (2)Spring IOC容器根据bean配置信息去查找bean的实现类,并且实例化对象放到容器中。

          (3)应用程序再通过Spring IOC容器获取对象。

           Bean的作用域:

          (1)singleton 单例

          (2)prototype 每次从IOC容器获取bean,都生成一个新的bean

       (3)request 一个请求生成一个bean

          (4)session 一个会话同享一个bean

       (5)global session 全局会话同享一个bean

          Bean生命周期:实例化--->属性赋值---->一系列方法及接口(!!!)--->初始化--->使用--->销毁。

          Bean后置处理器,接口为BeanPostProcess,允许在调用初始化方法前后对 Bean 进行额外的处理。

          Bean的注入:set注入和构造器注入。

          Sprig自动装配:byType,比如@Autowired;byName,比如@Resource

    四. AOP

    4.1 一些概念

         切入点:指定要织入通知的一系列方法的位置。通常用表达式表示,注解为@PointCut,支持扫描拥有注解的方法。

         连接点:可以织入通知的所有方法。

         通知:具体的代码实现。

         切面:切入点+通知。

        通知的类型:@Before:在方法执行前;@After:在方法执行完后,不论是否有抛出异常;@AfterReurning:在方法成功执行之后;@AfterThrowing:在方法抛出异常的时候;@Aroud:在方法执行前和方法执行后。

     4.2 AOP的实现

        Spring中使用代理模式来实现AOP,通常是使用JDK动态代理(代理类需要实现被代理类的指定接口),如果这个被代理类没有接口,那么就使用GCLib动态代理(代理类需要继承被代理类)来实现。

        一些AOP的应用:声明式事物、日志等。

    四. Spring Web MVC

        MVC,M->Model,模型;V-->View 视图;C--->Controller 控制器。Spring MVC围绕DispatcherServlet来实现的。

     (1)一个HTTP请求进来,DispatcherServlet拦截到请求。

        (2)DispatcherServlet将请求转发给hadler mapping,hanlder mapping解析,告诉dispatcherServlet需要调用哪一个controller的方法。

        (3)DispatcherServlet调用这个controller的Handler Adapter。

        (4)Handler Adapter调用这个controller,controller执行完后,返回ModelAndView给Handler Adapter,Hanlder Adapter转交给DispatcherServlet。

        (5)DispatcherServlet调用视图解析器,视图解析器解析ModelAndView,将结果Model、View返回给DispatcherServlet。

        (6)DispatcherServlet渲染View(如果有的化,没有就直接返回model给用户),渲染完后返回给用户。

         

                                            

           

  • 相关阅读:
    Android中layout_gravity和gravity的区别
    Android基础面试题
    小白学习设计模式之工厂模式
    装饰者模式视频示例
    小白学习设计模式之装饰者模式
    利用poi来向execl中写入对象
    java利用poi来读取execl表格返回对象
    java小白设计模式之观察者模式
    小白学习java设计模式之策略模式
    如何理解java是一个面向对象的语言?(转自Hollis的直面java)
  • 原文地址:https://www.cnblogs.com/knsbyoo/p/14055263.html
Copyright © 2020-2023  润新知