框架搭建

1.IDE新建项目,选择maven上面的Spring Initializr,点next,java项目选8,discription(描述),可以自己发挥,next,勾选web。

2.将五个文件删掉, ....Application是程序主入口,不能删也不能改。之后,建包都是在与这个主入口同级下建包。

3.建包下面可以写class文件了,先@RestController,在class之前。class之后,@RequestMapping("/hello") //这是接口。

列如:
@RestController
public class HelloController {
    //接口为:http://localhost:8080/hello
    @RequestMapping("/hello")

    public String hello()
    {
        return "hello,world!";
    }
}

修改端口号

到springboot配置文件下(resources---》application.properties)加上:

server.port=7442 //从8080改到7442了。

 

修改log

可以找自己喜欢的图案复制下来,然后在resources下面建一个文件file,命名为banner.txt ,然后将复制的图案粘贴在这里就可以了。重启即可。

 

 

yaml配置文件

xml配置文件不够主流了。

Springboot使用一个全局的配置文件,配置文件名称是固定的

  1. application.properties
    语法结构:key=value
  2. application.yml
    语法结构:key:空格value

配置文件的作用:修改springboot自动配置的默认值,因为springboot在底层都给我们自动配置好了。

 

运用:删掉application.properties文件,在原来的位置新建文件,名字依然是application,后缀是.yml即可。(官方更愿意这种方式)

name: qingjiang     #普通的key=value

# 对象
student:
  name:qingjiang
  age:3
(注意对空格十分严格 ,如果age多空了一个格,就是三个对象了,不是student.name和student.age的写法了)  
 
  
 # 行内写法
 student:{name: qingjiang,age: 3}
 
 #数组
 pets:
   -cat
   -dog
   -pig
   
 pets: [cat,dog,pig]

properties只能保存键值对,做不到上面的。

 

易错点

在同级扫描的那个下面建的包,里面的class,搞好之后,需要先无参构造,在有参,在setget。大兄弟错了两次了,还没有加toString方法,否则输出的将会是路径,而非对象。

 

将yaml文件,和普通需要赋值的文件用他关联。

@ConfigurationProperties(prefix = "person")

放在普通文件当中。双引号当中的对象,必须与yaml文件里面的一致。这里就是绑定的意思。

 

 

如果我们在某个业务中,只需要获取配置文件中的某个值,可以使用一下@Value

如果说,我们需要专门编写了一个javaBean来和配置文件进行映射,就直接使用@configurationProperties不要犹豫。

 

 

使用yaml,可以实现里面多环境转换。

用---分开。列如

server:
  port: 8081
      
---
server:
  port:8082
spring:
  profiles: dev
      
---
server:
  port:8083
spring:
  profiles: test
      
      
默认走8081,如果要走第二个,需要在8081下面加上
Profiles:
  active: dev

 

 

 

1.一系列过程做好了,包括删除文件。

2.先在....application同级建包,然后新建class文件。

3.写上有什么属性,先无参构造,在有参构造,然后在getset方法,最后在tosring方法。

4.删掉resources下面的application.properties核心配置文件,在该位置新建application.yaml文件。写名字(上面创建的class的方法名),要一致。

基础篇里面有,注意分号后面的空格。

5.绑定:@ConfigurationProperties(prefix = "yaml文件里面的名字"),这是写在普通class里面的。还有一个注解@Component

6.在测试类里面进行测试。class之外有@SpringBootTest注解

@SpringBootTest
class Demo6ApplicationTests {
    @Autowired
    private Person person;
    @Test
    void contextLoads() {
        System.out.println(person);
    }
}

 

 

Swagger

现在前后端分离:Vue+Springboot

在项目中使用swagger需要springbox

在pom.xml配置文件里面<dependencies></dependencies>之间添加下面两个。即可

1.swagger2

<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 --><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.9.2</version></dependency>

2.ui

<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui --><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId><version>2.9.2</version></dependency>

 

在能扫描的同级建一个包(config),建一个类(SwaggerConfig)

配置到springboot里面去,需要配置swagger的Docket的bean实例。