【狂神说】SpringBoot笔记整理(每⼀个章节基本都有)SpringBoot
⽂章⽬录
SpringBoot简介
回顾什么是Spring
Spring是⼀个开源框架,2003 年兴起的⼀个轻量级的Java 开发框架,作者:Rod Johnson 。
Spring是为了解决企业级应⽤开发的复杂性⽽创建的,简化开发。
Spring是如何简化Java开发的
为了降低Java开发的复杂性,Spring采⽤了以下4种关键策略:
1、基于POJO的轻量级和最⼩侵⼊性编程,所有东西都是bean;
2、通过IOC,依赖注⼊(DI)和⾯向接⼝实现松耦合;
3、基于切⾯(AOP)和惯例进⾏声明式编程;
4、通过切⾯和模版减少样式代码,RedisTemplate,xxxTemplate;
什么是SpringBoot
学过javaweb的同学就知道,开发⼀个web应⽤,从最初开始接触Servlet结合Tomcat, 跑出⼀个Hello Wolrld程序,是要经历特别多的步骤;后来就⽤了框架Struts,再后来是SpringMVC,到了现在的SpringBoot,过⼀两年⼜会有其他web框架出现;你们有经历过框架不断的演进,然后⾃⼰开发项⽬所有的技术也在不断的变化、改造吗?建议都可以去经历⼀遍;
⾔归正传,什么是SpringBoot呢,就是⼀个javaweb的开发框架,和SpringMVC类似,对⽐其他javaweb框架的好处,官⽅说是简化开发,约定⼤于配置, you can “just run”,能迅速的开发web应⽤,⼏⾏代码开发⼀个http接⼝。
所有的技术框架的发展似乎都遵循了⼀条主线规律:从⼀个复杂应⽤场景 衍⽣ ⼀种规范框架,⼈们只需要进⾏各种配置⽽不需要⾃⼰去实现它,这时候强⼤的配置功能成了优点;发展到⼀定程度之后,⼈们根据实际⽣产应⽤情况,选取其中实⽤功能和设计精华,重构出⼀些轻量级的框架;之后为了提⾼开发效率,嫌弃原先的各类配置过于⿇烦,于是开始提倡“约定⼤于配置”,进⽽衍⽣出⼀些⼀站式的解决⽅案。
是的这就是Java企业级应⽤->J2EE->spring->springboot的过程。
随着 Spring 不断的发展,涉及的领域越来越多,项⽬整合开发需要配合各种各样的⽂件,慢慢变得不那么易⽤简单,违背了最初的理念,甚⾄⼈称配置地狱。Spring Boot 正是在这样的⼀个背景下被抽象
出来的开发框架,⽬的为了让⼤家更容易的使⽤ Spring 、更容易的集成各种常⽤的中间件、开源软件;
Spring Boot 基于 Spring 开发,Spirng Boot 本⾝并不提供 Spring 框架的核⼼特性以及扩展功能,只是⽤于快速、敏捷地开发新⼀代基于 Spring 框架的应⽤程序。也就是说,它并不是⽤来替代 Spring 的解决⽅案,⽽是和 Spring 框架紧密结合⽤于提升 Spring 开发者体验的⼯具。Spring Boot 以约定⼤于配置的核⼼思想,默认帮我们进⾏了很多设置,多数 Spring Boot 应⽤只需要很少的 Spring 配置。同时它集成了⼤量常⽤的第三⽅库配置(例如 Redis、MongoDB、Jpa、RabbitMQ、Quartz 等等),Spring Boot 应⽤中这些第三⽅库⼏乎可以零配置的开箱即⽤。
简单来说就是SpringBoot其实不是什么新的框架,它默认配置了很多框架的使⽤⽅式,就像maven整合了所有的jar包,spring boot整合了所有的框架 。
Spring Boot 出⽣名门,从⼀开始就站在⼀个⽐较⾼的起点,⼜经过这⼏年的发展,⽣态⾜够完善,Spring Boot 已经当之⽆愧成为 Java 领域最热门的技术。
Spring Boot的主要优点:
为所有Spring开发者更快的⼊门
开箱即⽤,提供各种默认配置来简化项⽬配置
内嵌式容器简化Web项⽬
没有冗余代码⽣成和XML配置的要求
Spring开发-HelloWord
准备⼯作
我们将学习如何快速的创建⼀个Spring Boot应⽤,并且实现⼀个简单的Http请求处理。通过这个例⼦对Spring Boot有⼀个初步的了解,并体验其结构简单、开发快速的特性。
我的环境准备:
java version “1.8.0_181”
Maven-3.6.1
SpringBoot 2.x 最新版
开发⼯具:
IDEA
创建基础项⽬说明
Spring官⽅提供了⾮常⽅便的⼯具让我们快速构建应⽤
**项⽬创建⽅式⼀:**使⽤Spring Initializr 的 Web页⾯创建项⽬
2、填写项⽬信息
3、点击”Generate Project“按钮⽣成项⽬;下载此项⽬
4、解压项⽬包,并⽤IDEA以Maven项⽬导⼊,⼀路下⼀步即可,直到项⽬导⼊完毕。
5、如果是第⼀次使⽤,可能速度会⽐较慢,包⽐较多、需要耐⼼等待⼀切就绪。
**项⽬创建⽅式⼆:**使⽤ IDEA 直接创建项⽬
1、创建⼀个新项⽬
2、选择spring initalizr , 可以看到默认就是去官⽹的快速构建⼯具那⾥实现
3、填写项⽬信息
4、选择初始化的组件(初学勾选 Web 即可)
5、填写项⽬路径
6、等待项⽬构建成功
项⽬结构分析:
通过上⾯步骤完成了基础项⽬的创建。就会⾃动⽣成以下⽂件。
1、程序的主启动类
2、⼀个 application.properties 配置⽂件
3、⼀个 测试类
4、⼀个 l
打开l,看看Spring Boot项⽬的依赖:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="/POM/4.0.0"xsi="/2001/XMLSchema-instance"
schemaLocation="/POM/4.0.0 /xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<!--有⼀个⽗项⽬-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.2</version>
<relativePath/><!-- lookup parent from repository -->
</parent>
<groupId&le</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demo</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<!--所有的SpringBoot依赖都是spring-boot-starte 开头的-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
springboot aop</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
更改端⼝号
[外链图⽚转存失败,源站可能有防盗链机制,建议将图⽚保存下来直接上传(img-Rw2UNLK7-1642048144673) (C:/Users/77/AppData/Roaming/Typora/typora-user-images/image-20220104152933318.png)]
更改Banner
如何更改启动时显⽰的字符拼成的字母,SpringBoot呢?也就是 banner 图案;
只需⼀步:到项⽬下的 resources ⽬录下新建⼀个 即可。
运⾏原理探究
我们之前写的HelloSpringBoot,到底是怎么运⾏的呢,Maven项⽬,我们⼀般从l⽂件探究起;l
⽗依赖
核⼼依赖在⽗⼯程中
这⾥我们在引⼊⼀些SpringBoot依赖的时候,不需要指定版本,就因为有这些版本仓库
其中它主要是依赖⼀个⽗项⽬,主要是管理项⽬的资源过滤及插件!
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.2</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
点进去,发现还有⼀个⽗依赖
这⾥才是真正管理SpringBoot应⽤⾥⾯所有依赖版本的地⽅,SpringBoot的版本控制中⼼;
以后我们导⼊依赖默认是不需要写版本;但是如果导⼊的包没有在依赖中管理着就需要⼿动配置版本了;启动器 spring-boot-starter
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
启动器:说⽩了就是SpringBoot的启动场景
⽐如spring-boot-starter-web,会帮我们⾃动导⼊web环境所有的依赖
springboot会将所有功能场景,都变成⼀个个的启动器
我们要是⽤什么功能,就需要到⼀个个启动器就可以了
主启动类
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论