大致了解SpringExt
Spring Schema提供了我们便捷的初始化bean的方法,我们不需要再去写构造器注入或者属性注入直接使用类似的如下配置代码即可完成bean的初始化
<resource-loading id="resourceLoadingService"
xmlns="http://www.alibaba.com/schema/services/resource-loading">
<resource pattern="/file">
<file-loader basedir="${user.home}" />
</resource>
<resource pattern="/webroot">
<webapp-loader />
</resource>
</resource-loading>
但是Spring Schema是不具有拓展性的,我们不能随意添加一个database-loader
,对比以上代码
<resource-loading id="resourceLoadingService"
xmlns="http://www.alibaba.com/schema/services/resource-loading">
<resource pattern="/file">
<file-loader basedir="${user.home}" />
</resource>
<resource pattern="/webroot">
<webapp-loader />
</resource>
<resource pattern="/db">
<database-loader connection="jdbc:mysql:mydb" />
</resource>
</resource-loading>
于是SpringExt帮助我们通过定义拓展点(ConfigurationPoint)
和声明贡献(Contribution)
的方式实现我们的动态拓展功能:
<resource-loading id="resourceLoadingService"
xmlns="http://www.alibaba.com/schema/services"
xmlns:loaders="http://www.alibaba.com/schema/services/resource-loading/loaders">
<resource pattern="/file">
<loaders:file-loader basedir="${user.home}" />
</resource>
<resource pattern="/webroot">
<loaders:webapp-loader />
</resource>
<resource pattern="/db">
<loaders:database-loader connection="jdbc:mysql:mydb" />
</resource>
</resource-loading>