之前利用List<List>进行创建实例,主要存在的问题是要求各个类的属性的个数必须一致。


为了能够可以不受这个限制,考虑用Map来存放XML中的配置信息


由Spring引出的一些瞎想(2)


因为要创建XML中配置的所有的对象,所以还是用List来储存,不同的的是List<Map>,用map来储存创建实例所需要的全部信息。每个map除了需要有创建实例所需要的属性以外,还要有该类的全类名。这个全类名也从XML中获取。

由Spring引出的一些瞎想(2)




同样,在各个类中也需要重新创建构造方法,接收一个Map<String,String>来创建实例对象。


由Spring引出的一些瞎想(2)


有了这个构造方法后,BeanFactory类就可以接收一个Map<String,String>来创建Bean。


由Spring引出的一些瞎想(2)

然后就可以得到在XML文件中所创建的所有对象的实例

由Spring引出的一些瞎想(2)



梳理一下整个过程:

1.DocumentParse类,负责解析XML文件,得到一个List<Map>,Map<String,String>储存要创建的对象的全类名,和属性的赋值。

2.BeanFactory类,负责接收一个Map<String,String>,根据得到的内容创建Object



 存在的问题:

虽然可以根据具体的类创建对象,但是依然要求每个类提供构造方法。



相关文章:

  • 2021-05-17
  • 2022-01-03
  • 2021-05-10
  • 2021-11-26
  • 2021-07-12
  • 2021-08-29
  • 2022-01-24
  • 2022-12-23
猜你喜欢
  • 2021-08-01
  • 2021-05-11
  • 2021-08-23
  • 2019-09-29
  • 2022-12-23
  • 2022-02-06
  • 2022-01-11
相关资源
相似解决方案