当前位置: 首页 > 知识库问答 >
问题:

如何在spring上下文中修正bean的注入映射

松霖
2023-03-14
<util:map id="mapByName" map-class="java.util.concurrent.ConcurrentHashMap">
    <entry key="Name1" value-ref="MyCustomClassName1" />
</util:map>
@Inject
private Map<String, MyCustomClassName1> mapByName;

因此,如您所见,键的名称从name1->myCustomClassName1(该类的名称)改为name1->myCustomClassName1。所以我的问题是如何在map属性中定义自定义键名?

共有1个答案

湛宝
2023-03-14

如果我是您,我会使用Java Config创建映射,因为Java是创建Java对象的最佳方式:):)。您的配置代码如下所示:

@Bean(name = "mapBean")
public Map<String, MyCustomClassName1> mapBean() {
    Map<String, MyCustomClassName1> map = new HashMap<>();
    //populate the map here - you will need to @Autowire the references if they are not defined in this configuration
    return map;
}

然后我会把它注射到任何需要它的地方,就像这样:

@Resource(name="mapBean")
private Map<String, MyCustomClassName1> map;

注意使用@resource而不是@autowired@inject

 类似资料:
  • 问题内容: 我是公司产品之一的最终用户。它不太适合集成到Spring中,但是我能够获取上下文的句柄并按名称检索所需的bean。但是,我仍然想知道是否可以将bean注入到此类中,即使该类不是由Spring本身管理的。 说明:管理某个类MyClass的生命周期的同一应用程序也正在管理Spring上下文的生命周期。Spring没有MyClass实例的知识,我想了解如何将实例提供给上下文,但是不能在上下文

  • 问题内容: 我是公司产品之一的最终用户。它不太适合集成到Spring中,但是我能够获取上下文的句柄并按名称检索所需的bean。但是,我仍然想知道是否可以将bean注入到此类中,即使该类不是由Spring本身管理的。 说明:管理某个类MyClass的生命周期的同一应用程序也正在管理Spring上下文的生命周期。Spring没有MyClass实例的知识,我想了解如何将实例提供给上下文,但是不能在上下文

  • 我正在开发一个遗留的JSF应用程序,我们正在慢慢地将其移植到Spring MVC。我们正在使用Spring Security来控制登录信息。在用户登录之后,JSF页面全局地实例化一个在任何地方都使用的会话作用域bean。我想更改应用程序,这样我们就可以先进入用Spring MVC开发的页面。 我尝试的一种方法是将bean转换为spring bean,并将其注入JSF,但不幸的是,这需要对bean进

  • 关于我的问题的一些背景情况是,我们有一个tomcat应用程序在独立的tomcat中的“/context”下运行。我们让apache坐在前面,加密tomcat服务器上的通信量,并将“/”请求映射到“/context”。我刚刚对tomcat应用程序进行了重做,以便在spring Boot中运行。我们正在做的是使用spring boot构建一个包含原始war的可执行war文件。当我们执行新的war文件时

  • 我正在测试一个(Eclipse 4)应用程序(我不是在谈论单元测试,而是更多的集成和系统测试)。 我有一个反复出现的问题需要解决。我必须将测试中的上下文“注入”(@inject)到被测试的类中。换句话说,我需要测试做应用程序通常做的事情。 我所做的是创建一个私有方法: 我(错误地)期望刚才在这里创建的上下文可以在测试中的一个类中使用。例如。: 肯定少了些什么!我也创建了activator(为简洁起

  • 问题内容: 我有一个Spring bean(dao)对象,该对象通过以下xml在ServletContext中实例化: 该bean在我的webapp-servlet.xml文件中声明,并由我的应用程序在ServletContext中使用。 我也在使用SpringSecurity。据我了解,这在不同的上下文(SecurityContext)中运行。 我的应用程序具有webapp-security.x