发表于: 2017-12-11 23:42:54

1 581


今天完成的事:

spring Hello word

1 控制反转IOC\依赖注入DI

控制反转意思就是说,当我们调用一个方法或者类时,不再有我们主动去创建这个类的对象,控制权交给别人(spring)。

依赖注入意思就是说,spring主动创建被调用类的对象,然后把这个对象注入到我们自己的类中,使得我们可以使用它。

  简单的编码过程!

  1 首先我们需要一个bean,用某种方法(设置注入需要有setter函数,构造注入需要有构造函数,相应的bean.xml配置文件也会不同)设定注入方式。

  2 bean.xml,设置bean与类的关系,并关联默认的注入值。

  3 获取bean.xml文件,创建实例对象,直接调用方法。

  可以看到,我们开发的程序只有第三步的“创建实例对象,直接调用方法”,并没有为他进行初始化等工作,就可以直接调用它的方法,获取它的值。其实spring在程序初始化的时候,就会为我们把bean对应的对象注入进来,帮助我们完成初始化,因此我们只要通过一个引用对象,就可以直接调用了。

  (一)新建一个Mavenue porject

(二)配置Maven项目中的 pom.xml  文件(之后还需要继续添加)

   ......

 <dependency>

    <groupId>org.springframework</groupId>

    <artifactId>spring-context</artifactId>

    <version>5.0.0.RELEASE</version>

</dependency>

  .........


(三)bean.xml配置文件,放在src目录下


<?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">

    <bean id="person" class="com.jcy.Spring02.Person">

        <property name="name" value="xingoo"/>

        <property name="age" value="12"/>

    </bean>

</beans>

 

(四) Person类,这里使用的是set设置注入方式

【java】

package com.jcy.Spring02;

public class Person {

    

    private String name;

    private int age;

    

    public String getName() {

        return name;

    }

    public void setName(String name) {

        this.name = name;

    }

    public int getAge() {

        return age;

    }

    public void setAge(int age) {

        this.age = age;

    }

    public void info(){

        System.out.println("介绍的封闭");

        System.out.println("name:"+getName()+" age:"+getAge());

    }

}


  (五) test类

[java]--test

package com.jcy.Spring02;

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext;

import junit.framework.Test;

import junit.framework.TestCase;

import junit.framework.TestSuite;

/**

 * Unit test for simple App.

 */

public class AppTest 

    extends TestCase

{

    /**

     * Rigourous Test :-)

     */

    public void testApp()

    {

    ApplicationContext ctx = new ClassPathXmlApplicationContext("bean.xml");//读取bean.xml中的内容

         Person p = ctx.getBean("person",Person.class);//创建bean的引用对象

         p.info();

    }

}


(六)执行结果

 

今天遇的问题:   

明天计划的事:   

收获:



返回列表 返回列表
评论

    分享到