Я хочу установить HashMap с SpringBoot и получить следующие значения в другом классе - PullRequest
0 голосов
/ 24 марта 2019

Я работаю с Spring Boot, и мне нужно загрузить HashMap с некоторыми значениями из класса A.

Затем мне нужно получить значения из этого HashMap в классах B, Class C и т. Д..

Итак, мне нужен HashMap, который сначала загружает мои значения, а затем использует эту Карту для других классов.

Спасибо.

Ответы [ 2 ]

1 голос
/ 25 марта 2019

Теперь значения, которые вы пытаетесь загрузить, могут быть статическими или динамическими (из БД).

Если это статическое значение

@Configuration
public class MyConfig {

   @Bean 
   public Map<String, String> myVal(){
      Map<String, String> map = new HashMap<String, String>();
      map.put("Sample", "Value");      
   }


}

.Другие классы компонентов, предлагаемые @ Gro

@Autowired
private Map<String, String> myData;

Для динамических данных

С XML

<bean class="com.example.DbConfigLoader" init-method="initMethod">

С аннотацией

@Configuration
public class MyConfig {

  @Bean(initMethod="initMethod")
  public DbConfigLoader dbConfigLoader() {
    return new DbConfigLoader();
  }

}



public class DbConfigLoader {

    @Autowired
    private DbConfigRepository repository;

    private DbConfig dbConfig;

    @PostConstruct   // Optional if you dont want to add initMethod in Bean Defination
    public void initMethod(){

    // Logic for your dynamic Data load
        dbConfig = repository.findOne(1L);  
    }

    public DbConfig getDbConfig() {
        return dbConfig;
    }
}

Ваш боб готов к использованию в любых других классах.

0 голосов
/ 24 марта 2019

Я предполагаю, что у вас есть класс Configuration, который создает и возвращает Spring Beans.

import org.springframework.context.annotation.*;

@Configuration
public class MyConfiguration {

   /* Feel free to change the type of key and value in the Map 
    * from String, String to anything of your choice 
    */
   @Bean 
   public Map<String, String> helloWorld(){
      java.util.Map<String, String> map = new java.util.HashMap<String, String>();
      map.put("Hello", "world");      
   }

  /*Your other bean exporting methods*/

}

После этого вы можете внедрить эту карту в любой компонент или службу Spring, например,

@Component
public class Foo {

    @Autowired
    private Map<String, String> myMap;

    /* You can even put the annotation on a setter */

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...