我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Java SpringBoot高级用法详解

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Java SpringBoot高级用法详解

1,IDEA中Lombok作用

数据库: 库 表 字段 对应的值 user表(id,name,age)

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

实体对象方法: Get/Set/toString/无参构造/有参构造/equals/hashcode

lombok作用: 自动生成上述的方法.

创建项目

依赖的版本 2.4.1、

2.pom.xml说明


<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/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>
        <project.reporting.outputEncoding>UTF-8</project.reporting.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.1 pom.xml标签说明

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

根据坐标查找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包文件.

mavenjar包查询网址: https://mvnrepository.com/

本地仓库文件说明:

1. 当maven开始解析项目的POM.xml文件时,根据依赖的坐标,找到指定的 jar包文件.之后添加该依赖.

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

3. 扫描pom.xml文件中的依赖信息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 com.jt.contraller;
 
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
 

@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 com.jt.contraller;
 
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.PropertySource;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@PropertySource(value="classpath:/mysql.properties",encoding = "UTF-8")
public class JDBCContraller {
    
    @Value("${mysql.username2}")
    private String username2;
    @Value("${mysql.password2")
    private String password2;
 
    @RequestMapping("/getMsg2")
    public String getMsg2(){
 
        return "你好数据库:"+ username2 +password2;
    }
}

结构

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注编程网的更多内容!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Java SpringBoot高级用法详解

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

万字详解 TypeScript 高级用法

TypeScript 是一种类型安全的 JavaScript 超集,除了基本类型和对象类型之外,TypeScript 还提供了一些高级类型系统,使得我们可以更好地处理复杂的数据结构和业务逻辑。本文将深入探讨 TypeScript 的高级类型

OpenTelemetry Java SDK 高级用法解析

这篇文章主要介绍了OpenTelemetry Java SDK 的高级用法示例解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2023-02-15

Java中注解的高级用法

注解本身没有含义,主要作用是标记目标元素,后续拿到改标识的元数据,进行一系列的处理。注解的使用是非常广泛的,各种框架中都使用频繁,基于注解可以将很多抽象功能提取出来,通过简单 的标识来实现各种复杂的功能。

详解Flutter中listview的高级用法

一般我们使用Listview的方式是构建要展示的item,然后将这些item传入ListView的构造函数即可,通常情况下这样做是够用了,但是不排除我们会有一些其他的特殊需求。今天我们会来讲解一下ListView的一些高级用法,希望对大家有所帮助
2023-01-04

详解shell 变量的高级用法示例

变量删除和替换案例:从头开始匹配,将符合最短的数据删除 (#)variable_1="I love you, Do you love me" echo $variable_1 variable_2=${variable_1#*ov} ech
2022-06-04

Java高并发之CyclicBarrier的用法详解

CyclicBarrier是Java中的一种同步工具,它可以让多个线程在一个屏障点处等待,直到所有线程都到达该点后,才能继续执行。本文就来和大家聊聊它的用法,需要的可以参考一下
2023-03-13

Shell编程之变量的高级用法详解

变量替换语法说明${变量名#匹配规则}从变量开头进行规则匹配,将符合最短的数据删除${变量名##匹配规则}从变量开头进行规则匹配,将符合最长的数据删除${变量名%匹配规则}从变量尾部进行规则匹配,将符合最短的数据删除${变量名%%匹配规则}
2022-06-04

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录