JavaSpringBoot⾼级⽤法详解⽬录
1,IDEA中Lombok作⽤
创建项⽬
l说明
2.l标签说明
2.2 依赖的相关说明
2.3 SHA1介绍
SpringBoot⾼级⽤法
maven打包本地jar包YML⽂件说明
3.需求说明
3.2利⽤properties⽂件为属性赋值
总结
1,IDEA中Lombok作⽤
数据库: 库表字段对应的值 user表(id,name,age)
实体对象pojo: ⽤来封装数据库中的数据 User类(id,name,age)
实体对象⽅法: Get/Set/toString/⽆参构造/有参构造/equals/hashcode
lombok作⽤: ⾃动⽣成上述的⽅法.
创建项⽬
依赖的版本 2.4.1、
l说明
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="/POM/4.0.0" xmlns:xsi="/2001/XMLSchema-instance" xsi:schemaLocation="/POM/4.0.0 /xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion>
<!-- 该配置表⽰Maven坐标 -->
<!-- 项⽬的组id -->
<groupId>com.jt</groupId>
<!-- 项⽬名称 -->
<artifactId>springboot_demo1</artifactId>
<!-- 项⽬版本号 -->
<version>0.0.1-SNAPSHOT</version>
<name>springboot_demo1</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
&porting.outputEncoding>UTF-8</porting.outputEncoding>
<spring-boot.version>2.4.1</spring-boot.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<!-- SpringBoot的启动项 wep 相当于引⼊MVC框架
思想:"开箱即⽤"
说明: 只需要引⼊jar包,简单的配置即可以使⽤该功能
-->
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<!--相当于继承了⼀个⽗级-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring-boot.version}</version>
<!--通过pom标识是⼀个⽗级 -->
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.4.1</version>
<configuration>
<mainClass>com.jt.SpringbootDemo1Application</mainClass>
</configuration>
<executions>
<execution>
<id>repackage</id>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
2.l标签说明
说明: 该坐标在本地仓库中是唯⼀标识符.是当前项⽬打包/被依赖的唯⼀路径.
根据坐标查jar包
扩展: 如果项⽬中依赖第三⽅jar包⽂件报错! 如何处理?
问题说明: 有时根据坐标下载jar包⽂件时,可能由于⽹络问题,导致jar包下载不完整.
解决⽅案: 根据第三⽅的坐标,查到本地仓库的位置,之后删除重新下载.
默认条件下 jar包
web项⽬可以打成 war包
如果该项⽬是⽗级项⽬则写 pom
通过dependencyManagement标签统⼀定义⽗级⼯程,在其中定义了 springBoot项⽬所有兼容的版本信息.
所以依赖项中不需要添加版本号,也可以正常依赖jar包⽂件
2.2 依赖的相关说明
思想: “开箱即⽤” 是springBoot设计的核⼼越来越简单
什么是启动项: SpringBoot为整合第三⽅框架,写了启动项的jar包⽂件, 其中官⽅已经将所有的配置信息/需要依赖的jar包⽂件提前测试并且定义.
说明: maven中的jar包是有依赖的传递性
例如: A项⽬依赖B.jar包, B.jar依赖C.jar. 在项⽬中,只需要添加B.jar. 则B/C.jar都会⾃动添加.
实际应⽤: 如图web.jar包中依赖了很多其它的第三⽅jar包⽂件.
本地仓库⽂件说明:
1. 当maven开始解析项⽬的l⽂件时,根据依赖的坐标,到指定的 jar包⽂件.之后添加该依赖.
2. 之后扫描当前⽂件中的 xxx.pom⽂件.
3. 扫描l⽂件中的依赖信息dependency
4. 根据dependency的坐标重复执⾏上述的操作.直到所有的依赖都添加完成.
需求: ⽹络数据传输,⼀般都需要进⾏加密处理.maven中采⽤SHA1数字签名的加密算法,保证数据传递的有效性
说明: maven数据传递有效性原理图.
2.3 SHA1介绍
SHA-1(英语:Secure Hash Algorithm 1,中⽂名:安全散列算法1)是⼀种密码散列函数,美国国家安全局设计,并由美国国家标准技术研究所(NIST)发布为联邦数据处理标准(FIPS)。SHA-1可以⽣成⼀个被称为消息摘要的160位(20字节)散列值,散列值通常的呈现形式为**40个⼗六进制数**。
关键字: 数字证书.
问题1: 常见hashcode值有多少位16进制数组成 8位
问题2: 8位16进制数,有多少种排列组合? 2^32种
00000000-FFFFFFFF
问题3: 相同数据进⾏hash(算法相同),问题: 值是否相同? 必定相同
问题4: 不同数据进⾏hash(算法相同),问题: 值是否相同? 可能相同 hash碰撞
问题5: ⼀个数据1kb, ⼀个数据ITB 问: hash计算的速度谁快? “⼀样快” hash本质
SpringBoot⾼级⽤法
Pro⽂件说明
pro⽂件语法
数据结构类型: key=value 特别注意不要有空格.
字符集编码: 程序读取⽂件时,默认采⽤ISO-8859-1编码
弊端: 所有的key都必须写完整,不能缩进
YML⽂件说明
YML⽂件的语法
数据结构 key-value结构
写法: key:(空格)value
层级代码结构,注意缩进
字符集⽂件读取时,默认采⽤UTF-8编码可以写中⽂
server:
port: 8080
3.需求说明
说明: 有时将数据写死,不⽅便后续扩展,需要为属性动态赋值.
解决⽅案: 有些数据是后台特有的.⼀般可以将数据写到配置⽂件中,之后为属性动态赋值
编辑YML
#YML⽂件的语法
#1,数据结构 key-value结构
#2,写法: key:(空格)value
#3,层及代码结构,注意缩进
#4,字符集⽂件读取时,默认采取UTF-8编码可以写中⽂
# 规则:命名时最好指定前缀.
server:
port: 8080
# 指定业务的key
mysql:
Username: root|
Password: root||
启动类
package com.jt;
//import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
//import org.springframework.web.bind.annotation.RequestMapping;
@SpringBootApplication
public class SpringbootDemo1Application {
public static void main(String[] args) {
SpringApplication.run(SpringbootDemo1Application.class, args);
}
}
动态为属性赋值
package aller;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* 说明:
* 1.将该类交给Spring容器管理
* 2.SpringMVC负责调⽤该对象接收⽤户的请求.
* 3.将业务处理之后的结果,为页⾯返回JSON数据.
* @ResponseBody作⽤: 将数据转化为JSON串
*/
@RestController
public class JDBCController {
//${key} Spring提供的springel表达式简称为:spel表达式
//语法: 从spring容器内部获取key,动态为属性赋值.
@Value("${mysql.username}")
String username; // = "root|";
@Value("${mysql.password}")
String password; // = "root";
@RequestMapping("/getMsg")
public String getMsg() {
return "你好数据库:" + username + password;
}
}
3.2利⽤properties⽂件为属性赋值
YML⽂件是SpringBoot的核⼼配置⽂件,⼀般主要⽤来整合其它第三⽅框架.属于系统配置⽂件.如果将⼤量的业务数据写到系统配置⽂件中. 耦合性⾼. 所以将业务数据最好放到pro⽂件中.
配置 pro ⽂件
#默认ISO-8859-1 中⽂必定乱码
mysql.username2=mysql数据库
mysql.password2=你猜猜
为属性赋值
package aller;
import org.springframework.beans.factory.annotation.Value;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论