前言本文主要给大家介绍了关于Spring Boot动态创建Bean的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。SpringBoot测试版本:1.3.4.RELEASE参考代码如下:package com.sp
前言
本文主要给大家介绍了关于Spring Boot动态创建Bean的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。
SpringBoot测试版本:1.3.4.RELEASE
参考代码如下:
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 @ConditionalOnExpression("${my.configuration.enabled}") public class DynamicConfiguration { @Autowired private ApplicationContext applicationContext; @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)); 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; } }
--结束END--
本文标题: Spring Boot如何动态创建Bean示例代码
本文链接: https://www.lsjlt.com/news/223583.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-05-16
2024-05-16
2024-05-16
2024-05-16
2024-05-16
2024-05-16
2024-05-16
2024-05-16
2024-05-16
2024-05-16
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0