Springboot复习1
新建一个空的maven工程
<?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 http://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.3.RELEASE</version>
</parent>
<groupId>com.wsk.springboot</groupId>
<artifactId>springboot_helloworld</artifactId>
<version>1.0-SNAPSHOT</version>
<!--springboot打包方式啥都没写就是jar-->
<!--<packaging>jar</packaging>-->
<!--加入web场景启动器-->
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
</project>
新建一个helloworld
package com.wsk.springboot;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
//springboot程序的入口
//表明次类是入口
@SpringBootApplication
public class HelloWorld {
public static void main(String[] args) {
SpringApplication.run(HelloWorld.class,args);
}
}
这就可以正常运行了,访问8080页面会报404,这时我们新建可以控制层,让他访问hello
package com.wsk.springboot;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloWorldController {
@GetMapping("hello")
public String hello(){
return "ok";
}
}
这里面有两个组合注解RestController,GetMapping
这时访问http://localhost:8080/hello,会给你返回一个ok
注意:控制层要与定义的boot入口是同级或者是入口的子集,不然会报404
简化依赖和配置
不引入依赖的情况加package它只是一个普通的jar包
引入springboot插件
<!-- 引入springboot插件;打包插件 -->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
再package他就多了很多东西
也可以把项目停了,在打包目录shift右击,在此处打开PowerShell窗口
java -jar .\springboot_helloworld-1.0-SNAPSHOT.jar
运行完继续访问http://localhost:8080/hello,还是返回ok(不行的话就clean一下,继续package)
快速创建springboot应用
创建Spring Starter Project; 必须联网创建(记得看一看java11新特性)
这里只需要勾选springWEB,新建项目即可
系统默认的:
@SpringBootApplication
public class SpringbootHello2Application {
public static void main(String[] args) {
SpringApplication.run(SpringbootHello2Application.class, args);
}
}
自己写的
package com.wsk.springboot.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class UserController {
@GetMapping("list")
public String list(){
return "好好找工作,运气加身";
}
}
application.properties可以修改系统默认配置
server.port=8081
server.servlet.context-path=/hi
#spring.mvc.view.prefix=/WEB-INF/jsp/
#spring.mvc.view.suffix=.jsp
运行测试
-
在static文件下下存放java.jpg图片, http://localhost:8080/java.jpg
-
在application.properties设置
-
端口,server.port=8081, http://localhost:8081/hello
-
上下文路径,server.servlet.context-path=/a ,http://localhost:8081/a/hello
-
配置大全下边链接
server.session.timeout=60
server.tomcat.max-threads=800(线程默认500)
server.tomcat.uri-encoding=UTF-8
修改banner
https://www.bootschool.net/ascii-art/search
resources下新建一个banner.txt,里面换成你想要的banner
如:
_________________________________________
.' _____________________________________ '.
"| .' '. |
"| | | |
"| | { | |
"| | cout << "Vopec_" << endl; | |
"| | return 0; | |
"| | } | |
"| | | |
"| '._____________________________________.' |`*.
"'._________________________________________.' `.
""""""""""""""""""|. .|"""""""""""""""""" '
----------------------__| |__------------------------`--------------
/ /_________\.......-----------. `. \
SpringBoot-yml配置文件
-
SpringBoot使用一个全局的配置文件,配置文件名是固定的;
-
application.properties
-
application.yml
-
配置文件的作用:修改SpringBoot自动配置的默认值;SpringBoot在底层都给我们自动配置好;
-
YAML(YAML Ain't Markup Language)
-
YAML A Markup Language:是一个标记语言
-
YAML isn't Markup Language:不是一个标记语言;
-
-
标记语言:
-
以前的配置文件;大多都使用的是 xxxx.xml文件;
-
YAML:以数据为中心,比json、xml等更适合做配置文件;
-
YAML:配置例子
-
resources下新建file,application.yml(在里面写配置清晰,有层级感yml更有优势)
server:
port: 8080
servlet:
context-path: /hi
-
xml的例子
<server>
<port>8081</port>
</server>
1.1yaml语法:
-
使用缩进表示层级关系
-
缩进时不允许使用Tab键,只允许使用空格。
-
缩进的空格数目不重要,只要相同层级的元素左侧对齐即可
-
大小写敏感
1.2yaml支持的三种数据结构
-
对象:键值对的集合
-
数组:一组按次序排列的值
-
字面量:单个的、不可再分的值
值的写法
2.1 字面量:普通的值(数字,字符串,布尔)
-
k: v:字面直接来写;
-
字符串默认不用加上单引号或者双引号;
-
"":双引号;不会转义字符串里面的特殊字符;特殊字符会作为本身想表示的意思
-
name: "zhangsan \n lisi":输出;zhangsan 换行 lisi
-
'':单引号;会转义特殊字符,特殊字符最终只是一个普通的字符串数据
-
name: 'zhangsan \n lisi':输出;zhangsan \n lisi
2.2 对象、Map(属性和值)(键值对):
-
k: v:在下一行来写对象的属性和值的关系;注意缩进
-
对象还是k: v的方式
friends:
lastName: zhangsan
age: 20 -
行内写法:
-
friends: {lastName: zhangsan,age: 18}
2.3 数组(List、Set)
用- 值表示数组中的一个元素
pets:
‐ cat
‐ dog
‐ pig
行内写法
pets: [cat,dog,pig]
练习来了:
新建bean,里面封装两个实体类Person,Dog
Person:注意用到注解
@Component指的是实现bean的注入 @ConfigurationProperties(prefix = "person")
@Value可以取配置文件中配置的值,也可以自定义注入值
(prefix = "person")指的是扫application.yml里的person配置,进行配置绑定
package com.wsk.springboot.bean;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import java.util.Date;
import java.util.List;
import java.util.Map;