日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

FactoryBean配置文件定義的 類型 調用時返回 不同的類型

作者:仰望星空的快樂 更新時間: 2022-05-10 編程語言

1.在spring中,有兩種bean ,一種普通bean(自己寫的bean),另外一種工廠bean(facoryBean)

2.普通bean 定義什么類型,返回什么類型

定義時lession 類型,那返回一定是lesson類型

 
    
    

3.工廠bean 我在配置文件定義的 類型 調用時可能返回 不同的類型

我在配置文件定義的lesson 類型 調用時可能返回 book類型

第一步:創建一個類 ,讓這個類作為工廠bean ,實現接口 FactoryBean

第二部:實現接口中的方法,在實現的方法中定義返回的bean的類型

在下例中,定義返回的是books 類型

package com.testdemo;

import org.springframework.beans.factory.FactoryBean;

import java.util.ArrayList;
import java.util.List;

public class Lession implements FactoryBean {
    public String name1;

    public String getName1() {
        return name1;
    }

    public void setName1(String name1) {
        this.name1 = name1;
    }

    @Override
    public Books getObject() throws Exception {
        Books books = new Books();
        List list = new ArrayList();
        list.add("從入門到入獄");
        list.add("奧利給");
        books.setBooks(list);
        return books;
    }

    @Override
    public Class getObjectType() {
        return null;
    }

    @Override
    public boolean isSingleton() {
        return FactoryBean.super.isSingleton();
    }
}

在xml中 一樣的聲明?


  

在調用的時候注意用 books去接收

package com.testdemo;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class test {
    public static void main(String[] args) {
        ApplicationContext applicationContext = new ClassPathXmlApplicationContext("demo1.xml");
        //第一個參數是xml文件中該類對應的bean的id的值
       Books books =(Books) applicationContext.getBean("books",Books.class);
        System.out.println(books.toString());
    }

}

?輸出

原文鏈接:https://blog.csdn.net/sharesb/article/details/123452675

欄目分類
最近更新