@Autowired和@Reference的区别
1.@Autowired是由Spring框架提供的,@Reference是由JDK提供的
2.查找顺序不同@Autowired先根据type查找再根据name查找,而@Reference相反
3.支持的参数个数不同,@Autowired支持1个参数,@Reference支持7个参数
4.依赖注入用法不同@Autowired支持Set注入和构造器注入,@Reference支持Set注入和属性注入
@Bean和@Compment注解的区别
@Component 和 @Bean 是两种使用注解来定义bean的方式
@Component通常用来表示一个类为一个组件,表示它需要被Spring扫描到IOC容器中
@Bean通常用在@Configration中。用在方法上面,表示将方法的返回对象注册到IOC容器中
@Bean可以自定义Bean的创建和初始化过程,@Bean注解更加灵活,可以在方法中为对象设置属性值 ,SpringBootStarter机制就运用了@Bean注解
@EnableAutoConfiguration注解的作用
@EnableAutoConfiguration的作用是启动SpringBoot的自动配置机制。它会根据项目中引入的类库,框架以及其他的一些条件来自动配置应用程序的运行环境和各种功能模块。
@EnableAutoConfiguration使程序的开发更加简洁高效
Spring Boot Starter
Spring Boot Starter是一组依赖的集合。每个Starter都包含了一组相关依赖和自动配置类。通过引入Start依赖,开发者可以实现特定功能的快速启动和配置。
@Bean
@ConditionalOnProperty(value = "spring.jdbc.datasource.type",havingValue = "druid")
@Bean
@ConditionalOnProperty(value = "spring.jdbc.datasource.type",havingValue = "c3p0")
在bean下添加@ConditionalOnProperty注解,当type为havingValue的值则执行相应的方法返回对象。
1.spring启动后扫描WEB-INF文件夹下的spring.factories文件,将自定义的Configuration类装配到SpringIOC容器中。
2.引入starter会把starter相应功能的所有的jar包依赖都导进来,避免手动配置,简化开发 。引入的starter组件对应的功能所需要的外部配置文件,都可以在当前项目的application.properties配置就行了