【Java】SpringBoot

idea小技巧

隐藏文件

  • 工程中隐藏没有必要显示的文件

image

比较文件

image

跳转

  • 如果点击pom文件无法进行跳转,Download Sources 并重启 idea

image

文档

image

初始化一个web项目

idea创建

image

image

  • Name保持空即可,他是显示在idea右侧maven中的名称

image

image

image

image

官网创建

image

image

image

image

阿里云创建

image

依赖及启动

parent

  • SpringBoot中常见项目名称,定义了当前项目使用的所有依赖坐标,以达到减少依赖配置的目的

image

image

starter

  • 所有SpringBoot项目要继承的项目,定义了若干个坐标版本号(依赖管理,而非依赖),以达到减少依赖冲突的目的

image

image

替换依赖

  • 当我们不想使用某个功能内嵌依赖,替换即可

image

引导类

  • Springboot0101QuickstartApplication为工程入口,初始化spring容器,扫描引导类所在包加载Bean

image

  • @SpringBootApplication注解就是一个配置类,启动时扫描并加载当前package下的所有Bean(如@RestController、@Component等)

image

基础配置

配置项速查

  • 文档

image

image

image

  • 基本使用

image

配置项使用

yanl

# 关闭启动banner
spring:
  main:
    banner-mode: off

# 启动服务端口
server:
  port: 80

# 常规自定义属性
country: china

# 多级自定义属性
user:
  username: jking
  age: 18

# 数组自定义属性
likes:
  - game
  - music
  - sleep

# 数组自定义属性
users:
  - name: jking1
    age: 18
  - name: jking2
    age: 28

# 引用变量
baseDir: c:\windows
tempDir: ${baseDir}\temp

# 识别转义属性 \t 会被识别为转义字符
tempDir1: "${baseDir}\temp"

springboot

  • 单一读取
package com.runsky.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/books")
public class BookController {

    @Value("${server.port}")
    private String port;

    @Value("${country}")
    private String country;

    @Value("${user.age}")
    private Integer age;

    @Value("${likes[1]}")
    private String likes1;

    @Value("${users[1].age}")
    private String age1;

    @Value("${tempDir}")
    private String tempDir;

    @Value("${tempDir1}")
    private String tempDir1;

    @GetMapping
    public String getById() {
        System.out.println("runinng...");
        System.out.println(port);  // 80
        System.out.println(country);  // china
        System.out.println(age);  // 18
        System.out.println(likes1);  // music
        System.out.println(age1);  // 28
        System.out.println(tempDir);  // c:\windows\temp
        System.out.println(tempDir1);  // c:\windows	emp
        return "running...";
    }
}
  • 使用soringboot封装对象读取
package com.runsky.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/books")
public class BookController {

    // 使用自动装配将所有的数据封装到一个对象中
    @Autowired
    private Environment env;

    @GetMapping
    public String getById() {
        System.out.println(env.getProperty("users[1].age"));  // 28
        return "running...";
    }
}
  • 自定义封装读取
package com.runsky.mycustom;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

/**
 * user:
 *   username: jking
 *   age: 18
 */
// 1.定义数据模型封装yml文件中的对应数据(属性名要和yml中对应)
// 2.定义为spring管控的Bean @Component
// 3.指定加载的数据  @ConfigurationProperties("user")
@Component
@ConfigurationProperties(prefix = "user")
public class UserSource {
    private String username;
    private Integer age;

    @Override
    public String toString() {
        return "UserSource{" +
                "username='" + username + '\'' +
                ", age=" + age +
                '}';
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }
}
package com.runsky.controller;

import com.runsky.mycustom.UserSource;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.env.Environment;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/books")
public class BookController {

    @Autowired
    private UserSource userSource;

    @GetMapping
    public String getById() {
        System.out.println(userSource);
        System.out.println(userSource.getUsername());
        System.out.println(userSource.getAge());
        return "running...";
    }
}
posted @ 2022-11-03 10:56  小魁jking  阅读(107)  评论(0编辑  收藏  举报