我正在学习Spring Core认证,与@import和@importresource注释的使用有疑问。
例如,我有一个名为RootConfig.java的配置类:
@Configuration
@Import({AppConfig.class,DbConfig.class})
@ImportResource("classpath:/config/security-config.xml")
@EnableTransactionManagement
public class RootConfig {
}
我知道在这个例子中:
@Import({AppConfig.class,DbConfig.class})
您需要导入其他2个配置类(类似于将这些配置包含到由RootConfig.java配置类表示的主配置中)。
我理解:
@ImportResource("classpath:/config/security-config.xml")
正在导入XML文件。
我的疑问是:为什么存在两种执行非常相似任务的不同注释?为什么不使用单个注释来导入配置类和资源(例如xml文件或属性文件)?
这只是语义上的区别还是还有其他原因?