springBoot学习路线
-
什么是springboot
简化开发 预定大于配置 -
什么是微服务
service (业务) => 模块
spring controller =》提供接口
创建一个springboot项目
直接在idea中创建
pom文件解析
执行打jar包
jar包相当于一个单独的模块,可独立运行
彩蛋:换banner
banner地址
springboot原理
1.自动装配
- spring-boot-dependencies 核心依赖父工程
- 我们在写或者引入springboot依赖时不需要指定版本,因为父工程已经配置好了
2.启动器:
<dependency>
<!--web 内嵌tomcat dispatchservlet等等-->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
说白了:spring-boot-starter就是springboot需要启动的场景
比如spring-boot-starter-web会帮我们导入web需要的包
springboot将所有的场景变成了一个个的启动器,我们需要使用什么场景只要的找到对应对的启动器即可。
- 主程序:
@SpringBootApplication
public class DemoApplication {
```java
@SpringBootApplication//标注这个类是一个springboot的应用
public class DemoApplication {
//启动
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
@SpringBootConfiguration://springboot 的配置
@Configuration spring的配置
@Component 这也是一个spring的组件
@EnableAutoConfiguration:自动导入配置
@AutoConfigurationPackage: 自动配置包
@Import({Registrar.class}) 导入注册器包
@Import({AutoConfigurationImportSelector.class}) 自动导入选择配置器包
结论:springboot所有的自动配置都在启动的时候扫描并加载,spring.factories所有的自动配置类都在这里面,但不是所有的都会生效,要判断条件是否成立,只要导入了对应的start,如(spring-boot-starter-web),就有对应的启动器了,有了启动器自动装配就会生效,就会配置成功了。
1.springboot在启动时,在类路径下/META/INFO/spring.factories文件下获取指定的值。
2.将这些自动配置的类导入容器,自动配置就会生效。
3.以前我们需要配置的东西,现在有springboot自动配置。
4.整个javaee ,解决方案和自动配置都在 spring-boot-autoconfigure.jar这个包下。
yaml可以给实体类赋值
数据校验
@NotNull(message=“名字不能为空”)
private String userName;
@Max(value=120,message=“年龄最大不能查过120”)
private int age;
@Email(message=“邮箱格式错误”)
private String email;
空检查
@Null 验证对象是否为null
@NotNull 验证对象是否不为null, 无法查检长度为0的字符串
@NotBlank 检查约束字符串是不是Null还有被Trim的长度是否大于0,只对字符串,且会去掉前后空格.
@NotEmpty 检查约束元素是否为NULL或者是EMPTY.
Booelan检查
@AssertTrue 验证 Boolean 对象是否为 true
@AssertFalse 验证 Boolean 对象是否为 false
长度检查
@Size(min=, max=) 验证对象(Array,Collection,Map,String)长度是否在给定的范围之内
@Length(min=, max=) string is between min and max included.
日期检查
@Past 验证 Date 和 Calendar 对象是否在当前时间之前
@Future 验证 Date 和 Calendar 对象是否在当前时间之后
@Pattern 验证 String 对象是否符合正则表达式的规则
…等等
除此以外,我们还可以自定义一些数据校验规则
优先级1:项目路径下的config文件夹配置文件
优先级2:项目路径下配置文件
优先级3:资源路径下的config文件夹配置文件
优先级4:资源路径下配置文件
多环境配置:
此处名称中的为横线-而不是_
yaml格式的多环境
访问静态资源:
引入模板引擎
<dependency>
<!-- 前后端分离的模板引擎 -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>