Spring之動態註冊bean

2021-09-11 12:46:51 字數 1603 閱讀 8437

什麼場景下,需要主動向spring容器註冊bean呢?

如我之前做個的乙個支援掃表的基礎平台,使用者只需要新增基礎配置 + groovy任務,就可以丟到這個平台上面來執行了,而這個基礎平台是一直都在執行的,所以在新來任務時,最直觀需要註冊的就是datasource資料來源這個bean了,那麼可以怎麼玩?

借助beandefinition來實現bean的定義,從最終的使用來看,**比較少,幾行而已

public

t registerbean

(string name, classclazz, object... args)

}beandefinition beandefinition = beandefinitionbuilder.getrawbeandefinition();

beanfactory.registerbeandefinition(name, beandefinition);

}複製**

測試如下

import com.github.hui.story.quickstory.server.visitservice;

import lombok.tostring;

import org.springframework.beans.factory.annotation.autowired;

import org.springframework.beans.factory.config.beandefinition;

import org.springframework.beans.factory.support.beandefinitionbuilder;

import org.springframework.beans.factory.support.beandefinitionregistry;

import org.springframework.stereotype.component;

@component

public

class

beanholder

public

void

initser

() @tostring

public

static

class

inrser

public

inrser

(string name, integer uid)

}private

t registerbean

(string name, classclazz, object... args)

}beandefinition beandefinition = beandefinitionbuilder.getrawbeandefinition();

beanfactory.registerbeandefinition(name, beandefinition);

}}複製**

輸出如下

盡信書則不如,已上內容,純屬一家之言,因個人能力有限,難免有疏漏和錯誤之處,如發現bug或者有更好的建議,歡迎批評指正,不吝感激

知識星球

spring 使用註解註冊bean

使用spring容器帶的 component 就能自動註冊了 不過也要在配置檔案中開啟註解,不然註解不生效 xml xmlns xmlns xsi xmlns context xsi schemalocation context component scan base package com.sun...

spring動態載入bean

廢話不多說,直接上 private static final string strs new string protected mapremotes new hashmap for int i 0 i string name one if i 0 beandefinitionbuilder user...

Spring動態建立bean

最近有個專案場景,多垂類支援,大體業務流程相同,只是一些業務規則的校驗引數不同。解決思路是將業務引數作為類的屬性,然後建立垂類數量個例項,去處理不同垂類的業務。下面分兩部分介紹 1 動態建立bean的 實現 2 spring的ioc原始碼解讀,這部分放到另外一篇部落格 url 4.0.6.relea...