springboot学习01(从搭建到熟悉)

使用Eclipse搭建SpringBoot项目 使用Eclipse搭建SpringBoot项目。零基础使用eclipse搭建springboot项目详细教程.springboot,eclipse 阅读详情


springboot的最核心的原理:自动装配
(在创建项目的时候,springboot会自动配置一些项目必要的配置,免去我们的配置步骤。但是有些配置虽然没有生效,但是同样被写在了底层源码中,当我们配置了对应的spring.xx.xxx时,就会被框架检测到,并使其生效。大部分在application.yaml文件中就可以配置了。)

创建一个Springboot项目

  • 可以在官网直接下载,导入idea开发
  • 直接使用idea创建一个springboot项目(开发选择第二种方式)
    在这里插入图片描述
    一般来说的,创建项目的配置
    在这里插入图片描述
    注意:后缀为iml的文件不能删除。否则会影响项目的文件结构

在这里插入图片描述
在这里插入图片描述
内嵌了tomcat,可以直接启动。
在这里插入图片描述
在这里插入图片描述
springboot的项目结构,其实是和MVC结构基本一致的。我们编写一个测试controller,可以看到接收的的字符串。
在这里插入图片描述
在这里插入图片描述
更改项目的端口号
在这里插入图片描述

叫你怎么修改或者生成自己想要的springboot的自定义banner

网站链接: https://www.bootschool.net/ascii-art/animals.在这里插入图片描述
重启即可在这里插入图片描述

springboot的自动装配原理

pom.xml

  • spring-boot-dependencies:核心依赖在父工程!
  • 我们在写或者引入一些springboot依赖的时候,不需要指定版本,就因为有这些版本仓库

启动器

<dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter</artifactId>
</dependency>
  • 启动器:说白了就是springboot的启动场景;
  • 比如spring-boot-starter-web,他就会帮我们自动导入web环境所有的依赖。 spring-boot-starter-test等等,就是一种模块化的管理,需要什么就启动什么。
  • springboot会将所有的功能场景,都变成一个个的启动器
  • 我们需要使用什么功能,就只需要找到对应的启动器就可以了 ‘starter’

主程序

//@SpringBootApplication:标注这个类是一个springboot的应用:启动类下的所有资源被导入
@SpringBootApplication
public class Springboot01HelloworldApplication {

    public static void main(String[] args) {
        //静态方法,通过反射得到这个类
        //将springboot应用启动
        SpringApplication.run(Springboot01HelloworldApplication.class, args);
    }

}

读源码,从@SpringBootApplication注解开始,一步步往下拆解
结论:springboot所有自动装配都是在启动的时候扫描并加载,spring.factories所有的自动装配类都在这里面,但是不一定生效,要判断条件是否成立,只要导入了对应的starter,就有了对应的启动器,有了启动器,我们自动装配才会生效,然后装配成功。

  1. springboot在启动的时候从类路径下的META-INF/spring.factories中获取EnableAutoConfiguration指定的值;
  2. 将这些值作为自动装配类导入容器,自动装配类就生效,帮我们进行自动装配工作;
  3. 以前我们需要配置的东西,自动装配类就帮我们解决了;
  4. 整个javeEE体系的整体解决方案和自动装配都在springboot-autoconfigure的jar包中;
  5. 它将所有需要导入的的组件以全类名的方式返回,这些组件就会被加到容器中;
  6. 它会给容器中导入非常多的自动装配类,XXXAutoConfiguration,就是给容器中导入这个场景需要的所有组件,并配置好这些组件;
  7. 有了自动配置类,免去了我们手动编写配置注入功能组件等的工作。

SpringApplication

这个类主要做了以下四件事情

  1. 推断应用的类型是普通的项目还是web项目;
  2. 查找并加载所有可以初始化器,设置到initializers属性中;
  3. 找出所有的应用程序监听器,设置到listeners属性中;
  4. 推断并设置main方法的定义类,找到运行的主类;

application.yaml的配置

官方使用application.yaml和application.properties进行配置
yaml语法:key: 空格 value (语法对空格的要求很高)
注意,该文件的对象参数配置可以注入到我们的配置类中
在这里插入图片描述
常用的给类赋值方法,可以通过注解
在这里插入图片描述
在这里插入图片描述
通过yaml进行类的属性初始化,注意类要设置注解,与yaml中的名字进行对应
在这里插入图片描述

加载自己的properties的文件,指定赋值。注解,使用@PropertySource()
在这里插入图片描述
yaml中,还可以通过占位符进行赋值,所以可以大幅度减少工作量

person:
  name: ${random.int}
  age: 3
  happy: false
  birth: 2019/11/03
  maps: {k1: v1,k2: v2}
  lists:
    - code
    - music
    - girl
  dog:
    name: ${person.happy:hello}_旺财
    age: 3

JSR-303校验(注解:对类对象的数据进行数据校验,)

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-validation</artifactId>
        </dependency>

但是在springboot2.6.6版本中,引入依赖失败。

@NotNull(message="名字不能为空")
private String userName;
@Max(value=120,message="年龄最大不能查过120")
private int age;
@Email(message="邮箱格式错误")
private String email;
 
 
空检查
@Null       验证对象是否为null
@NotNull    验证对象是否不为null, 无法查检长度为0的字符串
@NotBlank   检查约束字符串是不是Null还有被Trim的长度是否大于0,只对字符串,且会去掉前后空格.
@NotEmpty   检查约束元素是否为NULL或者是EMPTY.
    
Booelan检查
@AssertTrue     验证 Boolean 对象是否为 true  
@AssertFalse    验证 Boolean 对象是否为 false  
    
长度检查
@Size(min=, max=) 验证对象(Array,Collection,Map,String)长度是否在给定的范围之内  
@Length(min=, max=) string is between min and max included.
 
 
日期检查
@Past       验证 Date 和 Calendar 对象是否在当前时间之前  
@Future     验证 Date 和 Calendar 对象是否在当前时间之后  
@Pattern    验证 String 对象是否符合正则表达式的规则
 
 
.......等等
除此以外,我们还可以自定义一些数据校验规则

多环境文件配置

狂神的博客中有详细的介绍

链接: 多环境文件配置.

  • 在springboot中,类似于properties和yaml文件,都可以放在项目的四个位置,优先级不一样。默认的位置中配置文件的优先级最低。
  • 我们在项目中开发中,可能测试的环境不一致,比如端口号,我们可以通过配置yaml文件设置,选择性激活不同的配置,来达到对环境测试的随时切换。

在这里插入图片描述

自动配置原理再理解

在这里插入图片描述
假如有些类并没有生效,就需要取找到对应的启动器,在依赖中引入,就可以达到对应的类的启动条件,那么spring就将加载这些自动配置类,开启相应的服务。

Springboot Web开发

jar:webapp (自动装配)
springboot到底帮我们配置了什么,我们能不能进行修改,能修改那些东西,能不能扩展

  • XXXXAutoConfiguration:向容器中自动装配组件
  • xxxxProperties:自动装配类,装配配置文件中自定义的一些内容
    要解决的问题:
  • 导入静态资源
  • 首页
  • jsp,模板引擎Thymeleaf
  • 装配扩展SpringMVC
  • 增删改查
  • 拦截器
  • 国际化
clickhouse集群搭建、SpringBoot集成及应用 clickhouse集群搭建 阅读详情

相关推荐

什么是SpringBoot以及如何使用idea快速搭建SpringBoot项目

本篇文章主要详细介绍了,什么是SpringBoot?其相关理论,另外包含了如何使用idea快速搭建一个springboot项目。

m0_65111484的博客 1821

创建SpringBoot可删除的几个文件

初次创建SpringBoot项目时,可删除的文件

weixin_55746254的博客 625

【SpringBoot笔记01】SpringBoot框架介绍及其基础环境搭建

使用过SSM框架的小伙伴,应该都知道,那是多么的难用,需要各种框架的集成,进行配置很多的工程信息,spring的配置文件,spring-mvc的配置文件,mybatis的配置文件,都需要我们自己一点一点的配置,如果不小心配置错了,整个工程就启动不了了,又得找半天的原因,显然,这相当的影响开发效率。所以,为了简化SSM框架的各种配置,为了能够快速的搭建出一个web工程,SpringBoot框架就应运而生啦。

✅ Java 开发工程师 568

Spring Boot框架入门到进阶教程(自学版)

springboot完全自学手册

weixin_50011679的博客 2787

ELK 企业级日志分析系统(1)

ELK平台是一套完整的日志集中处理解决方案,将、Logstash和Kiabana三个开源工具配合使用, 完成更强大的用户对日志的查询、排序、统计需求。ElasticSearch:是基于Lucene(一个全文检索引擎的架构)开发的分布式存储检索引擎,用来存储各类日志。Elasticsearch 是用 Java 开发的,可通过 RESTful Web 接口,让用户可以通过浏览器与 Elasticsearch 通信。

云计算运维工程师的成长之路 1864

手机拍照背后的隐形功臣:一文读懂高通ISP三兄弟(IFE/BPS/IPE)如何协同工作

本文深入解析了高通ISP三兄弟(IFE/BPS/IPE)在手机拍照中的协同工作机制。通过拟人化比喻,详细介绍了IFE作为图像前端引擎的分流预处理、BPS作为RAW格式修图师的专业处理,以及IPE作为全能后期制作人的多面功能,揭示了三者在图像处理pipeline中的高效配合与技术创新。

weixin_27032989的博客 528

如果在springboot项目中删除其他jar包的Bean

今天在项目中遇到这么一个问题,引入公司别等团队的jar包,但是该包中有一个拦截器????,使系统的多语问题失效。。。。。 怎么办,开始想通过在启动类中删除该类 @ComponentScan(excludeFilters = {@ComponentScan.Filter(type = FilterType.REGEX, pattern = {"com.xx.Processor","com.xx.PartitionConfig"})}) 这种方法没有效果,后来才知道,项目包以外的be

奇点 2444

Android 开发实战:从零到一集成 espeak-ng 实现中文离线 TTS(无需账号开箱即用)

本文详细介绍了如何在 Android 项目中集成 espeak-ng,实现中文离线语音播报。通过下载 so 库、编写 Java 接口、封装管理类,开发者可快速构建无需账号的 TTS 功能。文章覆盖从零到一的开发步骤、调试技巧及性能优化,适合中高级 Android 开发者参考。

全栈 3317

超详细的springBoot学习教程,springboot学习看这篇就够了

springBoot学习 https://docs.spring.io/spring-boot/docs/2.2.6.RELEASE/reference/html/index.html (官方文档) spring boot的Maven基础配置 1.父项目springboot的版本仲裁管理依赖的版本号 <!-- 父项目springboot的版本仲裁管理依赖的版本号,后续导入就不需要导入版本号了...

lin1214000999的博客 7万+

告别环境配置烦恼:Docker容器化一站式搭建Zephyr RTOS开发环境

本文详细介绍了如何使用Docker容器化技术一站式搭建Zephyr RTOS开发环境,彻底解决环境配置不一致、依赖冲突等难题。通过预构建镜像、数据卷挂载和实战编译示例,帮助开发者快速获得隔离、一致且可复现的嵌入式开发环境,大幅提升开发效率和团队协作体验。

n8m7b6v5c4的博客 189

实战指南:如何优雅解决SpringBoot3与Mybatis-Plus的版本兼容性问题

本文深入解析SpringBoot3与Mybatis-Plus的版本兼容性问题,提供实战解决方案。通过Maven依赖排除策略、Gradle配置方案及自动配置覆盖策略,有效解决包冲突和初始化顺序问题,确保项目平稳升级。适用于开发者快速解决SpringBoot3与Mybatis-Plus的集成难题。

weixin_28432777的博客 597

微服务中*.iml文件删除

*.iml文件被删除

有时间可以指导毕业设计,可以私聊我。一个热爱编程的smallCuteMonkey,可以私信我 570

[cryoEM] cryoSPARC简介

cryoSPARC系统结构概述 cryoSPARC是一个后端和前端高性能计算软件系统,为单颗粒冷冻电镜提供数据处理和图像分析能力,以及丰富的基于浏览器的用户截面和命令行工具。 Master-worker模式 系统基于主用户模式。 主进程(web应用,核心应用程序和MongoDB数据库)一起在主节点上运行。主节点需要相对轻量级的资源(2+ CPU< 16GB+ RAM)。 工作程序进程可以在具有GPU的任何可用节点上生成,负责所有实际计算和数据处理,并由主节点调度。注意:同一节点可以同时充当主节点和辅

进阶中的程序员吃吃的博客 7796

SpringBoot.01.SpringBoot概述及基本环境搭建

SpringBoot概述及基本环境搭建SpringBoot概述引言SpringBoot优势SpringBoot约定环境搭建环境要求准备工作1.新建项目空间2.配置Maven3.配置Log Support创建项目的两种方式maven方式搭建1.新建Module2.pom.xml3.application.yml4.SpringBoot01MavenApplication.java5.TestController.java6.测试Spring initializr方式1.新建Module2.pom.xml3.a

潮汐先生的专栏 506

ESP32S3开发实战:从Vscode+IDF环境配置到OpenOCD单步调试全流程

本文详细介绍了ESP32S3开发环境的完整搭建流程,重点讲解如何在Vscode中配置ESP-IDF开发框架,并利用OpenOCD工具实现硬件单步调试。内容涵盖从环境准备、工程创建、代码烧录到高级调试技巧的全方位实战指南,旨在帮助开发者快速掌握ESP32S3的高效开发与调试方法。

weixin_29168813的博客 208

RK3588 实战级 YOLOv5 Android 全解析:NPU 量化 + 多线程 + 跟踪算法,源码一次买齐

本文将带你完成一个完整的AI视觉项目:在搭载RK3588芯片的Android开发板上运行实时目标检测与跟踪应用。实战目标:成功运行官方YOLOV5摄像头实时检测案例技术深度:深入理解RKNN开发框架和源码实现核心技能:掌握NPU推理、多线程并发、目标跟踪等关键技术。

FJN110的博客 156

springboot搭建01

springboot空白框架的搭建

weixin_44641804的博客 816

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

01_SpringBoot简介及项目搭建

springboot简介及项目搭建

qq_51550750的博客 500

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

01,SpringBoot学习笔记01-介绍,环境搭建,基本使用

SpringBoot学习笔记01-介绍,环境搭建,基本使用

w7635122886的博客 217

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

SpringBoot-学习笔记01【SpringBoot介绍】

SpringBoot-学习笔记01【SpringBoot介绍】

upward 661

springboot+mysql环境搭建01

整体想法:因为想学习vuejs,前期准备一个能运行的springboot后台,具备增删改查功能,要做的东西是:在家里时间长了,总是记不住东西放哪了,所以我想做的是一个简单的“忘了”系统,有user表,可以记录用户的信息,有house表,可以记录用户家里不同的房间信息,有personal表可以记录具体到某个房间、某个位置,存了什么东西 目的:希望做完这些,我还没放弃能接着学习vuejs ^_^ DB:目前能想到的表关系 User表 CREATE TABLE `user` ( `id` int NOT NU

charles542307299的博客 3402

SpringBoot的学习之路(01):缘起

有人说,Spring Boot的出现,让Java迎来了又一春,它是Java应用开发的颠覆者,彻底改变了Java应用开发的模式。 2017年,SpringBoot闯入我的生活, 也让我迎来了又一春 我开始接触SpringBoot的时候,是在2017年,是公司同事在开始学。我也网上查找了些资料,发现SpringBoot相比传统SpringMVC在xml配置上有很大的一部分优势:无繁琐的xml配置,...

Java技术干货 412

【SpringBoot学习】01基础篇

SpringBoot(B站黑马)学习笔记 01基础篇

weixin_48074431的博客 448

SpringBoot学习之一快速搭建

概念 SpringBoot是什么 从字面理解,Boot是引导的意思,因此他是引导Spring快速搭建的一个工具。以前开发的SSM框架需要很多的配置,而SpringBoot采用“习惯优先于配置”的理念,使得用户很容易创建一个独立运行,准生产级别的基于Spring框架的项目。 SpringBoot的核心功能: 独立运行的Spring项目 (嵌入式常用Spring框架开发项目:导航系统),...

qq_38497391的博客 186

springboot(01)项目搭建与启动

有多种方式可以搭建Spring Boot项目,包括: - 使用Spring Boot CLI命令行工具 - 使用Spring Initializr网站或IDE插件生成项目模板 - 使用Maven或Gradle手动配置项目 每种方式都有其优缺点,具体选择应根据项目的需要和个人偏好来决定。

个人笔记总结 1039

SpringBoot学习01

一、springBoot-入门 0.学习视频来源与简介 SpringBoot 视频教程全集(112P)| 23 小时从入门到精通: https://www.bilibili.com/video/av59572480 0.1.简介 通过上面的图,我们可以看出,springboot的学习入口非常小,但是想要精通,困难很大,要掌握spring框架以及… springboot是什么? 简化spring应用开发的一个框架; 整个spring技术栈的一个大整合; J2EE开发的一站式解决方案; 优点**:

aa11dddd的博客 662
上一篇: C语言练习
下一篇: springboot学习02(从搭建到熟悉)
Smallcloudy
博客等级 码龄10年 53粉丝 36原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值