1.先说一下springboot比较spring的优点
- Spring Boot 的优点如下:
- 快速创建独立运行的Spring项目以及与主流框架集成
- 使用嵌入式的Servlet容器,应用无需打成WAR包
- starters自动依赖与版本控制
- 大量的自动配置,简化开发,也可修改默认值
- 无需配置XML,无代码生成,开箱即用
- 准生产环境的运行时应用监控
- 与云计算的天然集成
2.springboot的核心功能
起步依赖
起步依赖的本质上是一个Maven项目对象模型,定义了对其他库的传递依赖,这些东西加在一起即支持某项功能。
简单的说,起步依赖就是将具备某种功能的坐标打包到一起,并提供一些默认的功能。
自动配置
- Spring Boot的自动配置是一个运行时(更准确地说,是应用程序启动时)的过程,考虑了众多因素,才决定Spring配置应该用哪个,不该用哪个。该过程是Spring自动完成的。
3.springboot代码解析
SpringBoot代码解析
- @SpringBootApplication:标注SpringBoot的启动类,该注解具备多种功能
- SpringApplication.run(MySpringBootApplication.class) 代表运行SpringBoot的启动类,参数为SpringBoot启动类的字节码对象
4.springboot工程热部署
我们在开发中反复修改类、页面等资源,每次修改后都是需要重新启动才生效,这样每次启动都很麻烦,浪费了大量的时间,我们可以在修改代码后不重启就能生效,在 pom.xml 中添加如下配置就可以实现这样的功能,我们称之为热部署。
<!--热部署配置-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
热部署配置
Shift+Ctrl+Alt+/,选择Registry
4.关于@SpringBootApplication 注解的三个重点注解
- @ComponentScan(包扫描)
- component是组件,scan是扫描,所以这个注解的含义就是用来扫描组件的,componentScan 扫描当前包及其子包下被 @Component,@Controller,@Service,@Repository注解标记的类并纳入到spring容器中进行管理,所以这个注解会自动注入所有在主程序所在包下的组件。默认把当前启动类所在的包作为扫描包的起点。
- @SpringBootConfiguration : 表示当前类具有配置类的作用
- @EnableAutoConfiguration:自动配置
- 根据当前引入的依赖包,猜测需要创建的工程类型,以及工程中有可能创建的对象,根据猜测自动创建工程所需的相关实例bean程序启动,会自动加载扫描所有 classpath:/META-INF/spring.factories文件 ,并且创建对应实例
5.关于springboot配置文件
SpringBoot配置文件类型和作用
SpringBoot是基于约定的,所以很多配置都有默认值,但如果想修改默认配置的话,就可以使用application.properties或application.yml(application.yaml)进行配置。
- YML文件格式是YAML (YAML Ain't Markup Language)编写的文件格式,YAML是一种直观的能够被电脑识别的数据序列化格式,并且容易被人类阅读,容易和脚本语言交互的,可以被支持YAML库的不同的编程语言程序导入,比如: C/C++, Ruby, Python, Java, Perl, C#, PHP等。YML文件是以数据为核心的,比传统的xml方式更加简洁。
- YML文件的扩展名可以使用.yml或者.yaml。
- 标记语言:
- 以前的配置文件;大多都使用的是 xxxx.xml文件;
- YAML:以数据为中心,比json、xml等更适合做配置文件;
- YAML:配置例子
6.YAML语法
1、YAML基本语法
- 使用缩进表示层级关系
- 缩进时不允许使用Tab键,只允许使用空格。
- 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可
- 大小写敏感
2、YAML 支持的三种数据结构
- 对象:键值对的集合
- 数组:一组按次序排列的值
- 字面量:单个的、不可再分的值
7.配置文件与配置类的属性映射方式
- 使用注解@Value映射
我们可以通过@Value注解将配置文件中的值映射到一个Spring管理的Bean的字段上
例如:
- application.yml配置如下:
person:
name: zhangsan
age: 18
实体bean如下
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class Quick2Controller {
@Value("${person.name}")
private String name;
@Value("${person.age}")
private Integer age;
@RequestMapping("/quick")
@ResponseBody
public String quick(){
//获得配置文件的信息
return "name:"+name+",age="+age;
}
}
8.spring创建bean的三种方式
1.标签
<bean id=”user” class=”com.atguigu.bean.User”></bean>
2.组件注解
@Component @Controller @Service @Repository
3.自定义配置类
@Configuration
public class AppConfig {
@Bean
public User user(){
return new User();
}
}