约定优于配置
90 % 以上的项目呢, 配置都差不多, 所以呢 spring团队,就搞出 了一个 通用的配置, 就不需要再去配置这些繁杂的配置了。
如果用的ssm, 所有的maven依赖, 版本, 都需要我们程序猿去 控制, 去找依赖, 并且 互相配合依赖. 依赖没有配合好, jar冲突, 出了问题就需要程序猿去解决, 一般非常耗时的.
开箱即用
每一个starter 都是一个功能场景
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
mven标准的目录结构
配置文件生效顺序: properties > yml > yaml
程序和注解
/**
* springBoot启动类
*/
// 表明 此类 是SpringBoot的 启动类, 服务类
@SpringBootApplication
public class Demo100Application {
/**
* main 方法 程序入口
* @param args
*/
public static void main(String[] args) {
/**
* SpringApplication
*
* run
*/
SpringApplication.run(Demo100Application.class, args);
}
}
注解
@ComponentScan 扫描我们写的一些组件, 扫描的是 启动类所在的包下的所有组件
@EnableAutoConfiguration 这个注解 它所加的组件 就是我们在 pom中 申明 的组件 以及 springBoot默认提供给我用的组件啊 将组件实例化,交由IOC容器去管理
@AutoConfigurationPackage 自动配置包
@Import({AutoConfigurationImportSelector.class}) 核心
@SpringBootConfiguration
@Configuration
@Component
@EnableAutoConfiguration 是我们的核心注解 开启自动配置/ 自动装配
@EnableAutoConfiguration
@EnableAutoConfiguration
@EnableAutoConfiguration
@EnableAutoConfiguration
@EnableAutoConfiguration
@EnableAutoConfiguration
@EnableAutoConfiguration
@EnableAutoConfiguration **@EnableAutoConfiguration 核心核心 核心 **
@Import({AutoConfigurationImportSelector.class}) 核心中的核心 核心中的核心
Properties 所有的配置 其实 底层都对应了 一个类的属性