SpringBoot学习笔记一

parent

1 开发SpringBoot程序要继承pring-boot-starter-parent

2 spring-boot-starter-parent中定义了若干个依赖管理

3 继承parent模块可以避免多个依赖使用相同技术时出现依赖版本冲突

4 继承parent的形式也可以才用引入依赖的形式实现效果

starter

spring-boot-starter-web.pom

SpringBoot中常见项目名称,定义了当前项目使用的所有依赖坐标,目的是减少依赖配置

parent

所有SpringBoot项目要继承的项目,定义了若干个坐标版本号(依赖管理,而非依赖),已达到减少依赖冲突的目的

spring-boot-starter-parent各版本见存在着诸多坐标版本不同

实际开发
使用任意坐标时,仅书写GAV中的G和A ,V由SpringBoot提供,除非SpringBoot未提供对应的版本v

如坐标发生错误,再指定Version(小心发生版本冲突)

开发SpringBoot需要导入坐标,通常导入对应的starter

每个starter根据功能不同,通常包含多个依赖坐标

使用starter可以实现快速配置的效果,达到简化配置的目的

引导类Application

SpringBoot的引导类是Boot工程的执行入口,运行main方法可启动项目

SpringBoot工程运行后初始化Spring容器,扫描引导类所在包加载bean

内嵌服务器

tomcat(默认)apache出品,用户多,应用面广,负载若干较重的组件

jetty 轻量级,负载性能不及tomcat

undertow 负载性能勉强跑赢tomcat

内嵌tomcat服务器时SpringBoot辅助功能之一

内嵌tomcat工作原理是将tomcat服务器作为对象运行,并将该对象交给spring容器管理

变更内嵌服务器是excusion 现有服务器 然后 dependec全新服务器

REST开发

REST(Representational State Transfer) 表现形式转换

传统风格资源描述形式

http://localhost/user/getById?id=1http://localhost/user/saveUser

REST风格描述形式

http://localhost/user/1

优点:1)隐藏资源的访问行为,无法通过地址的值对资源是何种操作 2)书写简化

按照REST风格访问资源师使用行为动作区分地资源进行了何种操作:

http://localhost/users 查询用户信息 GET(查询)

http://localhost/users/1 查询指定用户信息 GET(查询) 删除用户信息DELETE(删除)

http://localhost/users 添加用户信息 POST(新增/保存) 修改用户信息PUT(修改/更新)

根据REST风格对资源进行访问称为RESTful

TIPS:
上述行为是约定行为,约定不是规范,可以打破,所以称REST风格,而不是REST规范

描述模块的名称使用复数,就是加S的格式描述,表示此类资源,而非单个资源如:users,books,accounts…

1 设定http请求动作(GET / PUT/POST…)

@RequesMapping(value=“地址”,method = RequestMethod.XX

2 设定请求参数(路径变量)

@RequesMapping(value=“地址/{id}”,method = RequestMethod.XX

Function(**@pathVariable **Integer id)

@RequestBody @RuquestParam @PathVariable

区别:

@RequestBody 用于接收json数据

@RuquestParam 用于接收url地址传参或表单传参

@@PathVariable 用于接收路径参数 使用{参数ID}描述路径参数

应用

在后期开发中,发送请求参数超过一个时,以json格式为主 ,@RequestBody应用较广

如果发送非json格式数据,选用@RequestParam接收请求参数

采用RESTful进行开发,当参数数量较少时,例如一个,可以用@PathVariable接收请求路径变量,通常用于传递ID值

@RestController = @Controller + @ResposeBody 基于Spring MVC的RESTful开发控制器类定义上方

@GetMapping @PostMapping @PutMapping @DeleteMapping 设置当前控制器方法请求访问路径与请求动作,每种对应一个请求动作

例如

@RequesMapping(value=“地址/{id}”,method = RequestMethod.XX)——》 @XXMaping({id})

Function(**@pathVariable **Integer id)

属性配置

修改服务器端口 GET http://localhost:8080/books → http://localhost/books server.port=80

SpringBoot默认配置文件application.properties 通过key-value配置对应属性

修改banner SpringBoot工程日志启动时候的图标

修改日志loging

可在SpringBoot官方文档Application Properties查看内置属性配置

SpringBoot中导入对应starter后,提供对应配置属性

书写SpringBoot配置才用关键字+提示形式书写

SpringBoot提供了三种配置文件的格式 1)properties(传统/默认)2)yml(主流)3)yaml

三个配置文件的加载顺序 properties>yma>yaml

指定SpringBoot配置文件 1)Setting→Project Stricture → Facets 2)选中对应项目/工程 3)Customize Spring Boot 4)选择配置文件

yaml (YAML Ain,t Markup Language)

一种数据序列化格式

优点1)容易阅读 2)容易与脚本语言交互 3)以数据为核心,重数据轻格式

YAML 文件拓展名 .yml(主流) .yaml

yaml语法规则

1)大小敏感

2)属性层级关系使用多行描述,每行结尾使用冒号结束

3)使用缩进表示层级关系,用层级左侧对齐,只允许使用空格(不允许使用Tab键)

4)属性值前面添加空格(属性名与属性值之间使用冒号+空格作为分割)

5)#表示注释

核心规则: 数据前面加空格和冒号隔开

字面值表示方式

boolean: TRUE float: 3.14 int: 123 null: ~ string: HelloWorle string2: “Hello World” date: 2018-02-17 datetime: 2018-02-17T15:02:31+08:00

数组标识方式:在属性名书写位置的下方使用建好作为数据开始符号,每行书写一个数据,建好与数据间空格分隔

subject:   
   - Java
   - 前端
   - 大数据
   
likes:[a,b] # 数组书写                                                                                                     
users:
   -name: Tom
    age: 4
users2: [{name: Tom , age: 4}]#对象数组缩略格式
    
yaml数据读取

使用@Value读取单个数据,属性名引用方式:${一级属性名.二级属性名…} 如 @Value(“${user.name}”)

在配置文件中可以使用属性名引用方式引用属性

baseDir: /user/local/fire

center: 
   dataDir: ${baseDir}/data
   tempDir: ${baseDir}/tmp


属性值中如果出现转移字符,需要使用双引号包裹

lesson: "Spring\tboot\lesson"

封装全部数据到Enviroment对象

@Autowired
private Environment env;
env.getproties("属性名")
//1.定义数据模型封装yaml文件中对应的数据
//2.定义为spring管控的bean
@Component
//3.指定加载的数据
@ConfigurationProperties(prefix="datasource")
public class MyDataSource{
...
}

#创建类,用于封装下面的数据
#由spring帮我们去加载数据到对象中,一定要告诉spring加载这组信息
#使用时从spring中直接获取信息使用
datesource: 
   .....

SpringBoot整合JUnit

name: @SpringBootTest

type: 测试类注解

position: 测试类定义上方

effect: 设置Jnit记载的SpringBoot启动类

@SpringBoot
class SpringbootJUnitApplicationTests{}

@SpringBootTest(classes = SpringBootJunitApplication.class)
class SpringBootNewJUnitApplicationTests{}

步骤:1)导入测试对应的starter 2)测试类使用@SpringBootTest修饰 3)使用自动装配的形式添加被测试对象

如果测试类在SpringBoot启动类的包虎自爆中,可以省略启动类的设置,也就是省略calsses=…的设定

SpringBoot整合MyBatis

1)在新建模块时候勾选MyBatis技术,导入MyBatis对应的starter

2)数据库连接相关信息转换成配置

3)数据库SQL映射需要添加@Mapper被容器识别

MySQL 8.x驱动强制要求设置时区:

修改url,添加serverTimezone设定 or 修改MySQL数据库配置

整合MyBatis-Plus

MyBatos-Plus与MyBatis区别:1)导入坐标不同2)数据层数显简化

步骤:

1)手动添加SpringBoot整合MyBatis-Plus的坐标,可以通过mvnrespository获取

TIPS:由于SpringBoot中未收录MyBatis-Plus的坐标版本,需要指定对应的Version

2)定义数据层接口与映射配置,继承BaseMapper

@Mapper
public interface UserDao extends BaseMapper<User>{
}

3)其他相同

整合第三方技术,导入对应Maven坐标

笔记一
笔记二
笔记三

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值