zoukankan      html  css  js  c++  java
  • IOC(八)

    Spring有两种类型的bean, 一种普通bean, 一种工厂bean(FactoryBean)

    普通Bean: 在配置文件中定义的bean类型就是返回类型;

    工厂bean: 在配置文件中定义的bean类型可以和返回类型不一样

    创建工厂bean的方法:

    第一步: 创建类, 实现接口FactoryBean;

    第二步: 实现接口里面的方法, 在实现的方法中定义返回的bean类型.

    创建FacBean2类:

    public class FacBean2 {
    
        private String name;
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    }

    创建FacBean类实现FactoryBean接口:

    public class FacBean implements FactoryBean<FacBean2> {
    
        //定义返回bean的类型
        @Override
        public FacBean2 getObject() throws Exception {
            FacBean2 myBean2 = new FacBean2();
            return myBean2;
        }
    
        @Override
        public boolean isSingleton() {
            return false;
        }
    
        @Override
        public Class<?> getObjectType() {
            return null;
        }
    }

    在配置文件中创建bean指定类型为FacBean:

    <?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="myBean" class="com.ryan.spring5.factoryBean.FacBean"></bean>
    </beans>

    测试可发现, 创建的对象的类型已经被指定为FacBean2:

  • 相关阅读:
    Node_JS
    读JS高级——第五章-引用类型 _记录
    读JS高级(兼容&&BOM&&私有变量&&面向对象)
    JS高级设计第七章——复习知识点
    nodeJs抓取网页
    表单脚本api_contenteditable
    泛——复习js高级第三版
    nodeJS
    Eclipse布局问题小记
    再议负载均衡算法
  • 原文地址:https://www.cnblogs.com/Ryan368/p/13891912.html
Copyright © 2011-2022 走看看