码迷,mamicode.com
首页 > 编程语言 > 详细

Spring入门

时间:2018-02-21 22:59:38      阅读:210      评论:0      收藏:0      [点我收藏+]

标签:包括   信息   str   file   first   框架   ram   属性   factor   

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

依赖注入和控制反转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

Spring入门

标签:包括   信息   str   file   first   框架   ram   属性   factor   

原文地址:https://www.cnblogs.com/wangshen31/p/8457689.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!