在spring的迭代升级中,xml逐渐被嵌入式的注解所替代,从而逐渐实现“0配置”
在springboot的启动类中有三个核心注解,分别是
@SpringBootConfiguration
@Configuration
@EnableAutoConfiguration
@AutoConfigurationPackage
@Import({Registrar.class})
@Import({EnableAutoConfigurationImportSelector.class})
@ComponentScan
这里的@EnableAutoConfiguration使用import机制来扩展第三方的jar bean初始化,对于使用springboot写项目的程序猿来说重要的则是@ComponentScan来加载被被注解所标记的Bean(@Service@Repository@Component@Controller@RestController)
@Configration 和@ Bean的组合其实就相当于XML和Bean标签的组合
@Configuration
public class UserConfig {
@Bean
public User getUser(){
User user = new User();
user.setId(1);
user.setNickName("xiang");
user.setPassword("aaddvv");
user.setMale(1);
return user ;
}
}
等价于
<bean id="getUser" class="com.xiang.HelloWorld.entity.User">
<property name="id" value="1" />
<property name="nickName" value="xiang" />
<property name="password" value="aaddvv" />
<property name="male" value="1" />
</bean>
在传统spring当中需要通过recourceloader 将XML读取并加载到Beandefination当中
现在则是@ComponentScan 触发扫描包的机制将当前规定packge的路径下的包进行扫描,找出插了眼的class进行bean的初始话加载到Beandefination中。