Spring IOC配置实例

ApplicationContext配置:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:content="http://www.springframework.org/schema/context"
    xmlns:aop="http://www.springframework.org/schema/aop"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
     http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
     http://www.springframework.org/schema/context
     http://www.springframework.org/schema/context/spring-context-4.1.xsd
     http://www.springframework.org/schema/aop
     http://www.springframework.org/schema/aop/spring-aop-4.1.xsd
     ">
     <!--IOC--> 
        <!--一、setters方法-->
        <!--<bean id="dog" class="com.chinasofti.test2.Dog">
                方法1.index配置 
        <constructor-arg index="0" value="119"></constructor-arg>
        <constructor-arg index="1" value="毛蛋"></constructor-arg>
                方法2.name配置 
        <constructor-arg name="id" value="119"></constructor-arg>
        <constructor-arg name="name" value="毛蛋"></constructor-arg> 
                方法3.type配置 
        <constructor-arg type="java.lang.Integer" value="119"></constructor-arg>
        <constructor-arg type="java.lang.String" value="毛蛋"></constructor-arg>
        </bean>      -->
            <!-- 二、静态工厂方法 -->
    <!-- <bean id="dog" class="com.chinasofti.test.Mydog" factory-method="getDog"></bean> -->
        <!-- 三、导入其他配置文件方法 -->
    <!-- <import resource="/ApplicationContext2.xml"/> -->
     
     <!--依赖注入
         <bean id="dog1" class="com.chinasofti.test2.Dog">
         <property name="id" value="001"></property>
         <property name="name" value="汪汪1"></property>
     </bean>
     <bean id="dog2" class="com.chinasofti.test2.Dog">
         <property name="id" value="002"></property>
         <property name="name" value="汪汪2"></property>
     </bean>
     <bean id="dog3" class="com.chinasofti.test2.Dog">
         <property name="id" value="003"></property>
         <property name="name" value="汪汪3"></property>
     </bean> -->
     
    <!-- 集合类型
        <bean id="person" class="com.chinasofti.test.Person">
         <property name="id" value="111"></property>
         <property name="name" value="小明"></property>
         <property name="list">
             <list>
                 <ref bean="dog1"/>
                 <ref bean="dog2"/>
                 <ref bean="dog3"/>
                 <null></null>
             </list>
         </property>
     </bean> -->
</beans>

Dog类代码;

package com.chinasofti.test2;

public class Dog {
    public int id ;
    public String name ;
    
    public void init() {
        System.out.println("初始化方法");
    }
    
    public void destroy() {
        System.out.println("销毁方法");
    }
    
    public Dog() {
        super();
        System.out.println("无参构造");
    }
    public Dog(java.lang.Integer id, java.lang.String name) {
        super();
        this.id = id;
        this.name = name;
        System.out.println("有参构造");
    }
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    @Override
    public String toString() {
        return "Dog [id=" + id + ", name=" + name + "]";
    }
}

Mydog类代码:

package com.chinasofti.test;

import com.chinasofti.test2.Dog;

public class Mydog {
    /*静态工厂方法
     * public static Dog getDog() {
        return new Dog(116, "小王");
    }*/
    
    //普通工厂方法
    public Dog getDog(){
        return new Dog();
    }
}

Person类代码(用于测试集合):

package com.chinasofti.test;

import java.util.List;
import com.chinasofti.test2.Dog;

public class Person {
    
    public int id;
    public String name;
    public List<Dog> list;
    
    public Person() {
        super();
    }
    public List<Dog> getList() {
        return list;
    }
    public void setList(List<Dog> list) {
        this.list = list;
    }
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    
}

 

测试类代码:

package com.chinasofti.test;

import java.util.List;
import org.junit.Test;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.chinasofti.test2.Dog;
public class TestSpring {
    
    @Test
    public void runnn() {
        ClassPathXmlApplicationContext ac = new ClassPathXmlApplicationContext("/ApplicationContext.xml");
        Dog dog = (Dog) ac.getBean("dog");
        System.out.println("dog.getName"+dog.getName());
/*Dog dog1 = ac.getBean("dog", Dog.class); Dog dog2 = ac.getBean("dog", Dog.class); Dog dog3 = ac.getBean("dog", Dog.class); System.out.println(dog1); System.out.println(dog2); System.out.println(dog3);*/ /*Person person = ac.getBean("person",Person.class); System.out.println(person.id); System.out.println(person.name); System.out.println(person.dog.id); System.out.println(person.dog.name);*/ /*Person person = ac.getBean("person",Person.class); List<Dog> list = person.getList(); for (Dog dog : list) { System.out.println(dog); }*/ ac.close(); } }

 

posted on 2018-01-30 12:01  李洋1991  阅读(137)  评论(0编辑  收藏  举报