zoukankan      html  css  js  c++  java
  • 六、【接口】Spring接口FactoryBean

    FactoryBean是用来向容器中注入Bean的接口。而BeanFactory是从容器中取Bean的接口。

    1. 定义Fish实体类
    /**
     * @author zhangjianbing
     * @date 2020年9月23日
     */
    @Data
    public class Fish {
    
        private String name;
    
        private int age;
    
        public Fish(){}
    
        public Fish(String name, int age) {
            this.name = name;
            this.age = age;
        }
    
    }
    
    1. 实现FactoryBean来注入实体类
    /**
     * @author zhangjianbing
     * @date 2020年9月23日
     */
    public class FactoryBeanRegist implements FactoryBean<Fish> {
    
        @Override
        public Fish getObject() throws Exception {
            return new Fish();
        }
    
        @Override
        public Class<?> getObjectType() {
            return Fish.class;
        }
    
        @Override
        public boolean isSingleton() {
            return true;
        }
    }
    
    1. 编写配置类
    /**
     * @author zhangjianbing
     * @date 2020年9月23日
     */
    @Configuration
    public class FactoryBeanConfig {
    
        @Bean
        public FactoryBeanRegist getBean() {
            return new FactoryBeanRegist();
        }
    
    }
    
    1. 测试
    /**
     * @author zhangjianbing
     * @date 2020年9月23日
     */
    public class Test01 {
    
        @Test
        public void test() {
    
            AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(FactoryBeanConfig.class);
            // 不加"&"获取到的是FactoryBean中的实例
            Object getBean1 = ac.getBean("getBean");
            // 加"&"获取到的是实现了FactoryBean接口的FactoryBeanRegist本身
            Object getBean2 = ac.getBean("&getBean");
            System.out.println(getBean1.getClass());
            System.out.println(getBean2.getClass());
    
        }
    
    }
    
    1. 测试结果
    class com.nmys.story.springCore.springioc.importBean.Fish
    class com.nmys.story.springCore.springioc.factoryBean.FactoryBeanRegist
    
  • 相关阅读:
    获取当前日期的年、月、日
    去掉后端返回过来的 % 且保留 2 位小数
    uni-app 长按复制
    rabbit——部署备份
    Mysql——查询语句备份
    Redis——常用命令
    luajit——编译运行lua
    Mac——无法退出移动硬盘解决办法
    Java——Function接口的使用
    Java——在运行mvn install或mvn package时跳过Test
  • 原文地址:https://www.cnblogs.com/zhangjianbing/p/13722294.html
Copyright © 2011-2022 走看看