zoukankan      html  css  js  c++  java
  • spring-bean实例化三种方式

    在spring中,bean的示例化有三种方式。

     1、使用类的无参构造函数创建

    2、使用静态工厂方式创建

    3、使用实例化工厂方式创建。

     具体代码如下

    静态工厂方式:

    Bean2.java

    package cn.itcast.bean;
    
    public class Bean2 {
        
        public void add(){
            System.out.println("Bean2................");
        }
    }
    View Code

    Bean2Factory.java

    package cn.itcast.bean;
    
    public class Bean2Factory {
        //静态方法,返回Bean2对象
        
        public static Bean2 getBean2(){
            return new Bean2();
        }
    }
    View Code

    IoC方式:

    user.java

    package cn.itcast.ioc;
    
    public class User {
         
            
        public void add(){
            System.out.println("add........");
        }
        
         
    }
    View Code

    实例化工厂方式:

    Bean3.java

    package cn.itcast.bean;
    
    public class Bean3 {
    
        public void add(){
            System.out.println("Bean3................");
        }
    }
    View Code

    Bean3Factory.java

    package cn.itcast.bean;
    
    public class Bean3Factory {
        public Bean3 getBean3(){
            return new Bean3();
        }
    }
    View Code

    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">
    
      <!-- ioc入门 -->
       <bean id="user" class="cn.itcast.ioc.User"></bean>
       
       <!-- 使用静态工厂类创建对象 -->
       <bean id="Bean2" class="cn.itcast.bean.Bean2Factory" factory-method="getBean2"></bean>
       
       <!-- 使用实例工厂创建对象 -->
       <bean id="Bean3Factory" class="cn.itcast.bean.Bean3Factory"></bean>
        <bean id="Bean3" factory-bean="Bean3Factory" factory-method="getBean3"></bean>
    </beans>

    测试类:

    package cn.itcast.ioc;
    
    import org.junit.Test;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    import cn.itcast.bean.Bean2;
    import cn.itcast.bean.Bean3;
    
    public class TestIOC {
    
        @Test
        public void testUser() {
    
            // 1 加载spring配置文件。根据创建对象
            ApplicationContext context = new ClassPathXmlApplicationContext(
                    "bean1.xml");
    
            
             //2 得到配置创建的文件 ioc 
            User user = (User)context.getBean("user") ;
             System.out.println(user); user.add();
             
             //使用静态工厂类创建对象
              Bean2 bean2 =(Bean2)context.getBean("Bean2");
              System.out.println(bean2);
              bean2.add() ;
     
              // 使用实例工厂创建对象
            Bean3 bean3 = (Bean3) context.getBean("Bean3");
            System.out.println(bean3);
            bean3.add();
        }
    }
    View Code

    运行测试类,结果显示

  • 相关阅读:
    域名和IP地址的关系通俗解释
    简单卷、跨区卷、带区卷、镜像卷和 RAID5的区别
    什么是网络端口
    Windows7 64 bit 下解决:检索 COM 类工厂中 CLSID 为 {0002450000000000C000000000000046} 的组件时失败
    SQL函数,收藏先。
    C#中抽象类和接口的区别(转)
    SQL数据库碎片检查DBCC SHOWCONTIG含义
    SQL锁表语句
    50种方法优化SQL Server
    简单工厂模式(转)
  • 原文地址:https://www.cnblogs.com/zyfadmin/p/9058573.html
Copyright © 2011-2022 走看看