【Java】SpringBoot
idea小技巧
隐藏文件
- 工程中隐藏没有必要显示的文件
比较文件
跳转
- 如果点击pom文件无法进行跳转,Download Sources 并重启 idea
文档
初始化一个web项目
idea创建
- Name保持空即可,他是显示在idea右侧maven中的名称
官网创建
阿里云创建
依赖及启动
parent
- SpringBoot中常见项目名称,定义了当前项目使用的所有依赖坐标,以达到减少依赖配置的目的
starter
- 所有SpringBoot项目要继承的项目,定义了若干个坐标版本号(依赖管理,而非依赖),以达到减少依赖冲突的目的
替换依赖
- 当我们不想使用某个功能内嵌依赖,替换即可
引导类
- Springboot0101QuickstartApplication为工程入口,初始化spring容器,扫描引导类所在包加载Bean
- @SpringBootApplication注解就是一个配置类,启动时扫描并加载当前package下的所有Bean(如@RestController、@Component等)
基础配置
配置项速查
- 文档
- 基本使用
配置项使用
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...";
}
}
作者:小魁jking
出处:https://www.cnblogs.com/wangjinkui/
版权:本文版权归作者和博客园共有
转载:欢迎转载,但未经作者同意,必须保留此段声明;必须在文章中给出原文连接;否则必究法律责任
出处:https://www.cnblogs.com/wangjinkui/
版权:本文版权归作者和博客园共有
转载:欢迎转载,但未经作者同意,必须保留此段声明;必须在文章中给出原文连接;否则必究法律责任