lombok - 简化 JavaBean开发&日志开发
sss①、引入依赖:
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
sss②、安装插件
dasda
sss③、使用方法
/**
* 只有在容器中的组件,才会拥有SpringBoot提供的强大功能
*/
@NoArgsConstructor 添加无参构造器
@AllArgsConstructor 添加全参构造器
@ToString 重写toString方法
@Data 添加 Getter 和 Setter 方法
@EuqalsAndHashCode
public class Car {
private String brand;
private Integer price;
}
================简化日志开发==============================
@Slf4j
@RestController
public class HelloController {
@RequestMapping("/hello")
public String handle01(@RequestParam("name") String name){
log.info("请求进来了....");
return "Hello, Spring Boot 2!"+"你好:"+name;
}
}
sss④、输出结果:
dev-tools - Restart
sss①、引入依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
sss [注 1]:项目或者页面修改以后: Ctrl + F9
sss [注 2]:Reload 其实是重启,并不算是热部署,JRebel是热部署,但收费。
Spring Initailizr(项目初始化向导)
sss①、选择场景 (朋友的图,不过都一样) :
ssssadasds
sss②、自动搭建好项目架构
sdasdssds
sss③、自动依赖引入
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.6</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.atguigu.boot</groupId>
<artifactId>boot-01-helloword2</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>boot-01-helloword2</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
...
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.5.6</version>
</plugin>
</plugins>
</build>
</project>
sss [注 3]:有时候配置好会出现Plugin ‘org.springframework.boot:spring-boot-maven-plugin:’ not found这个错误,主要是因为没有给出版本号( < version> 2.5.6 </ version>)
sss [注 4]:用 Spring Initailizr 进行项目初始化,有时候会出现项目创建不成功的情况:
dasdasdsadasdsadasdasddas
sss 解决方法 :打开idea最上角file选项的Settings –> 搜索HTTP Proxy –> 勾选Automatic proxy configuration URL ,然后输入值–> 输完后通过 Check connection 进行检验 -> 最后提示:successful.则代表成功,重新创建即可;
sssAutomatic proxy configuration URL后面输入的值依次尝试 : ①、https://start.spring.io ②、http://start.spring.io ③、 http://start.spring.io/ ④、点击 clear passwords ⑤、https://start.aliyun.com/ ⑥、最后也看看看是否是防火墙问题(WINDOWS系统->控制面板->系统和安全->防火墙 看是否在权限范围内) sss依次 ① --> ⑥ 尝试,基本到⑤就一定行了。
配置文件
sss①、properties 同以前的properties用法
sss②、yaml
yaml
简介
sssYAML 是 “YAML Ain’t Markup Language”(YAML 不是一种标记语言)的递归缩写。在开发的这种语言时,YAML 的意思其实是:“Yet Another Markup Language”(仍是一种标记语言)。 非常适合用来做以数据为中心的配置文件。
基本语法
ssskey: value;kv之间有空格
sss大小写敏感
sss使用缩进表示层级关系
sss缩进不允许使用tab,只允许空格
sss缩进的空格数不重要,只要相同层级的元素左对齐即可
sss’ # ‘表示注释
sss字符串无需加引号,如果要加,’ ’ 表示字符串内容会被转义," "表示字符串内容不会转义
数据类型
sss①、字面量:单个的、不可再分的值。date、boolean、string、number、null
k: v
sss②、对象:键值对的集合。map、hash、set、object
行内写法: k: {k1:v1,k2:v2,k3:v3}
#或
k:
k1: v1
k2: v2
k3: v3
sss③、数组:一组按次序排列的值。array、list、queue
行内写法: k: [v1,v2,v3]
#或者
k:
- v1
- v2
- v3
示例
sss配置类:
@ConfigurationProperties(prefix = "person")
@Component
@Data
@ToString
public class Person {
private String userName;
private Boolean boss;
private Date birth;
private Integer age;
private Pet pet;
private String[] interests;
private List<String> animal;
private Map<String, Object> score;
private Set<Double> salarys;
private Map<String, List<Pet>> allPets;
public Person() {
}
}
@Data
@ToString
public class Pet {
private String name;
private Double weight;
}
dsadasdas]ddasd
person:
# 单引号会将 \n作为字符串输出 双引号会将\n 作为换行输出
# 双引号不会转义,单引号会转义
boss: true
birth: 2019/12/9
age: 18
# interests: [篮球,足球]
interests:
- 篮球
- 足球
- 18
animal: [阿猫,阿狗]
# score:
# english: 80
# math: 90
score: {english:80,math:90}
salarys:
- 9999.98
- 9999.99
pet:
name: 阿狗
weight: 99.99
allPets:
sick:
- {name: 阿狗,weight: 99.99}
- name: 阿猫
weight: 88.88
- name: 阿虫
weight: 77.77
health:
- {name: 阿花,weight: 199.99}
- {name: 阿明,weight: 199.99}
user-name: zhangsan
sss测试:
@SpringBootApplication public class Boot02HelloworldApplication {
public static void main(String[] args) {
ConfigurableApplicationContext run = SpringApplication.run(Boot02HelloworldApplication.class, args);
Person person = run.getBean(Person.class);
System.out.println(person);
}
}
sss配置Springboot设置
spring:
banner:
image:
bitdepth: 4
cache:
type: redis
redis:
time-to-live: 11000
sss【注】:优先原则 application.properties 优先于 application.yaml
配置Annotation Processor 绑定 JavaBean 和配置文件
sss作用:在配置文件中配置JavaBean会有提示,也就是开启配置提示功能。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
sssAnnotation Processor只是为了方便我们开发,打包的时候应该排除掉
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.5.6</version>
<configuration>
<excludes>
<exclude>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>