Springboot(一)
一、概要
- Spring开源组织下的子项目
- 新一代web开发的标准
- 简化了ssm开发的难度
- 简化的繁琐的配置文件
- Spring cloud的基础
二、核心思想
- 习惯由于配置
- 减少程序配置
三、解决上一代ssm框架开发的一些问题
- 配置文件繁琐
- 依赖包的导入
- 配置tomcat
- 应用程序监控
四、优缺点
- 内置tomcat
- 采用JavaConfig避免xml配置 采用properties或者yml作为配置文件
- 避免maven导入依赖包,提供了starter场景启动器,简化了maven的配置.
- 提供了大量配置的默认值,通过很少的配置就能开发
- 内置应用程序监控
- 开发部署方便(docker技术)
五、基础使用
- 快速创建Springboot项目(Spring Initialzr)
- 工程目录介绍
- 在主包下面有个XXXApplication—>程序的入口类
- resources 存放配置文件的目录
- application.properties ------- key = value
- application.yml ------- key: value
- pom.xml文件
<!--父 pom-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.0.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
- 启动流程
@SpringBootApplication
public class HelloSpringBootApplication {
public static void main(String[] args) {
SpringApplication.run(HelloSpringBootApplication.class, args);
}
}
// @SpringBootApplication注解,标记在类上,表示这是一个Springboot
//应用,是一个Springboot程序的入口
三个核心注解:
//标记在类上,声明这个类是一个配置类
@Configuration
// 扫描注解包
@ComponentScan
//开启自动配置,通过该类实现自动配置,体现习惯由于配置的核心思想
@EnableAutoConfiguration
//1.EnableAutoConfiguration底层实现
package org.springframework.boot.autoconfigure;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import org.springframework.context.annotation.Import;
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@AutoConfigurationPackage
@Import({AutoConfigurationImportSelector.class})
public @interface EnableAutoConfiguration {
String ENABLED_OVERRIDE_PROPERTY = "spring.boot.enableautoconfiguration";
Class<?>[] exclude() default {};
String[] excludeName() default {};
}
//2.进入AutoConfigurationImportSelector.class
定位到目录后,可以找到以下路径,会发现Springboot所有的自动配置类都配置在了一个spring.factories的文件里!