SpringXML方式配置bean的集合注入:list,map,properties

新建一个bean,设置相应的集合属性

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public class Collections {
     private Set<String> sets;
     private List<String> lists;
     private Map<String,String> maps;
     public Set<String> getSets() {
         return sets;
     }
     public void setSets(Set<String> sets) {
         this .sets = sets;
     }
     public List<String> getLists() {
         return lists;
     }
     public void setLists(List<String> lists) {
         this .lists = lists;
     }
     public Map<String, String> getMaps() {
         return maps;
     }
     public void setMaps(Map<String, String> maps) {
         this .maps = maps;
     }
}

在配置文件中配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
< bean id = "coll" class = " com.fz.entity.Collections" >
     < property name = "sets" >
         < set >
             < value >set1</ value >
             < value >set2</ value >
         </ set >
     </ property >
     < property name = "lists" >
         < list >
             < value >list1</ value >
             < value >list2</ value >
         </ list >
     </ property >
     < property name = "maps" >
         < map >
             < entry key = "map1" value = "map1" />
             < entry key = "map2" value = "map2" />
             < entry key = "map3" value = "map3" />
         </ map >
     </ property >
</ bean >

测试获取bean的值,此时控制台打印:list1 和list2

1
2
3
4
5
6
7
8
@Test
public void getProperties(){
     ApplicationContext ctx = new ClassPathXmlApplicationContext( "applicationContext.xml" );
     Collections coll = (Collections) ctx.getBean( "coll" );
     for (String temp : coll.getLists()) {
         System.out.println(temp);
     }
}








转载于:https://www.cnblogs.com/meet/p/4758191.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这个错误通常是由于MapStruct无法识别集合类型的元素类型而引起的。您需要在映射器接口中添加一个方法,该方法将用于将一个元素类型转换为目标元素类型。例如,如果您想将一个`List<PostInvestmentReportDO>`转换为一个`List<PostInvestOutVO>`,则可以这样做: ```java @Mapper(componentModel = "spring") public interface PostInvestmentMapper { PostInvestOutVO map(PostInvestmentReportDO value); List<PostInvestOutVO> mapList(List<PostInvestmentReportDO> list); } ``` 在上面的示例中,我添加了一个名为`mapList`的方法,该方法将用于将一个`List<PostInvestmentReportDO>`转换为一个`List<PostInvestOutVO>`。您可以在这个方法中使用`@Mapping`注解来指定每个属性的映射关系,就像在单个对象映射方法中一样。然后,您可以在需要将集合类型转换为目标元素类型的地方使用这个新的映射方法。 请注意,如果您使用的是Java 8或更高版本,则可以使用默认方法来添加这个新方法,而不必在每个映射器接口中都添加一个相同的方法。例如: ```java @Mapper(componentModel = "spring") public interface PostInvestmentMapper { PostInvestOutVO map(PostInvestmentReportDO value); default List<PostInvestOutVO> mapList(List<PostInvestmentReportDO> list) { return list.stream().map(this::map).collect(Collectors.toList()); } } ``` 在上面的示例中,我在映射器接口中添加了一个默认方法`mapList`,该方法使用Java 8的流操作将每个元素映射为目标元素类型,并将结果收集到一个新的`List<PostInvestOutVO>`中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值