zoukankan      html  css  js  c++  java
  • 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>
  • 相关阅读:
    Proximal Algorithms 5 Parallel and Distributed Algorithms
    Proximal Algorithms 4 Algorithms
    Proximal Algorithms 3 Interpretation
    Proximal Algorithms 2 Properties
    Proximal Algorithms 1 介绍
    matplotlib 高阶之Transformations Tutorial
    matplotlib 高阶之patheffect (阴影,强调)
    matplotlib 高阶之path tutorial
    Django Admin Cookbook-19如何在管理后台中一个模型只允许创建一个对象
    Django Admin Cookbook-18如何限制对Django Admin管理部分功能的使用
  • 原文地址:https://www.cnblogs.com/sunxiaoyan/p/9103495.html
Copyright © 2011-2022 走看看