目录
SpringBoot特性:
- 创建独立的Spring应用程序
- 直接"入门"依赖(起步依赖),以简化构建配置
- 尽可能自动配置Spring和第三方库
- 提供可以用于生产的功能,例如:指标,运行状况检查和外部化配置
- 完全没有代码生产,也不需要XML配置
SpringBoot解决的问题:
- ssm存在问题:配置文件繁琐,依赖非常容易冲突,需要手动部署tomcat
- 解决Spring整合其他框架存在的问题,简化开发
- SpringBoot是一个基于spring的一个框架(简化开发).提供了自动配置的依赖包(起步依赖),自动嵌入servlet的容器,简化开发的配置(自动配置),提升开发人员的开发效率,解决依赖的问题.
简单案例: 直接手动添加这样较为方便
pom.xml
添加依赖
<!--添加parent-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.0.RELEASE</version>
</parent>
<dependencies>
<!--添加起步依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
配置启动类:
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
//添加springBoot注解
@SpringBootApplication//启动类
public class MySpringbootApplication {
public static void main(String[] args) {
SpringApplication.run(MySpringbootApplication.class,args);
}
}
代码:
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
/**
* 入门案例控制层
* 代码放到启动类所在包或子包下
*/
@RestController
public class HelloController {
@RequestMapping(value = "/hello",method = RequestMethod.GET)
public String hello(){
return "hello spring boot....";
}
}
注: 启动类是放在代码的上一级目录,SpringBoot配置了自动扫码启动类所在包的子包下的代码
SpringBoot的配置文件:
SpringBoot是约定大约配置,所以很多配置都是默认的.需要修改默认配置的话,那么我们需要自己配置application.properties或application.yml,SpringBoot默认从Resource目录加载自定义配置文件。
properties文件的配置多以key.key.key:value
的形式组成
yaml文件等价于properties文件,在使用过程中都是一样的效果。
但是yml文件书写的方式和properties文件不一样。更加简洁,那么我们可以根据需要选择性的使用properties和yml文件。如果同时存在两个文件,那么优先级properties要高于yml。
一. application.yml:
语法特点: (类似于包名的展开样式)
- 大小写敏感
- 数据值前必须有空格,作为分隔符
- 缩进的空格数目不重要,只需要对齐即可
- # 表示注释
- key1:
key2:
key3: value
key4: value4
- key1:
注:
相同缩进代表同一级别
基本格式: key : value
数组: - 用于区分
集合中元素的对象形式:
map集合: {"name":"zhangsan","age":"15"}
获取配置文件中的值:
三种方式:
- @Value注解方式 ----- 只能获取简单值
- Environment的方式
- @ConfigurationProperties:
- 加在实体对象上
import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; /** * 配置文件实体属性对象 跟 配置文件 一一对应关系 */ @Component @ConfigurationProperties(prefix = "person") public class Student { private String name; private Integer age; public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } }
- 加在实体对象上
需要加入自定义配置提示:依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
配置文件切换环境:
在开发的过程中,需要配置不同的环境,所以即使我们在application.yml中配置了相关的配置项,当时在测试是,需要修改数据源等端口路径的配置,测试完成之后,又上生产环境,这时配置又需要修改,修改起来很麻烦。
application.yml: #通过active指定选用配置环境 格式:
spring:
profiles:
active:test
在application.yml中 以dev, pro, test来定义需要使用那个配置