springBoot入门(快速搭建一个springBoot项目)

2023-10-27

目录

一、SpringBoot介绍

       1、定义

       2、springBoot简化的配置

       3、应用打包

二、springBoot项目搭建

1.新建一个spring initializr项目

2、点击下一步

3、之后一个springBoot项目就构建完成了。

三、自动配置原理与yml注入

        1、自动配置原理讲解

                   1.1 自动配置源码中关键代码

                   1.2新建一个实体类

                   1.3在yml文件中,为每个属性名赋值,

        2、yml注入

四、多环境配置

1、配置文件讲解:

2、配置文件加载位置


一、SpringBoot介绍

       1、定义

Spring Boot是一个广泛用来构建Java微服务的框架,它基于Spring依赖注入框架来进行工作.Spring Boot允许开发人员使用更少的配置来构建微服务,同时框架本身能够尽可能的减少开发人员的冲突.自动化配置,一般情况下都有默认配置提供一组流行的starter依赖,方便开发人员使用简化应用打包自动化配置,一般情况下都有默认配置

       2、springBoot简化的配置

在Spring应用中,用户将会使用到不同的技术组件,包括:JDBC数据源(DBCP,Druid)、消息队列(RabbitMQ)、文件系统以及应用缓存(Redis)等.开发人员需要在需要这些功能时,停下来,仔细分析一下自己究竟需要什么?需要的内容属于哪个依赖(“哦,我需要MyBatis依赖”),然后花费大量的时间在依赖组织和排除上.SpringBoot提供了功能(一批jar包依赖)的依赖(starter),它让开发人员声明需要的功能,而不用去关系究竟如何处理依赖关系.

       3、应用打包

SpringBoot是一组jar包和符合其约定的配置的构建块,因此它不会运行在现有的应用服务器中,而使用SpringBoot的大多数开发人员更喜欢的是直接运行的这种自包含的jar包。

二、springBoot项目搭建

使用的IDEA版本是2021.3月份的版本,其他版本也是一样的新建项目

1.新建一个spring initializr项目

将服务器url改成start.aliyun.com

2、点击下一步

3、之后一个springBoot项目就构建完成了。

以下是运行项目入口

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>
    <groupId>com.ZJ</groupId>
    <artifactId>springBoot</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>springBoot_01</name>
    <description>springBoot_01</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>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
        <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>
    </dependencies>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring-boot.version}</version>
                <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.zj.springboot.SpringBoot01Application</mainClass>
                </configuration>
                <executions>
                    <execution>
                        <id>repackage</id>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

</project>

三、自动配置原理与yml注入

        1、自动配置原理讲解

                   1.1 自动配置源码中关键代码

自动配置是根据前缀名来的

@ConfigurationProperties(
    prefix = "server",
    ignoreUnknownFields = true
)

                   1.2新建一个实体类

student,加上@Component
@Data 实现get和set方法
@NoArgsConstructor  无参构造
@AllArgsConstructor   有参构造
@ConfigurationProperties(prefix = "student") 将配置前缀设置为自己的前缀

以上五个注解

package com.zj.springboot.pojo;


import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

import java.util.*;

@Component
@Data
@NoArgsConstructor
@AllArgsConstructor
@ConfigurationProperties(prefix = "student")
public class Student {


    private String name;
    private String password;
    private String sex;
    private int age;
    private boolean speech;
        List<String> hobby=new ArrayList<>();
        Map<String,String> tedian=new HashMap<>();
        Set<String> statue=new HashSet<>();

}

                   1.3在yml文件中,为每个属性名赋值,

#server.port=8081


student :
  name : 小明
  password : 123
  sex : 男
  age : 12
  speech : true
  hobby :
    - 喝茶
    - 饮酒
  tedian :
    { k1 : 跑步 }
  statue :
    - 183


spring :
  profiles:
    active: dev
server:
  port: 8080

运行结果:

      Student(name=小明, password=123, sex=男, age=12, speech=true, hobby=[喝茶, 饮酒], tedian={k1=跑步}, statue=[183])
          

        2、yml注入

1、支持松散绑定,复杂数据类型

     2、yml注入形式:分层次进行

#server.port=8081


student :
  name : 小明
  password : 123
  sex : 男
  age : 12
  speech : true
  hobby :
    - 喝茶
    - 饮酒
  tedian :
    { k1 : 跑步 }
  statue :
    - 183


spring :
  profiles:
    active: dev
server:
  port: 8080

3、和传统.properties相对比

1、yml(支持松散绑定,复杂数据类型) properties(不支持松散绑定)

2、yml取值形式灵活,.properties,需要配合@Value("${xx}")使用

四、多环境配置

1、配置文件讲解:

     除了有application.yml还有其他两种文件

      运行文件

      application-test.yaml  测试文件      

例如: 在application.yml文件的端口号可以在 application-dev.yaml打上,在application.yml只要配置好application-dev.yaml就行

application.yml:

#server.port=8081


student :
  name : 小明
  password : 123
  sex : 男
  age : 12
  speech : true
  hobby :
    - 喝茶
    - 饮酒
  tedian :
    { k1 : 跑步 }
  statue :
    - 183


spring :
  profiles:
    active: dev
#server:
#  port: 8080

  application-dev.yaml:

server:
  port: 8081

2、配置文件加载位置

先加载properties在加载yml

加载位置优先级:

1. config/application.properties(项目根目录中config目录下)

2. config/application.yml

3. application.properties(项目根目录下)

4. application.yml

5. resources/config/application.properties(项目resources目录中config目录下)

6. resources/config/application.yml

7. resources/application.properties(项目的resources目录下)

8. resources/application.yml

通过server.port了解其自动装配 

今天知识就分享到这了,希望能够帮助到你!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

springBoot入门(快速搭建一个springBoot项目) 的相关文章

随机推荐

  • 实例解析C++/CLI之接口与泛型

    实例解析C CLI 之接口与泛型 接口 某些时候 让不相关的类分享一组公有成员 以便产生相同的行为 是非常有用的 一个最基本的方法可能是通过一个公共的基类来定义它们 但这种方法太受局限 因为它要求这些类通过继承而互相关联 另外 它们也许还有
  • 又一个大雷引发市场巨震?Silvergate或将跌落:成也加密败也加密?

    这是白话区块链的第1874期原创 作者 Terry出品 白话区块链 ID hellobtc 3月1日 加密友好银行集团 Silvergate Capital布将推迟提交其年度 10 K 报告 10 K 报告是美国证券交易委员会要求的一份文件
  • PPPoE工作流程

    PPPoE 英语 Point to Point Protocol Over Ethernet 以太网上的点对点协议 是将点对点协议 PPP 封装在以太网 Ethernet 框架中的一种网络隧道协议 PPPoE协议及其工作过程 PPPoE的工
  • 【游戏杂记】Rgss3a文件的解包

    Rgss3a文件的解包 在RPG游戏中 如果想提取图片音乐等资源 需要对文件进行解包 这里是解包工具的链接 链接 https pan baidu com s 1 UKyetIHGsw1ibOHFLHUMQ pwd 5422 提取码 5422
  • 转载:Run-Time Check Failure #2分析

    文章出处 http hi baidu com D6 BB D3 B0 C1 F7 C0 CB blog item 0d72bcb477b2bbc236d3cad4 html Run Time Check Failure 2 一般是栈被破坏
  • 34 个 常用 Linux Shell 脚本,运维必备!

    作为一名 Linux 工程师 会写好的脚本不仅能提高工作效率 还能有更多的时间做自己的事 最近在网上冲浪的时候 也注意收集一些大佬写过的脚本 汇总整理一下 欢迎收藏 与君共勉 1 用户猜数字 bin bash 脚本生成一个 100 以内的随
  • 【力扣】两数之和-java

    思路是 两个循环套用 刚刚开始的时候想判断里面数小于目标值 这样遍历的次数会少 后面发现当数组中为负数的时候 if方法失效 判断了负数 后面发现数据中有两个0失效 判断了0 后面发现如果数据中有正有负 方法失效 public int two
  • 2021-08-30爬取网页信息并转成DataFrame

    导入包 from urllib request import urlopen Request from chardet import detect from bs4 import BeautifulSoup import re import
  • Spring多线程事务解决方案

    Spring多线程事务解决方案 多线程事务场景以及解决思路 代码实现 工具类使用演示 效果展示 多线程事务场景以及解决思路 多线程事务场景举例 对批量操作进行性能优化时会用到多线程来并行处理 从而提高运行效率 而时有业务要求保证批量操作事务
  • 如何在SOLIDWORKS中实现装配体缩放

    缩放比例功能 通过选择 插入 gt 功能 gt 缩放比例 可以找到 可用于更改单个零件中所有功能的比例 使用时 此工具在功能树中显示为附加功能 但是 此功能仅限于零件 sldprt 文件使用 您如何缩放SOLIDWORKS装配体 标SOLI
  • 解决运行flutter doctor --android-licenses时报错

    问题描述 配置flutter环境时 会使用flutter doctor命令来检查运行flutter的相关依赖是否配好 能看到还差 Android license status unknown 未解决 C Users ipkiss wu gt
  • 5 个最令人兴奋的 ES13 功能

    ES13 ECMAScript 2022 已经发布很久了 并且更新了许多有用的功能 在这篇文章中 我想与大家分享 5 种我最喜欢的技术 这些技术是我已经开始在工作中实施的 1 顶级await await 是我最喜欢的功能 因为它使我的代码显
  • python调用m文件

    系统环境 windows 64bit matlab 2018b 64bit python3 6 前提 windows下需要有matlab软件和python python调用m文件需要安装matlab engine 注意matlab版本与py
  • 类模板下运算符重载的两种用法

    1 template
  • java编写定时器,定时执行某个方法

    第一步 编写测试类 该类extends TimerTask 重新run 方法 run方法里面就是你要执行的逻辑代码 示例如下 import java text SimpleDateFormat import java util Date i
  • Python如何调用js函数?

    Python如何调用SDK的js函数 一 概述 二 环境准备 三 调用方法 步骤 四 Demo演示基础版 五 常见问题 六 深入了解 待更新 七 参考资料 一 概述 测试web前端 前端SDK web渗透流程等时 难免会需要调用前端js里面
  • 【Linux】浏览器写代码!部署code-server远程vscode网页

    部署code server远程vscode网页 在浏览器上写代码 参考文档 https developer aliyun com article 876967 slide 7 本文首发于 慕雪的寒舍 1 什么是code server 注意
  • 奔跑吧恐龙----基于JavaSwing的一个跑酷游戏

    1 游戏功能 随机出现障碍物 人物可以通过向上跳进行避免 游戏结束后出现分数 对难度进行一定的控制 当分数 gt 1000时难度升级 当分数 gt 4000时 难度再进行升级 并存在音乐播放功能 2 具体实现 2 1 model 1 Din
  • C++基于TCP/IP简单的客户端、服务器通信程序实例

    本篇文章实现了一个基于TCP 的一个非常简单的客户 服务器通信程序实例 该程序中通讯协议使用的是面向连接的TCP协议SOCK STREAM 服务器的ip地址为本地地址即 127 0 0 1 端口号为自定义的5099 大于1024即可 服务端
  • springBoot入门(快速搭建一个springBoot项目)

    目录 一 SpringBoot介绍 1 定义 2 springBoot简化的配置 3 应用打包 二 springBoot项目搭建 1 新建一个spring initializr项目 2 点击下一步 3 之后一个springBoot项目就构建