欢迎访问 生活随笔!

凯发ag旗舰厅登录网址下载

当前位置: 凯发ag旗舰厅登录网址下载 > 前端技术 > javascript >内容正文

javascript

java动态创建bean的意义-凯发ag旗舰厅登录网址下载

发布时间:2024/10/14 javascript 20 豆豆
凯发ag旗舰厅登录网址下载 收集整理的这篇文章主要介绍了 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)

```

总结

以上是凯发ag旗舰厅登录网址下载为你收集整理的java动态创建bean的意义_java相关:spring boot如何动态创建bean示例代码的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得凯发ag旗舰厅登录网址下载网站内容还不错,欢迎将凯发ag旗舰厅登录网址下载推荐给好友。

网站地图