亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Java > 正文

Spring運行時動態注冊bean的方法

2024-07-14 08:41:55
字體:
來源:轉載
供稿:網友

在spring運行時,動態的添加bean,dapeng框架在解析xml的字段時,使用到了動態注冊,注冊了一個實現了FactoryBean類!

定義一個沒有被Spring管理的Controller

public class UserController implements InitializingBean{  private UserService userService;  public UserService getUserService() {    return userService;  }  public void setUserService(UserService userService) {    this.userService = userService;  }  @Override  public void afterPropertiesSet() throws Exception {    System.out.println("我是動態注冊的你,不是容器啟動的時候注冊的你");  }  public String toAction(String content){    return "-->" + userService.doService(content);  }}

需要注意的是,如果要注入UserService,需要提供它的getter和setter方法

現在啟動springboot工程,顯而易見這個類是不會被Spring管理的,接下來我們定義一個獲取Spring上下文的工具類,如下

工具類

public class SpringContextUtil {  private static ApplicationContext applicationContext;  //獲取上下文  public static ApplicationContext getApplicationContext() {    return applicationContext;  }  //設置上下文  public static void setApplicationContext(ApplicationContext applicationContext) {    SpringContextUtil.applicationContext = applicationContext;  }  //通過名字獲取上下文中的bean  public static Object getBean(String name){    return applicationContext.getBean(name);  }  //通過類型獲取上下文中的bean  public static Object getBean(Class<?> requiredType){    return applicationContext.getBean(requiredType);  }}

我們在Springboot的啟動類中,保存當前Spring上下文,代碼如下:

@SpringBootApplicationpublic class HelloApplication {  public static void main(String[] args) {    ApplicationContext app = SpringApplication.run(HelloApplication.class, args);    SpringContextUtil.setApplicationContext(app);  }  }

然后我們在另一個被Spring管理的容器中,寫如下方法,進行bean的動態注冊

@GetMapping("/bean")public String registerBean() {  //將applicationContext轉換為ConfigurableApplicationContext  ConfigurableApplicationContext configurableApplicationContext = (ConfigurableApplicationContext) SpringContextUtil.getApplicationContext();  // 獲取bean工廠并轉換為DefaultListableBeanFactory  DefaultListableBeanFactory defaultListableBeanFactory = (DefaultListableBeanFactory) configurableApplicationContext.getBeanFactory();  // 通過BeanDefinitionBuilder創建bean定義  BeanDefinitionBuilder beanDefinitionBuilder = BeanDefinitionBuilder.genericBeanDefinition(UserController.class);      // 設置屬性userService,此屬性引用已經定義的bean:userService,這里userService已經被spring容器管理了.  beanDefinitionBuilder.addPropertyReference("userService", "userService");  // 注冊bean  defaultListableBeanFactory.registerBeanDefinition("userController", beanDefinitionBuilder.getRawBeanDefinition());  UserController userController = (UserController) SpringContextUtil.getBean("userController");  return userController.toAction("動態注冊生成調用");   //刪除bean.  //defaultListableBeanFactory.removeBeanDefinition("testService");}

如上,就能動態的注冊bean

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
奇米影视亚洲狠狠色| 国产亚洲精品久久久久久| 亚洲国产成人精品久久| 中文字幕亚洲情99在线| 欧美日韩亚洲一区二| 国产欧美精品日韩精品| 亚洲精品视频久久| 国产日韩欧美影视| 中文字幕日韩在线视频| 日日骚久久av| 亚洲国产精彩中文乱码av在线播放| 中文字幕日韩精品有码视频| 日韩欧美国产骚| 国产精品久久久久久久久免费看| 国产91精品久久久久| 久久久av亚洲男天堂| 国产精品欧美一区二区三区奶水| 91九色视频在线| 亚洲精品456在线播放狼人| 国产精品美女主播在线观看纯欲| 成人免费xxxxx在线观看| 久久久久久com| 日韩有码片在线观看| 久久精品视频中文字幕| 欧美日韩亚洲视频| 欧美福利视频网站| 亚洲国产免费av| 亚洲大胆人体av| 孩xxxx性bbbb欧美| 日韩电影中文字幕| 亚洲深夜福利在线| 精品福利在线视频| 精品夜色国产国偷在线| 青草青草久热精品视频在线观看| 国产精品久久激情| 中文字幕av一区中文字幕天堂| 亚洲天天在线日亚洲洲精| 欧美成年人视频网站欧美| 91精品久久久久久久| 555www成人网| 精品亚洲永久免费精品| 亚洲欧美激情一区| 国产日产亚洲精品| 深夜福利亚洲导航| 91精品国产综合久久久久久久久| 精品国产一区二区三区久久狼黑人| 亚洲毛片一区二区| 亚洲精品午夜精品| 一区二区三区回区在观看免费视频| 欧美日韩福利电影| 欧美网站在线观看| 亚洲精品99久久久久| 亚洲成人网在线观看| 在线精品国产成人综合| 亚洲精品456在线播放狼人| 国产精品高潮粉嫩av| 在线亚洲男人天堂| 成人免费淫片视频软件| 91国产一区在线| 久青草国产97香蕉在线视频| 中文字幕视频在线免费欧美日韩综合在线看| 亚洲影视九九影院在线观看| 91久久久久久国产精品| 91精品国产高清久久久久久91| 国内免费精品永久在线视频| 久久久www成人免费精品| 亚洲综合中文字幕68页| 亚洲久久久久久久久久久| 亚洲欧美另类人妖| 亚洲电影免费观看高清完整版| 国产精品小说在线| 国产91精品久久久久久| 亚洲成人黄色在线| 亚洲xxxx3d| 精品欧美国产一区二区三区| 国产精品视频专区| 国产精品网站入口| 精品亚洲精品福利线在观看| 国产亚洲精品久久久久久| 亚洲成人久久久久| 国产精品一区二区三| 国产一区二区丝袜高跟鞋图片| 97视频在线观看免费| 欧美日韩成人在线视频| 成人免费淫片aa视频免费| 欧美午夜美女看片| 国产一区二区三区网站| 91久久精品久久国产性色也91| 91免费综合在线| 日韩精品亚洲元码| 久久夜色精品亚洲噜噜国产mv| 视频在线观看一区二区| 欧美国产日韩二区| 日韩精品免费综合视频在线播放| 亚洲自拍偷拍一区| 欧美日韩久久久久| 国产精品久久久久999| 38少妇精品导航| 午夜精品三级视频福利| 欧美高跟鞋交xxxxxhd| 久久久亚洲天堂| 高清在线视频日韩欧美| 日韩精品极品在线观看播放免费视频| 国产亚洲精品久久久久动| 成人xvideos免费视频| 国产成人亚洲综合91精品| 欧美激情久久久久| 成人黄色在线观看| 成人午夜在线影院| 国产91成人在在线播放| 亚洲专区在线视频| 亚洲精品永久免费精品| 欧美一级淫片播放口| 永久免费精品影视网站| 91亚洲精品久久久久久久久久久久| 欧美性猛交xxxx乱大交| 欧美在线视频一二三| 精品视频中文字幕| 亚洲日本成人女熟在线观看| 亚洲精品免费一区二区三区| 日韩成人在线视频| 亚洲免费av电影| 91欧美激情另类亚洲| 亚洲精品少妇网址| 中文字幕日韩在线视频| 日韩最新在线视频| 91高清免费在线观看| 成人激情视频在线观看| 2023亚洲男人天堂| 国产亚洲精品久久久优势| 久久久www成人免费精品张筱雨| 一区二区三区四区在线观看视频| 国产成人精品av在线| 亚洲精品v欧美精品v日韩精品| 亚洲色图在线观看| 97在线视频国产| 黄色成人在线免费| 成人字幕网zmw| 蜜臀久久99精品久久久无需会员| 性金发美女69hd大尺寸| 91豆花精品一区| 7777kkkk成人观看| 国产精品久久久久免费a∨| 亚洲精品理论电影| 日韩大片在线观看视频| 精品国产一区二区三区久久久狼| 中文字幕综合一区| 日本成人在线视频网址| 成人精品一区二区三区电影黑人| 草民午夜欧美限制a级福利片| 国产精品成人av性教育| 日韩在线激情视频| 国产精品久久久久7777婷婷| 蜜臀久久99精品久久久久久宅男| 91人人爽人人爽人人精88v| 日韩乱码在线视频| 人体精品一二三区| 欧美一级视频免费在线观看| 亚洲欧洲自拍偷拍| 国产经典一区二区| 精品国产91乱高清在线观看| 亚洲人成电影在线观看天堂色| 欧美精品久久久久久久免费观看| 欧美日韩中文字幕在线视频|