Bean实例化(三种方法)

(一)构造器实例化Bean

1. Bean1.java

package com.inspur.ioc;

public class Bean1 {

}

2.Beans1.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd">
        <bean id="bean1" class="com.inspur.ioc.Bean1"></bean>
</beans>

3.InstanceTest.java

package com.inspur.ioc;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class InstanceTest {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        //1.定义配置文件路径
        String xmlPath = "com/inspur/ioc/Beans1.xml";
        //2.ApplicationContext 在加载文件时,对bean实例化
        ApplicationContext applicationContext = new ClassPathXmlApplicationContext(xmlPath);
        Bean1 bean1 = (Bean1) applicationContext.getBean("bean1");
        System.out.println(bean1);
        

    }

}

 ( 二)静态工厂实例化Bean

 

1.Bean2.java

package com.inspur.static_factory;

public class Bean2 {

}

 

2.InstanceTest2.java

package com.inspur.static_factory;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.inspur.ioc.Bean1;

public class InstanceTest2 {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        //1.定义配置文件路径
                String xmlPath = "com/inspur/static_factory/Beans2.xml";
                //2.ApplicationContext 在加载文件时,对bean实例化
                ApplicationContext applicationContext = new ClassPathXmlApplicationContext(xmlPath);
                Bean2 bean2 = (Bean2) applicationContext.getBean("bean2");
                System.out.println(bean2);
                

    }

}

 

3.MyBean2Factory.java

package com.inspur.static_factory;

public class MyBean2Factory {
    //使用自己的工厂创建beans实例
    public static Bean2 creatBean(){
        return new Bean2();
    }

}

 

4.beans2.xml:注意配置时class=“里面是工厂的包装类” ,另外需要加factory-method=“是MyBean2Factory里面的静态方法”

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd">
        <bean id="bean2" class="com.inspur.static_factory.MyBean2Factory" factory-method="creatBean"></bean>
</beans>

 (三)实例工厂创建Bean实例

1.Bean3.java

package com.inspur.factory;

public class Bean3 {

}

 

2.InstanceTest.java

package com.inspur.factory;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.inspur.scope.Bean4;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class InstanceTest {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        String xmlPath = "com/inspur/factory/beans3.xml";
        //2.ApplicationContext 在加载文件时,对bean实例化
        ApplicationContext applicationContext = new ClassPathXmlApplicationContext(xmlPath);
        Bean3 bean3 = (Bean3) applicationContext.getBean("bean3");
        System.out.println(bean3);

    }

}

 

3.MyBean3Factory.java

package com.inspur.factory;

public class MyBean3Factory {
    public MyBean3Factory(){
        System.out.println("beans工厂实例化中");
    }
    //创建beans的实例方法
    public Bean3 createBean(){
        return new Bean3();
        
    }

}

 

4.beans3.xml:注意xml里面配置的不同

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd">
        <bean id="MyBean3Factory" class="com.inspur.factory.MyBean3Factory"></bean>
        <bean id="bean3" factory-bean="MyBean3Factory" factory-method="createBean"></bean>
</beans>

 

posted @ 2018-05-29 09:44  helloWorldhelloWorld  阅读(186)  评论(0)    收藏  举报