springboot学习1
SpringBoot对Spring的缺点进行的改善和优化,基于约定优于配置的思想,可以让开发人员不必在配置与逻辑 业务之间进行思维的切换,全身心的投入到逻辑业务的代码编写中,从而大大提高了开发的效率。
一、springboot的核心功能
起步依赖:
起步依赖就是将具备某种功能的坐标打包到一起,并提供一些默认的功能。
自动配置:
Spring Boot的自动配置是一个运行时(更准确地说,是应用程序启动时)的过程,考虑了众多因素,才决定 Spring配置应该用哪个,不该用哪个。该过程是Spring自动完成的。
二、快速入门
基于springboot创建一个web工程
2.1 创建java工程,导入起步依赖
<?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.1.11.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.lyy</groupId>
<artifactId>springboot-01</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>springboot-01</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-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!--热部署配置-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
2.2 创建引导类
在工程的根包下创建一个引导类
@SpringBootApplication
public class Springboot01Application {
public static void main(String[] args) {
SpringApplication.run(Springboot01Application.class, args);
}
}
2.3 创建controller
@RestController
@RequestMapping("/hello")
public class HelloController {
@GetMapping("/sayHello")
public String sayHello(){
return "hello springboot";
}
}
运行引导类中的main方法,浏览器访问 http://localhost:8080/hello/sayHello,后台接口给前台返回了一个字符串。
三、SpringBoot工程热部署
在 pom.xml 中添加如下配置
<!--热部署配置-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
并在idea中设置打开自动编译功能
(1)
(2)Shift+Ctrl+Alt+/,选择Registry,再把如下选项选上
四、配置文件相关
SpringBoot是基于约定的,所以很多配置都有默认值,但如果想使用自己的配置替换默认配置的话,就可以使用 application.properties或者application.yml(application.yaml)进行配置。
SpringBoot默认会从Resources目录下加载application.properties或application.yml(application.yaml)文件
4.1 配置文件与配置类的属性映射方式
4.1.1 通过@Value注解将配置文件中的值映射到一个Spring管理的Bean的字段上
server:
port: 80
msg: good
在bean中可以直接使用
@RestController
@RequestMapping("/hello")
public class HelloController {
@Value("${msg}")
private String msg;
@GetMapping("/sayHello")
public String sayHello(){
return msg;
}
}
4.1.2 使用注解@ConfigurationProperties映射
@ConfigurationProperties
注解打在一个类上,把该类放入spring容器后,可以把配置文件中指定的内容和实体类中的属性对应上,应用中就可以直接使用实体类的属性。
注意实体类中一定要有对应的get和set方法
@Component
@ConfigurationProperties(prefix = "user-config")
public class UserConfig {
private String username;
private int age;
//省略get/set方法
}
user-config:
username: tom
age: 18
注意配置文件中的属性如果由多个单词组成时,建议使用横线隔开的这种方式。
4.2 配置的查询
可以在spring的官网上查询更多的配置
示例工程:
快速入门