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>
  • 相关阅读:
    2021.1.28 个人rating赛补题报告
    2021.1.23 个人rating赛补题报告
    2021.1.23 个人rating赛补题报告
    2020.12.14 个人训练赛补题报告
    2020.11.28 2020团体程序设计天梯赛补题报告
    2020.12.3 Codeforces Beta Round #73(Div2)补题报告
    Xhorse VVDI Prog V5.0.6 is Ready for BCM2 Adapter
    Program 2021 Ford Bronco All Keys Lost using VVDI Key Tool Plus
    Xhorse VVDI Prog V5.0.4 Software Update in July 2021
    How to use Xhorse VVDI2 to Exchange BMW FEM/BDC Module?
  • 原文地址:https://www.cnblogs.com/sunxiaoyan/p/9103495.html
Copyright © 2011-2022 走看看