日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

java动态创建bean的意义_java相关:Spring Boot如何动态创建Bean示例代码

發布時間:2024/10/14 javascript 75 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java动态创建bean的意义_java相关:Spring Boot如何动态创建Bean示例代码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

java相關:Spring Boot如何動態創建Bean示例代碼

發布于 2020-3-20|

復制鏈接

摘記: 前言本文主要給大家介紹了關于Spring Boot動態創建Bean的相關內容,分享出來供大家參考學習,下面話不多說了,來一起看看詳細的介紹吧。SpringBoot測試版本:1.3.4.R ..

前言本文主要給大家介紹了關于Spring Boot動態創建Bean的相關內容,分享出來供大家參考學習,下面話不多說了,來一起看看詳細的介紹吧。SpringBoot測試版本:1.3.4.RELEASE參考代碼如下:

```java

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;

}

}

```

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

```java

applicationContext.getBean(UserService.class);

applicationContext.getBean("userService", UserService.class)

```

總結

以上是生活随笔為你收集整理的java动态创建bean的意义_java相关:Spring Boot如何动态创建Bean示例代码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。