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:

  • 相关阅读:
    libSVM的数据格式
    libSVM 简易使用手册
    python3使用csv模块读写csv文件
    sklearn
    windows下pip升级到8.1.2
    Elasticsearch学习(一)————简单命令
    InnoDB undo log物理结构的初始化
    【java_设计模式】建造者模式
    POI原生导入读取EXCEL
    websocket 进阶!netty框架实现websocket达到高并发
  • 原文地址:https://www.cnblogs.com/Ryan368/p/13891912.html
Copyright © 2011-2022 走看看