我在spring中定义了一个映射:
<util:map id="AdditionalParams" scope="prototype" map-class="java.util.HashMap"
key-type="java.lang.String" value-type="java.lang.String">
<entry key="Start" value="12345" />
<entry key="Finish" value="12365" />
</util:map>
然后我将这个bean自动转换为一个属性,该属性定义为:
private @Autowired @Qualifier(value = "AdditionalParams") Map<String, String> additionalParams;
干杯。
从Spring4.3开始,@autowired
可以注入列表和映射,并且问题中的给定代码可以工作:
也就是说,从4.3开始,集合/映射和数组类型也可以通过Spring的@autowired
类型匹配算法进行匹配,只要元素类型信息保留在@bean
返回类型签名或集合继承层次结构中。
但是在更低的Spring版本中,你不能自动生成这样的集合。但是,您可以执行以下操作:
@Resource(name="AdditionalParams")
private Map<String, String> additionalParams;
@Value("#{AdditionalParams}")
private Map<String, String> additionalParams;
本身被定义为集合或映射类型的bean不能通过@autowired注入,因为类型匹配不适用于它们。对此类bean使用@resource
和我的配置类: 1)AppConfig。 2)AppInitializer: 不幸的是同样的结果: 找不到依赖项得[Kamienica.Service.CustomUserDetailsService]类型得合格bean:需要至少1个具有此依赖项自动候选资格得bean.依赖项注释:{@org.SpringFramework.Beans.Factory.Annotation.AutoWired(re
我是Spring的新手。我正面临Spring-Boot的问题。我正在尝试将外部配置文件中的字段自动装配到自动装配的bean中。我有以下类 应用程序。Java语言 AppConfig。Java语言 服务接口 服务1 我无法在App类的postconstruct方法中显示服务名称变量。我这样做对吗?
代码完成了这项工作,创建了repo HashMap对象({})。然而,我试图让repo映射对象由Spring生成。所以我把DataRepoImpl改成: 然而,当我重构帐户ID和地图键到字符串类型,我能够产生HashMap包含一个'假人'变量,这是奇怪的: 回到Integer,我无法修复错误,然后我尝试将自动连线移到DataRepoImpl类的空构造函数: 然而,我从repo得到空值,因为(我的假
问题内容: 可以与列表一起使用吗? 就像我有带有mimetypes的属性文件,而在我的班级文件中,我有类似的东西 问题答案: Spring 4支持自动收集给定类型的所有bean并将其注入到集合或数组中的能力。 例:
当我编写一些spring代码时,我使用了带有class和annotation-config的Spring4。我已经声明一个bean将接口实现为组件。我正在尝试制作另一个bean来依赖于它的接口时间。但它不起作用,因为spring抛出一个错误,在该名称中找不到bean。我想这可能是因为只靠和实体类的自动电线工作,但我不知道为什么它会这样设置?有人能解释为什么依赖注释不允许类型自动连接到接口吗? 简单