SpringBoot入门
文章目录
前言
SpringBoot并不是一门新的技术栈,它的主要目的是为了去配置化开发,将之前常用的Spring,SpringMVC,data-jpa等常用的框架封装到了一起,帮助你隐藏这些框架的整合细节,实现敏捷开发。
一、约定大于配置
SpringBoot的核心思想就是约定大于配置,什么是约定大于配置?
- 开发人员仅需规定应用中不符合约定的部分
- 在没有规定配置的地方,采用默认配置,以力求最简配置为核心思想
总的来说,上面两条都遵循了推荐默认配置的思想。当存在特殊需求的时候,自定义配置即可。这样可以大大的减少配置工作,这就是所谓的“约定”。
二、使用步骤
1.使用IDEA创建SpringBoot项目
最后点击finish结束
2.引入依赖
<!--web启动器--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--热部署--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope><optional>true</optional></dependency><!--配置元数据--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId><optional>true</optional></dependency><!--lombok注解--><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><!--测试--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency>
3.测试
编写一个Controller来模拟访问
package com.lzl.controller;import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;/* --效率,是成功的核心关键-- @Author lzl* @Date 2023/3/3 09:54*/
@RestController
@RequestMapping("/login")
public class LoginController {@RequestMapping("/loginVerify")public String getLogin(){return "Hello world!!!";}
}
测试结果如下:
三、application.properties和application.yml配置文件
通常情况下,需要我们在配置文件中配置的,都是没有约定好的,在springboot项目中有两种配置文件的格式:
application.properties和application.yml都是SpringBoot的配置文件格式,不过二者还是有区别的
- .properties书写格式要求不严格,通常采用一行式配置,而yml文件则有严格的书写格式,层级分明,如果不符合格式,编译就会报错。
- 通常来说yml文件使用的人数更多,虽然它严格按照层级排列,但可读性较好
- 当同时存在两者时,yml的优先级要大于properties文件。
yml支持的配置
#普通数据的配置
name: jack#对象的配置
user:username: rosepassword: 123#配置数组
array:beijing,tianjin,shanghai#配置集合
zhen:test:name: tomarr: 1,jack,2,tom list1: #这种对象形式的,只能单独写一个对象去接收,所以无法使用@value注解获取- zhangsan- lisilist2:- driver: mysqlport: 3306- driver: oracleport: 1521map:key1: value1key2: value2
取数据
package com.lzl.controller
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import java.util.Arrays;@RestController
@RequestMapping("user")
public class UserController {@Value("${name}")private String name;@Value("${user.username}")private String username;@Value("${user.password}")private String password;@Value("${array}")private String [] array;/* 获取 application.yml 中的数据* @return*/@RequestMapping("getYmlData")public String getYmlData(){System.out.println(name);System.out.println(username);System.out.println(password);System.out.println(Arrays.toString(array));return "success";}
}
四、application.yml配置多环境
在开发中,有的时候开发环境和测试环境的某些配置是不同的,通常我们会去编写不同的yml配置文件来解决这个问题。
- 开发环境 appliaction-dev.yml
server:port: 9991servlet:context-path: "/dev"
- 测试环境application-test.yml
server:port: 9992servlet:context-path: "/test"
除此之外我们还需要配置一个主配置文件application.yml来选择引用哪个环境
spring:profiles:active:- test
五、测试:
可以看到,项目启动就以9992端口,和/test作为项目路径了。
总结
本篇是SpringBoot的入门案例,更多的技术分享看下一篇