国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Spring Boot如何動態創建Bean示例代碼

Spring Boot如何動態創建Bean示例代碼

2020-12-30 11:13西夏一品堂 Java教程

這篇文章主要給大家介紹了關于Spring Boot如何動態創建Bean的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。

前言

本文主要給大家介紹了關于Spring Boot動態創建Bean的相關內容,分享出來供大家參考學習,下面話不多說了,來一起看看詳細的介紹吧。

SpringBoot測試版本:1.3.4.RELEASE

參考代碼如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
package com.spring.configuration;
 
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.support.BeanDefinitionBuilder;
import org.springframework.beans.factory.support.DefaultListableBeanFactory;
import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.jdbc.core.JdbcTemplate;
 
@Configuration
/**
 * 這里的conditional是一個可選條件,表示當這個表達式為true的時候,才動態創建bean
 */
@ConditionalOnExpression("${my.configuration.enabled}")
public class DynamicConfiguration
{
 @Autowired
 private ApplicationContext applicationContext;
  
 /**
  * 這個方法返回Runnable只是一個幌子,最重要的是執行方法里面的代碼
  */
 @Bean
 public Runnable dynamicConfiguration() throws Exception
 {
  ConfigurableApplicationContext context = (ConfigurableApplicationContext)applicationContext;
  DefaultListableBeanFactory beanFactory = (DefaultListableBeanFactory)context.getBeanFactory();
   
  BeanDefinitionBuilder beanDefinitionBuilder = BeanDefinitionBuilder.rootBeanDefinition(UserService.class);
  /**
   * 設置屬性
   */
  beanDefinitionBuilder.addPropertyValue("name", "myConfigure");
  beanDefinitionBuilder.addPropertyValue("jdbcTemplate", applicationContext.getBean(JdbcTemplate.class));
   
  /**
   * 注冊到spring容器中
   */
  beanFactory.registerBeanDefinition("userService", beanDefinitionBuilder.getBeanDefinition());
  return null;
 }
}
class UserService
{
 private String name;
 private JdbcTemplate jdbcTemplate;
 public String getName()
 {
  return name;
 }
 public void setName(String name)
 {
  this.name = name;
 }
 public JdbcTemplate getJdbcTemplate()
 {
  return jdbcTemplate;
 }
 public void setJdbcTemplate(JdbcTemplate jdbcTemplate)
 {
  this.jdbcTemplate = jdbcTemplate;
 }
}

之后,就可以使用如下方式獲取對象了

?
1
2
applicationContext.getBean(UserService.class);
applicationContext.getBean("userService", UserService.class)

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對服務器之家的支持。

原文鏈接:http://blog.csdn.net/mn960mn/article/details/51352007

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 久久久国产精品免费观看 | 日韩在线观看一区 | 久热久爱 | 亚洲男人网 | 欧美精品网站 | 在线国产小视频 | 中文字幕在线观看 | 久久精品国产一区二区电影 | 亚洲特黄av | 成人影院在线观看 | 激情久久免费视频 | 欧美精品福利视频 | 日韩av一区二区在线观看 | 亚洲精品国产第一综合99久久 | 欧美一区在线看 | 日韩欧美专区 | 青青国产在线视频 | 亚洲精品视频区 | 久久久久久久9 | 国产精品18久久久 | 99热最新网址 | 成人在线播放网站 | 亚洲一区三区 | 久久免费99精品久久久久久 | 国产精品一区久久久 | 99久久视频 | 久久精品国产清自在天天线 | 日日夜夜综合 | 久久久久久国产精品 | 日本不卡高字幕在线2019 | 人人射在线视频 | 亚洲黄色片免费看 | 在线中文字幕观看 | 亚洲视频精品在线 | 91av在线播放 | 亚洲精品国精品久久99热 | 欧美性一区二区三区 | 亚洲一区二区三区四区五区中文 | 日韩国产 | 国内av网站 | 韩国精品一区二区三区 |