SpringBoot: 开发小技巧 ---- 5

lombok - 简化 JavaBean开发&日志开发

sss①、引入依赖:

<dependency> 
	<groupId>org.projectlombok</groupId> 
	<artifactId>lombok</artifactId> 
</dependency>

sss②、安装插件
dasda在这里插入图片描述
sss③、使用方法

/**
 * 只有在容器中的组件,才会拥有SpringBoot提供的强大功能
 */
@NoArgsConstructor 	添加无参构造器 
@AllArgsConstructor  添加全参构造器 
@ToString	重写toString方法
@Data	添加 GetterSetter 方法
@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>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值