zoukankan      html  css  js  c++  java
  • Spring 相关知识

    1.Spring 版本

        Spring 1.x:用xml文件来配置,在xml文件来配置Bean,可以在xml文件中轻松的进行处理

        Spring 2.x:在xml文件上做了一定的优化,让配置看起来越来越简单,但是并没语完全解决xml冗余的问题

        Spring 3.x:使用spring提供的java注解来取代曾经xml配置上的问题

        Spring 4.x:甚至连xml配置文件都不需要了完全使用java源码级别的配置与spring提供的注解就能快速的开发spring应用程序,但仍然无法改变Java Web应用程序的运行模式,我们仍然需要将war部署到Web Server 上,才能对外提供服务

    2.Spring 模块

             Spring Core:核心类库,主要组件是 BeanFactory,它是工厂模式的实现,使用控制反转 (IOC)模式将应用程序的配置和依赖性规范与实际的应用程序代码分开

             Spring Context:提供框架式的Bean访问方式,以及企业级功能(JNDI、定时任务等);

       Spring  AOP:AOP服务;

       Spring  DAO:对JDBC的抽象,简化了数据访问异常的处理;

       Spring ORM:对现有的ORM框架的支持;

       Spring Web:提供了基本的面向Web的综合特性,例如多方文件上传;

       Spring MVC:提供面向Web应用的Model-View-Controller实现。
    3.Spring IOC

       IOC Inversion Of Control 控制反转,创建对象的控制权的转移;

       别名 DI Dependency Injection 依赖注入 ,应用程序在运行时依赖IoC容器来动态注入对象需要的外部资源;

       Spring IOC 容器来负责对象的生命周期和对象之间的关系;

       注入方式:

           1)构造器注入:被注入的对象通过在其构造方法中声明依赖对象的参数列表,让外部知道它需要哪些依赖对象

    YoungMan(BeautifulGirl beautifulGirl){
            this.beautifulGirl = beautifulGirl;
    }

           2)setter注入:

    public class YoungMan {
        private BeautifulGirl beautifulGirl;
        public void setBeautifulGirl(BeautifulGirl beautifulGirl) {
            this.beautifulGirl = beautifulGirl;
        }
    }

         3)接口注入(Spring没使用)

    4.Spring IOC 容器
        1)BeanFactory:Spring里面最底层的接口,包含了各种Bean的定义,读取bean配置文档,管理bean的加载、实例化,控制bean的生命周期,维护bean之间的依赖关系;
                只有在使用到某个Bean时(调用getBean()),才对该Bean进行加载实例化;
             通常以编程的方式被创建;
            支持BeanPostProcessor、BeanFactoryPostProcessor的使用,手动注册
     2)ApplicationContext:ApplicationContext接口作为BeanFactory的派生,除了提供BeanFactory所具有的功能外,还提供了更完整的框架功能;
            在容器启动时,一次性创建了所有的Bean;
            唯一的不足是占用内存空间;
             还能以声明的方式创建;
            支持BeanPostProcessor、BeanFactoryPostProcessor的使用,自动注册
    5.Spring 自动装配 

       xml配置中共有5种自动装配:

             (1)no:默认的方式是不进行自动装配的,通过手工设置ref属性来进行装配bean。

            (2)byName:通过bean的名称进行自动装配,如果一个bean的 property 与另一bean 的name 相同,就进行自动装配。 

           (3)byType:通过参数的数据类型进行自动装配。

           (4)constructor:利用构造函数进行装配,并且构造函数的参数通过byType进行装配。

           (5)autodetect:自动探测,如果有构造方法,通过 construct的方式自动装配,否则使用 byType的方式自动装配

      基于注解的自动装配:需要在Spring配置文件进行配置,<context:annotation-config />

           @Autowied、@Resource或@Inject

          @Autowired:用于在 setter 方法,构造函数,具有任意名称或多个参数的属性或方法上自动装配 bean,默认是按照类型装配注入的,默认情况下它要求依赖对象必须存在

          @Resource: 默认是按照名称来装配注入的,只有当找不到与名称匹配的bean才会按照类型来装配注入

    6.Spring 框架中都用到了哪些设计模式?

       (1)工厂模式:BeanFactory就是简单工厂模式的体现,用来创建对象的实例;

       (2)单例模式:Bean默认为单例模式。

       (3)代理模式:Spring的AOP功能用到了JDK的动态代理和CGLIB字节码生成技术;

       (4)模板方法:用来解决代码重复的问题。比如. RestTemplate, JmsTemplate, JpaTemplate。

      (5)观察者模式:定义对象键一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知被制动更新,如Spring中listener的实现ApplicationListener
    7.注解

        @Component:这将 java 类标记为 bean。它是任何 Spring 管理组件的通用构造型。spring 的组件扫描机制现在可以将其拾取并将其拉入应用程序环境中。

        @Controller:这将一个类标记为 Spring Web MVC 控制器。标有它的 Bean 会自动导入到 IoC 容器中。

        @Service:此注解是组件注解的特化。它不会对 @Component 注解提供任何其他行为。您可以在服务层类中使用 @Service 而不是 @Component,因为它以更好的方式指定了意图。

        @Repository:这个注解是具有类似用途和功能的 @Component 注解的特化。它为 DAO 提供了额外的好处。它将 DAO 导入 IoC 容器,并使未经检查的异常有资格转换为 Spring DataAccessException。

       @Required 应用于 bean 属性 setter 方法,仅指示必须在配置时使用 bean 定义中的显式属性值或使用自动装配填充受影响的 bean 属性

     
  • 相关阅读:
    shell 脚本模板
    运动拉伸
    nature作图要求
    R语言画图曼哈顿图来源网络
    选择合适的统计图形和统计方法|图片来自松哥统计
    GO富集图
    batch gene expression plot
    植物生理生化研究进展
    手机图片
    jquery练习之超链接提示效果
  • 原文地址:https://www.cnblogs.com/dxjx/p/12546296.html
Copyright © 2011-2022 走看看