我想用SpringBoot设置HashMap并在其他类中获取下一个值

时间:2019-03-24 11:46:50

标签: java spring spring-boot hashmap

我正在使用Spring Boot,并且需要使用A类中的一些值加载HashMap。

然后,我需要从B类,C类等的HashMap中获取值。

因此,我需要首先加载我的值的HashMap,然后再在其他所有类中使用此Map。

谢谢。

2 个答案:

答案 0 :(得分:1)

现在尝试加载的值可以是静态的或动态的(从数据库中获取)

如果它是静态的

df = pd.concat([df1, df2, df3]).groupby('account_number', as_index=False)['hkd_margin'].sum()
print (df)
   account_number    hkd_margin
0              20  2.361950e+05
1              40  1.375593e+07
2              60  2.174999e+07
3              90  4.695600e+04

然后您可以按照@Gro的建议在“其他组件”类中进行自动装配

@Configuration
public class MyConfig {

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


}

用于动态数据

使用XML

@Autowired
private Map<String, String> myData;

带注释

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

您的bean已准备好在任何其他类中使用。

答案 1 :(得分:0)

我假设您有一个Configuration类,该类创建并返回Spring Bean。

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或Service

@Component
public class Foo {

    @Autowired
    private Map<String, String> myMap;

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

}