最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring?IOC?xml方式進(jìn)行工廠Bean操作詳解

 更新時(shí)間:2023年01月29日 10:59:05   作者:-耿瑞-  
這篇文章主要介紹了Spring?IOC?xml方式進(jìn)行工廠Bean操作,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧

spring中有兩種Bean

第一種 普通 Bean 就是我們在配置文件中 定義的類對象 創(chuàng)建bean 并定義相關(guān)的id和聲明類對象

普通bean的特點(diǎn)在于 在配置文件中定義的類型 也就是返回類型

就比如 你定義的是一個(gè) book類的類型 那你這個(gè)bean返回的 也比如是個(gè)book類型的對象

第二種 是在工廠類中統(tǒng)一管理的工廠Bean

特點(diǎn)上 還是有比較大區(qū)別的 首先 工廠Bean 又叫FactoryBean 他定義的類型和返回類型是可以不一樣的

通常作為一個(gè)工廠類 來管理bean對象操作

我們創(chuàng)建一個(gè)java項(xiàng)目 引入spring中的基本依賴

然后在src下創(chuàng)建兩個(gè)包 我這里直接叫 spring5 和 collectiontype 你們可以根據(jù)自己的喜好起名 跟我的一樣 可以避免一些名字問題 畢竟你們的代碼大部分可以直接從我這復(fù)制

然后 我們在 collectiontype包下創(chuàng)建一個(gè) Course 類 參考代碼如下

package collectiontype;
//課程類
public class Course {
    //課程名稱
    private String cname;
    public void setCname(String cname) {
        this.cname = cname;
    }
    public String toString() {
        return "cname = "+cname;
    }
}

這是一個(gè)管理課程的類 定義 字符串的cname 代表課程名稱 然后 定義了他的set方法

改寫了類的toString方法 這樣直接輸出對象 就會(huì)輸出cname的值

在 spring5目錄下創(chuàng)建一個(gè)java類 我這里取名為MyBean

package spring5;
import collectiontype.Course;
import org.springframework.beans.factory.FactoryBean;
public class MyBean implements FactoryBean<Course> {
    @Override
    public Course getObject() throws Exception {
        Course course = new Course();
        course.setCname("測試工具");
        return course;
    }
    @Override
    public Class<?> getObjectType() {
        return null;
    }
}

這里 我們實(shí)現(xiàn)了 FactoryBean接口 這樣就表示他是一個(gè)工廠類

然后 定義泛型 指定Course對象類型 這個(gè)就代表 我們返回的是一個(gè) Course類的對象

getObject返回的值 就是最后 bean對象返回的值

然后我們在src下創(chuàng)建 bean.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">
    <bean id="mybean" class="spring5.MyBean"></bean>
</beans>

這里 我們就創(chuàng)建了一個(gè)bean MyBean對象

然后 在src下創(chuàng)建一個(gè)text測試類 參考代碼如下

import collectiontype.Course;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class text {
    public static void main(String args[]) {
        //獲取配置文件
        ApplicationContext context = new ClassPathXmlApplicationContext("bean.xml");
        Course course = context.getBean("mybean", Course.class);
        System.out.println(course);
    }
}

可以看到 我們創(chuàng)建的是mybean的對象反射對象 但我們接收的類型是Course類的 因?yàn)槲覀僊yBean實(shí)際返回的是一個(gè)Course類的對象

然后通過System.out.println輸出了對象的toString方法

運(yùn)行結(jié)果如下

到此這篇關(guān)于Spring IOC xml方式進(jìn)行工廠Bean操作詳解的文章就介紹到這了,更多相關(guān)Spring 工廠Bean操作內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 全面解析Spring Security 內(nèi)置 Filter

    全面解析Spring Security 內(nèi)置 Filter

    這篇文章主要介紹了Spring Security 內(nèi)置 Filter的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-07-07
  • JVM類加載機(jī)制詳解

    JVM類加載機(jī)制詳解

    本文主要介紹了JVM類加載機(jī)制的相關(guān)知識(shí),具有很好的參考價(jià)值,下面跟著小編一起來看下吧
    2017-02-02
  • SpringBoot使用validation做參數(shù)校驗(yàn)的實(shí)現(xiàn)步驟

    SpringBoot使用validation做參數(shù)校驗(yàn)的實(shí)現(xiàn)步驟

    這篇文章主要介紹了SpringBoot使用validation做參數(shù)校驗(yàn)的實(shí)現(xiàn)步驟,幫助大家更好的理解和學(xué)習(xí)使用SpringBoot,感興趣的朋友可以了解下
    2021-05-05
  • java實(shí)現(xiàn)的正則工具類

    java實(shí)現(xiàn)的正則工具類

    這篇文章主要介紹了java實(shí)現(xiàn)的正則工具類,可用于針對電話號(hào)碼、郵箱、QQ號(hào)碼、QQ密碼、手機(jī)號(hào)的正則驗(yàn)證功能,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-10-10
  • Spring容器初始化擴(kuò)展點(diǎn)之ApplicationContextInitializer詳解

    Spring容器初始化擴(kuò)展點(diǎn)之ApplicationContextInitializer詳解

    ApplicationContextInitializer是Spring框架提供的一個(gè)接口,用于在Spring應(yīng)用上下文刷新之前對其進(jìn)行自定義初始化,本文介紹Spring容器初始化擴(kuò)展點(diǎn)之ApplicationContextInitializer,感興趣的朋友一起看看吧
    2025-02-02
  • 關(guān)于Java中反射的作用義及使用方法

    關(guān)于Java中反射的作用義及使用方法

    這篇文章主要介紹了關(guān)于Java中反射的作用義及使用方法,反射使得程序可以在運(yùn)行時(shí)對類進(jìn)行檢查和操作,而不需要在編譯時(shí)知道類的完整信息,需要的朋友可以參考下
    2023-07-07
  • Spring中的@Transactional注解使用詳解

    Spring中的@Transactional注解使用詳解

    這篇文章主要介紹了Spring中的@Transactional注解使用詳解,@Transactional 是一個(gè)注解,用于在 Spring 框架中管理事務(wù)的聲明式事務(wù)管理機(jī)制,它可以應(yīng)用于方法或類級(jí)別,并指示方法或類在執(zhí)行時(shí)應(yīng)該被包裝在一個(gè)事務(wù)中,需要的朋友可以參考下
    2024-01-01
  • Java并發(fā)編程之顯式鎖機(jī)制詳解

    Java并發(fā)編程之顯式鎖機(jī)制詳解

    這篇文章主要為大家詳細(xì)介紹了Java并發(fā)編程之顯式鎖機(jī)制的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • Java復(fù)制(拷貝)數(shù)組的五種方法匯總

    Java復(fù)制(拷貝)數(shù)組的五種方法匯總

    java基礎(chǔ)在Java中我們經(jīng)常需要復(fù)制一個(gè)數(shù)組,下面這篇文章主要給大家介紹了關(guān)于Java復(fù)制(拷貝)數(shù)組的五種方法,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-03-03
  • java堆棧類使用實(shí)例(java中stack的使用方法)

    java堆棧類使用實(shí)例(java中stack的使用方法)

    java中stack的使用方法,堆棧是一種"后進(jìn)先出"(LIFO) 的數(shù)據(jù)結(jié)構(gòu), 只能在一端進(jìn)行插入(稱為"壓棧") 或刪除 (稱為"出棧")數(shù)據(jù)的操作,下面看示例吧
    2013-12-12

最新評(píng)論

博客| 抚顺市| 钟山县| 嘉兴市| 瑞丽市| 沂水县| 登封市| 昌宁县| 老河口市| 巫溪县| 连州市| 永寿县| 沂水县| 临桂县| 湘潭县| 邮箱| 黄龙县| 洱源县| 宣威市| 辽源市| 诏安县| 新沂市| 株洲市| 阳谷县| 云梦县| 永胜县| 安庆市| 漳浦县| 贺兰县| 柳河县| 银川市| 固镇县| 镇平县| 凤山县| 梨树县| 雅安市| 文化| 定结县| 延津县| 淳安县| 瑞安市|