SpringBoot入门

x33g5p2x  于2021-09-24 转载在 Spring  
字(2.4k)|赞(0)|评价(0)|浏览(437)

IDEA中Lombok插件的作用

数据库:库  表 字段 值  User表(id,name,age)

实体对象pojo:用来封装数据库中的数据 User类 (id,name,age)

实体对象方法:get/set/toString/构造(无参/有参)/equals/hashcode

Lombok作用:自动生成上述方法

POM.XML文件标签说明

关于坐标的说明

在本地仓库中是唯一的标识符 是当前项目打包/被依赖的唯一路径

如果项目中依赖第三方jar包文件报错,如何处理????

根据坐标下载jar包文件时,可能由于网络问题下载不完整,

解决:根据坐标查找本地仓库位置,删除

maven项目打包方式

1.默认条件下 jar包

2.web项目 可以打成war包

3.如果该项目是父级项目,则写pom  在坐标下添加packaging标签

父级parent标签作用

依赖相关说明

思想:“开箱即用”是SpringBoot设计的核心 越来越简单

启动项:SpringBoot专门为整合第三方框架,写了启动项jar包文件,将所有配置信息/需要依赖的jar包文件提前测试并且定义

Maven依赖的传递性

maven中的jar包是由依赖传递性的 

** maven的依赖传递性实现的原理**

本地仓库文件说明

步骤:

1.maven开始解析pom.xml文件,根据依赖的坐标找到指定jar包 然后添加该依赖

2.扫描当前文件中的xxx.pom文件

3.扫描xxx.pom中的依赖信息

4.重复执行以上操作 直到所有依赖添加完成

实现文件传递有效性

网络数据的传输,一般需要加密处理 maven中采用SHA1数字签名的加密算法,保证数据传递的有效性(hash算法)

散列值形式:40个十六进制数

数字证书?? 判断哈希码值是否相同 不同数据小概率相同

摘要:对数据进行hash计算,生成的哈希码值为摘要(签名)

maven采用对称加密算法  主流为非对称加密
关于Hash说明

1.常见hashcode值有多少16进制数组成  8位

2.8位的16进制数有多少种排列组合  2^32

3.相同的数据进行hash(算法相同),值是否相同?? 必定相同

4.不同数据进行hash(算法相同),值是否相同??可能相同 哈希碰撞

5.一个数据1kb,一个数据1GB ,哈希计算的速度谁快?? 一样快

SpringBoot高级用法

配置文件的说明

1.pro文件语法

数据结构类型:key=value  特别注意:不要有空格

字符集编码:程序读取文件时,默认采用ISO-8859-1编码

弊端:所有的key都要写完整,不能缩进

2.yml文件语法

数据结构: key:(空格)value

层级代码结构,注意缩进

字符集:文件读取器时,默认采用UTF-8编码 

规则:命名时指定前缀

@RestController 作用

1.将该类交给Spring容器管理

2.SpringMVC负责调用该对象接收用户的请求

3.将业务处理之后,为页面返回JSON数据

@ResponseBody将数据转化为JSON串

动态为属性赋值

说明:数据写死不方便

方案:有些数据是后台特有的,一般将数据写到配置文件里

** 利用yml文件为属性赋值**

步骤: 

1.指定业务的Key

2.@Value("${Key}")
spel表达式${Key}
语法:从spring容器内取出key,动态为属性赋值

项目结构

@RestController
public class JDBCController {
    @Value("${mysql.name}")
    String name;
    @Value("${mysql.password}")
    String password;

    @RequestMapping("get")
    public String get(){

        return "你好"+name+password;
    }
}

问题

** 原因**

** 配置文件的名字必须为application!!!**

** 利用properties文件为属性赋值**
yml与pro

yml:系统配置文件,springboot的核心配置文件,用来整合第三方框架,耦合性高,所以写在pro文件中

如何将pro文件交给Spring容器管理

@PropertySource(“calsspath:/mysql.properties”)

@RestController
@PropertySource(value="classpath:/mysql.properties",encoding = "UTF-8")
public class JDBCController {
    @Value("${mysql.name}")
    String name;
    @Value("${mysql.password}")
    String password;
    @RequestMapping("/get")
    public String get(){
        return "你好"+name+password;
    }

    @Value("${mysql.name2}")
    String name2;
    @Value("${mysql.password2}")
    String password2;

    @RequestMapping("/get2")
    public String get2(){
        return "你好"+name2+password2;
    }
}
# 应用名称
spring.application.name=springboot_demo1
# 应用服务 WEB 访问端口
server.port=8080

mysql.name2=数据库
mysql.password2=你猜猜

相关文章