@SpringBootApplication
声明这是c主程序
@SpringBootConfiguration
声明这是一个配置类,与@Configuration的区别就是这是一个核心配置类 @Configuration 注解本质上还是 @Component ,这样命名更易读.
@EnableAutoConfiguration(自动配置)
@EnableAutoConfiguration
可以帮助SpringBoot应用将所有符合条件的@Configuration
配置都加载到当前,就是它写死了,一开始全部给你加载了
但是然后会通过条件装配来进行按需配置,即对应的配置类里面会有@ConditionalOnClass,在对应情况才会配置他们. 这就实现了SpringBoot的自动配置
自动配置原理:先判断有没有,再判断是否需要,最后有多个的话判断用谁的
SpringBoot会为所有组件做好自动配置,一般遵循就行. 但是如果用户配置了,会以用户的优先. 但是有些情况是约定大于配置的.
一般情况我们需要定制化配置时都不需要自己重新写组件,因为那些自动配置类上面不仅有@ConditionalOnMissingBean注解,这个用于实现用户配置时用户的优先. 还有@ConfigurationProperties实现了让我们直接在.properties或.xml文件里面进行配置.
因此如果要修改属性,我们直接看官网的reference的Application Properties就可以知道怎么用了,这样事情就很简单了
@ComponentScan
扫描指定的路径作为组件
eg@ComponentScan({“com.company.user”,“com.company.service”})
@Component
声明这是一个容器中的组件,其实@Service,@Mapper,@Controller作用与@Component一样,只是为了可读