Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 获取数据库的bean名称(动态)_Java_Spring - Fatal编程技术网

Java 获取数据库的bean名称(动态)

Java 获取数据库的bean名称(动态),java,spring,Java,Spring,我在Spring4中创建了以下bean。以下配置文件中当前声明的主机和其他变量为静态。 但我们希望动态地从数据库中获取它。无法找到一种方法来获得它 请建议从数据库中获取它的方法 @Configuration public class RabbitMqConfiguration { public static final String HOST = "localhost"; public static final String USERNAME = "test"; pub

我在Spring4中创建了以下bean。以下配置文件中当前声明的主机和其他变量为静态。 但我们希望动态地从数据库中获取它。无法找到一种方法来获得它

请建议从数据库中获取它的方法

@Configuration
public class RabbitMqConfiguration {

    public static final String HOST = "localhost";
    public static final String USERNAME = "test";
    public static final String PASSWORD = "test";
    public static final int CHANNEL_CACHE_SIZE = 25;
    public static final int CONNECTION_CLOSE_TIMEOUT = 30000;
    public static final int CONNECTION_CACHE_SIZE = 1;
    public static final int REQUEST_HEART_BEAT = 0; 

    @Bean
    public ConnectionFactory connectionFactory() {
        CachingConnectionFactory connectionFactory = new CachingConnectionFactory(HOST);
        connectionFactory.setUsername(USERNAME);
        connectionFactory.setPassword(PASSWORD);
        connectionFactory.setCloseTimeout(CONNECTION_CLOSE_TIMEOUT);
        connectionFactory.setChannelCacheSize(CHANNEL_CACHE_SIZE);
        connectionFactory.setConnectionCacheSize(CONNECTION_CACHE_SIZE);
        connectionFactory.setRequestedHeartBeat(REQUEST_HEART_BEAT);
        return connectionFactory;
    }
}

有两种方法可以加载属性,一种是使用
MutablePropertySources
,另一种是将属性简单地存储在
HashMap

解决方案的基本思路如下:

  • 配置数据库bean
  • 使用方法上的
    @PostConstruct
    注释从数据库读取消息配置
  • RabbitMqConfiguration
    中自动连接DBConfiguration类
  • 使用
    MutablePropertySources
    编辑
    PropertySources
    ,或者只需创建
    HashMap
    即可加载配置
  • 你可以参考或


    你们有什么样的数据库?您如何从数据库连接和重拨?@pvpkiran-MYSQL。在hibernate中使用spring注释