zoukankan      html  css  js  c++  java
  • Spring入门

    ---恢复内容开始---

    依赖注入和控制反转Ioc:

    在学习Spring前,首先要理解这两个概念。什么是依赖注入,打个比方,有两个组件A和B,A依赖于B,A是一个类

    Public class A {
        public void methodA() {
                 B b = new B();
            b.methodB();           
        }   
    }

    要在A类的方法中使用B的方法,我们需要先获得B实例的引用,若B是一个具体的类,则可以通过关键字new来创建实例,单如果B是个接口,且有多个实现,那么问题就复杂多了。

    依赖注入是这样处理此种情形的:接管对象的创建工作,并将该对象的引用注入懂啊需要该对象的组件中。一般来说,我们有两种注入方法,set方法和构建方法:

    set方法:

    Public class A {
        private B b;
    
        public void methodA() {
            b.methodB();
        }
    
        public void setB() {
            this.b = b;
        }    
    }

    构建方法注入:

    Public class A {
        private B b;
    
        public void methodA() {
            b.methodB();
        }
    
        public A(B b) {
            this.b = b;
        }    
    }

    然后Spring就是一个接手对象创建的一个框架,Spring管理 对象叫做beans。通过提供一个控制反转容器,来管理对象的依赖关系。因为不再自己new对象,所以也叫做Ioc(控制反转)。

    Spring支持两种配置方法,xml文件和注解两种,此外还要创建一个ApplicationContext对象,代表Spring控制反转容器,org.springframeword.context.ApplicationContext接口有多个实现,包括ClassPathApplicationContext和FileSystemApplicationContext两种实现,他们都需要一个包含beans信息的xml文件,前者尝试在类加载路径中加载配置文件,后者在文件系统中加载。

    下面为从类路径中加载config1.xml和config2.xml的ApplicationContext的一个代码示例:

    Product product = context.getBean("product",product.class);

    xml配置文件大概如下格式:

    <?xml version="1.0" encoding="UTF-8" ?>   
    <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
         xmlns="http://www.springframework.org/schema/beans"  
         xsi:schemaLocation="http://www.springframework.org/schema/beans 
         http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">   
      
    </beans> 

    里面写bean的信息

    <bean name="product" class="xxx.xxx.Product">

    然后通过这个xml文件,我们可以实现:

      直接通过构造器创建一个bean实例

      通过工厂的方法创建一个bean实例(就是set方法),就是在bean元素中加一个属性factory-method="setB"类似的

      在类被毁灭的时候执行一些方法(在bean元素中甲属性destroy-metho="shutdown")

      向构造器传递参数:

        <bean>

          <constructor-arg name="sdfsdf" value="sdfsdf"/>

          ……

        </bean>

      setter方法注入,比如我们现在写好了一个bean为Address类,然后这个employee类要用到Address类

        <bean name="employee" class="xx.xx.Employee">

          <property name="homeAddress" ref="address"/>   <!--  这个address就是那个Address类的bean的name  -->

          <property name="firstName" value="Junior"/>  

        </bean>

      构造器的方法注入,其实就是想构造器传参的时候传一个ref也就是一个现成的bean

  • 相关阅读:
    bzoj 1030 [JSOI2007]文本生成器
    Swift 学习笔记 (闭包)
    Swift 学习笔记 (函数)
    HTML 学习笔记 JQueryUI(Interactions,Widgets)
    HTML 学习笔记 JQuery(表单,表格 操作)
    HTML 学习笔记 JQuery(animation)
    HTML 学习笔记 JQuery(盒子操作)
    HTML 学习笔记 JQuery(事件)
    HTML 学习笔记 JQuery(DOM 操作3)
    HTML 学习笔记 JQuery(DOM 操作2)
  • 原文地址:https://www.cnblogs.com/wangshen31/p/8457689.html
Copyright © 2011-2022 走看看