Spring针对不用的业务场景提供了不同的启动类实现,其基类是ApplicationContext。
spring的配置使用方式有三种,基于Xml,基于注解,Java-based。
三种使用方式代表的spring的配置演进。
在注解尚未流行时,spring提供了当时流行的代码配置解耦策略,xml。以XML定义配置骨架,容器围绕配置骨架解析配置组装对象。
随着应用代码量的膨胀,配置越来越臃肿,随之注解流行开来,spring也应时提供了注解时配置,在这个时代注解和XML配置共存,和谐的合作着。
技术一直在演进,各种思想一直在博弈,纯净Java派占领了浪尖,注解方兴未艾,Java-base Config大行天下。SpringBoot的推出,使xml配置使用方式淹没在海底。Java-base config太纯粹,太霸道,它不允许任何的xml存在。
三种使用方式孰优孰劣,官方说法 it depends。
ClassPathXmlApplicationContext
FileSystemXmlApplicationContext
AnnotationConfigApplicationContext
AnnotationConfigWebApplicationContext
GenericApplicationContext
GenericXmlApplicationContext
GenericGroovyApplicationContext
XmlWebApplicationContext
ComplexWebApplicationContext
GenericWebApplicationContext
StaticApplicationContext
StaticWebApplicationContext
SimpleWebApplicationContext
StubWebApplicationContext