百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

基础篇:Spring Boot入门体验(图文教程)

ccwgpt 2024-11-06 09:41 45 浏览 0 评论

优质文章,及时送达

什么是 Spring Boot?

Spring Boot 是由 Pivotal 团队提供的全新框架。Spring Boot 是所有基于 Spring Framework 5.0 开发的项目的起点。Spring Boot 的设计是为了让你尽可能快的跑起来 Spring 应用程序并且尽可能减少你的配置文件。

设计目的:用来简化新 Spring 应用的初始搭建以及开发过程。

从最根本上来讲,Spring Boot 就是一些库的集合,它能够被任意项目的构建系统所使用。它使用 “习惯优于配置” (项目中存在大量的配置,此外还内置一个习惯性的配置)的理念让你的项目快速运行起来。用大佬的话来理解,就是 spring boot 其实不是什么新的框架,它默认配置了很多框架的使用方式,就像 maven 整合了所有的 jar 包,spring boot 整合了所有的框架,总结一下及几点:

(1)为所有 Spring 开发提供一个更快更广泛的入门体验。

(2)零配置。无冗余代码生成和XML 强制配置,遵循“约定大于配置” 。

(3)集成了大量常用的第三方库的配置, Spring Boot 应用为这些第三方库提供了几乎可以零配置的开箱即用的能力。

(4)提供一系列大型项目常用的非功能性特征,如嵌入式服务器、安全性、度量、运行状况检查、外部化配置等。

(5)Spring Boot 不是Spring 的替代者,Spring 框架是通过 IOC 机制来管理 Bean 的。Spring Boot 依赖 Spring 框架来管理对象的依赖。Spring Boot 并不是Spring 的精简版本,而是为使用 Spring 做好各种产品级准备。

公众号(Java后端 )还发布过近百篇 Spring Boot 相关的文章,关注后后台回复「666」获取。

Spring Boot 在应用中的角色

  • Spring Boot 是基于 Spring Framework 来构建的,Spring Framework 是一种 J2EE 的框架(什么是 J2EE?)

  • Spring Boot 是一种快速构建 Spring 应用

  • Spring Cloud 是构建 Spring Boot 分布式环境,也就是常说的云应

  • Spring Boot 中流砥柱,承上启下

环境准备

(1)JDK 环境必须是 1.8 及以上,传送门:jdk1.8.191 下载

(2)后面要使用到 Maven 管理工具 3.2.5 及以上版本,所以会先介绍 Maven 的安装与配置

(3)开发工具建议使用 IDEA,也可以 MyEclips

Maven 安装与环境变量配置

(1)Maven 安装:

在官网下载:http://maven.apache.org/download.cgi

(2)Maven 配置环境变量:

解压到一个路径,然后配置环境变量:

  • 新建变量名:MAVEN_HOME 变量值:D:\server\apache-maven-3.6.0(这是我的 MAVEN 路径)

  • 编辑变量名:Path 在最前面加上:%MAVEN_HOME%\bin

(3)检查是否配置成功:

在命令行输入:

mvn -V

然后会一大堆东西:

(4)配置 maven 仓库:

1.打开 maven 文件夹下的 config 文件夹下的 settings.xml;

2.找到 localRepository 标签,此时是被注释掉的,我们解除注释,然后配置一个路径,例如:D:/space/MavenRepository/maven_jar,这样以后 MAVEN 管理下载的jar 包都会在这个路径下。

【注意】:注意结点的位置,先找到注释掉的部分,贴在下面

D:\space\MavenRepository\maven_jar

3.配置远程仓库,找到 mirrors 标签

<!--远程仓库-->
<mirror>
<id>aliyun</id>
<name>aliyun Maven</name>
<mirrorOf>*</mirrorOf>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>

4.当然我们需要先建这样一个目录结构,然后还要把settings.xml 复制一份到 D:/space/MavenRepository 下

(5)在 idea 配置 maven:

点击【File】>【Settings】>搜索【Maven】,按截图配置安装目录和选择刚刚 settings 配置文件;

选择完settings之后,本地仓库自动改成settings文件中配置的;点击apply,再点击ok即配置完成。

使用 idea 快速搭建 Spring Boot

第一步:新建 Spring Initializr 项目:

(1)选择 Spring Initializr

(2)选择 SDK,点击【new】这里就是使用 JAVA SDK 要求版本 1.8+,选择你默认安装在 C:\Program Files\Java\jdk1.8.0_191 目录:

(3)然后选择默认的 url (不用管)点击【Next】:

(4)然后填写一下项目的信息:

(5)先勾选上 Web 依赖:

(6)勾选 SQl 下的 MySQL,MyBatis 依赖:

(根据自己的项目选择,后面可加)

(7)选择好项目的位置,点击【Finish】:

(8)如果是第一次配置 Spring Boot 的话可能需要等待一会儿 IDEA 下载相应的 依赖包,默认创建好的项目结构如下:

项目结构还是看上去挺清爽的,少了很多配置文件,我们来了解一下默认生成的有什么:

  • SpringbootApplication:一个带有 main 方法的类,用于启动应用程序

  • SpringbootApplicationTests:一个空的 Junit 测试了,它加载了一个使用 Spring Boot 字典配置功能的 Spring 应用程序上下文

  • application.properties:一个空的 properties 文件,可以根据需要添加配置属性

  • pom.xml:Maven 构建说明文件

第二步:HelloController

在 【main/java/com.xpwi.springboot】包下新建一个【HelloController】:

package com.xpwi.springboot;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
* 测试控制器
*
* @author: @肖朋伟CSDN
* @create: 2018-11-18
*/
@RestController
public class HelloController {

@RequestMapping("/hello")
public String hello {
return "Hello Spring Boot!";
}
}

第三步:利用 IDEA 启动 Spring Boot

(1)我们回到 SpringbootApplication 这个类中,然后右键点击运行:

(2)会提示 Maven 导包,点击 import

(3)注意:我们之所以在上面的项目中没有手动的去配置 Tomcat 服务器,是因为 Spring Boot 内置了 Tomcat

等待一会儿就会看到下方的成功运行的提示信息:

(4)此时,可以看到我们的 Tomcat 运行在 8080 端口,我们来访问下面地址试一下:

http://localhost:8080/hello

Spring Boot 项目文件介绍

一、解析 pom.xml 文件:

(1)让我们来看看默认生成的 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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>com.xpwi</groupId>
<artifactId>springboot</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>

<name>springboot</name>
<description>Demo project for Spring Boot</description>

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.0.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.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-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>

(2)我们可以看到一个比较陌生一些的标签 ,这个标签是在配置 Spring Boot 的父级依赖:

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.0.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>

有了这个,当前的项目才是 Spring Boot 项目,spring-boot-starter-parent 是一个特殊的 starter ,它用来提供相关的 Maven 默认依赖,使用它之后,常用的包依赖就可以省去 version 标签。

关于具体 Spring Boot 提供了哪些 jar 包的依赖,我们可以查看本地 Maven 仓库下:\repository\org\springframework\boot\spring-boot-dependencies\2.1.0.RELEASE\spring-boot-dependencies-2.1.0.RELEASE.pom 文件来查看,挺长的…

二、应用入口类 SpringbootApplication.java

Spring Boot 项目通常有一个名为 *Application 的入口类,入口类里有一个 main 方法, 这个 main 方法其实就是一个标准的 Javay 应用的入口方法。

@SpringBootApplication 是 Spring Boot 的核心注解,它是一个组合注解,该注解组合了:@Configuration、@EnableAutoConfiguration、@ComponentScan;若不是用 @SpringBootApplication 注解也可以使用这三个注解代替。

其中,@EnableAutoConfiguration 让 Spring Boot 根据类路径中的 jar 包依赖为当前项目进行自动配置,例如,添加了 spring-boot-starter-web 依赖,会自动添加 Tomcat 和 Spring MVC 的依赖,那么 Spring Boot 会对 Tomcat 和 Spring MVC 进行自动配置。

Spring Boot 还会自动扫描 @SpringBootApplication 所在类的同级包以及下级包里的 Bean ,所以入口类建议就配置在 grounpID + arctifactID 组合的包名下(这里为 com.xpwi.springboot 包)

三、Spring Boot 的配置文件:

Spring Boot 使用一个全局的配置文件 application.properties 或 application.yml,放置在【src/main/resources】目录或者类路径的 /config 下。

Spring Boot 不仅支持常规的 properties 配置文件,还支持 yaml 语言的配置文件。yaml 是以数据为中心的语言,在配置数据的时候具有面向对象的特征。

Spring Boot 的全局配置文件的作用是对一些默认配置的配置值进行修改。

修改 properties 配置文件实例:

(1)打开 resources 下的 application.properties

(2)在这里我们可以设置访问的端口,将 Tomcat 默认端口设置为 8080 (默认的不修改) ,并将默认的访问路径从 “/” 修改为 “/cn” 时,再访问 http://localhost:8080/ 是什么都没有的,此时要访问 hello 是要使用 http://localhost:8080/cn/hello

注意:如果是 yml 需要在 “:” 后加一个空格,幸好 IDEA 很好地支持了 yml 文件的格式有良好的代码提示;

我们可以自己配置多个属性

(3)使用 yml 文件作为配置文件,我们直接把 .properties 后缀的文件删掉,使用 .yml 文件来进行简单的配置

(4)在然后使用在我们的 HelloController.java 类中使用 @Value 来获取配置属性,代码(请看注释):

package com.xpwi.springboot;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
* 测试控制器
*
* @author: @肖朋伟CSDN
* @create: 2018-11-18
*/
@RestController
public class HelloController {

// 获取.yml 文件中值
@Value("${name}")
private String name;

// 获取 age
@Value("${csdnUrl}")
private String csdnUrl;

//路径映射,对应浏览器访问的地址,访问该路径则执行下面函数
@RequestMapping("/hello")
public String hello {
return name + " CSDN 博客:"+ csdnUrl;
}
}

(5)重启 Spring Boot ,输入地址:http://localhost:8080/hello 能看到正确的结果:

【注意】:此时如果你第一次使用 idea 出现中文乱码,解决办法:

(6)【注意】:我们并没有在 yml 文件中注明属性的类型,而是在使用的时候定义的。你也可以在配置文件中使用当前配置:

(7)任然可以得到正确结果.

(8)【问题】:这样写配置文件繁琐而且可能会造成类的臃肿,因为有许许多多的 @Value 注解。

可以,封装配置信息

封装配置信息使用方法:

(1)application.yml 文件内容如下:

(2)新建 author.java 和 HelloController.java 同级,内容如下:

package com.xpwi.springboot;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

@Component
@ConfigurationProperties(prefix = "author")
public class author {
private String name;

private String csdnUrl;

public String getCsdnUrl {
return csdnUrl;
}

public void setCsdnUrl(String csdnUrl) {
this.csdnUrl = csdnUrl;
}

public String getName {
return name;
}

public void setName(String name) {
this.name = name;
}
}

(3)此时可能会报错,如果报错,打开 pom.xml 文件,添加内容(注意位置):

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>

(4)重新编写 HelloController 类,内容如下:

package com.xpwi.springboot;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.beans.factory.annotation.Value;

import org.springframework.boot.context.properties.ConfigurationProperties;

import org.springframework.stereotype.Component;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RestController;

/**

* 测试控制器

*

* @author: @肖朋伟CSDN

* @create: 2018-11-18

*/

@RestController

public class HelloController {

// 获取.yml 文件中值

//@Value("${name}")

//private String name;

// 获取 age

//@Value("${csdnUrl}")

//private String csdnUrl;

@Autowired

private author author;

//路径映射,对应浏览器访问的地址,访问该路径则执行下面函数

@RequestMapping("/hello")

public String hello {

return "名字:" + author.getName + " 地址:" + author.getCsdnUrl;

}

}

(5)重启 Spring Boot,访问浏览器:

http://localhost:8080/hello

【提示】:我们可以把配置信息封装成一个类,首先在我们的 name 和 age 前加一个 student 前缀,然后新建一个 StudentProperties 的类用来封装这些信息,并用上两个注解:

  • @Component:表明当前类是一个 Java Bean

  • @ConfigurationProperties(prefix = “author”):表示获取前缀为 author 的配置信息

作者:肖朋伟

链接:blog.csdn.net/qq_40147863/article/details/84194493

-END-

如果看到这里,说明你喜欢这篇文章,请转发。同时标星(置顶)本公众号可以第一时间接受到博文推送。1. 使用JWT来保护你的Spring Boot应用看小姐姐用动图展示10大Git命令3.很用心的为你写了9道MySQL面试题从写简历,到面试、谈薪酬

相关推荐

如何基于Spring Security框架实现权限管理

SpringSecurity是一个功能强大且高度可定制的身份验证和访问控制框架,用于保护基于Spring的应用程序。SpringSecurity主要是从两个方面解决安全性问题:web请求级别:使...

一个轻量级 Java 权限认证框架,Sa-Token 让鉴权变得简单、优雅!

一、框架介绍Sa-Token是一个轻量级Java权限认证框架,主要解决:登录认证、权限认证、单点登录、OAuth2.0、分布式Session会话、微服务网关鉴权等一系列权限相关问题。官网文档:...

16.3K Star!简洁高效的Java权限认证与会话管理框架——Sa-Token

简介今天给大家推荐一个轻量级的Java权限认证框架——Sa-Token。它可以为JavaWeb应用同完整的权限认证解决方案,它的目标是简化权限管理和登录认证的流程,具备高度灵活性和简单易用的特点。S...

从Shiro迁移到Sa-Token:老版JeecgBoot项目权限框架平滑升级方案

背景介绍对于许多维护老版JeecgBoot项目的开发者来说,权限框架的升级一直是个棘手问题。这篇文章分享一种实用的方案,用于将老版JeecgBoot中的ApacheShiro替换为更现代的Sa-To...

刑法框架体系,对照着框架体系学习可以事半功倍哦

有了它,妈妈再也不用担心我司考过不啦!有了它,妈妈再也不用担心我司考过不了啦!其他部门法正在陆续整理制作中哦看不清的话请戳http://mp.weixin.qq.com/s?__biz=MzA3NDE...

全新体验版Windows QQ上线,实现三端统一

7月3日,全新体验版WindowsQQ正式上线官网,面向用户开放官方下载渠道。记者从腾讯获悉,继QQ对macOS、Linux版本进行升级后,本次Windows版本的更新,标志QQ基于NT技术架构...

农村自建房造价多少?包工头教你怎么算

通常我们在找专业人士设计农村自建房设计图时,不管你是打算建独栋一层别墅还是独栋二层别墅或是独栋三层别墅,你是否也找他们打听过相应的房屋工程造价呢?下面简单介绍一下农村自建房的傻瓜式造价估算:1、砖混结...

QQ大会员品牌运营策划与设计(qq大会员有哪些个性装扮)

编辑导语:在互联网产品越来越同质化的今天,做出有差异性和符合品牌调性的设计是品牌运营过程中需要重视的问题。本文作者从QQ大会员品牌项目实践出发,分享了品牌运营设计过程中遇到的一些问题以及具体操作方案,...

支持鸿蒙平台,腾讯视频ovCompose跨平台框架发布

IT之家6月3日消息,腾讯开源今日官宣发布腾讯视频ovCompose跨平台框架,其是腾讯大前端领域Oteam中,腾讯视频团队基于ComposeMultiplatform生态推出的...

腾讯 QQ Mac 版推倒重做,全新 1.0 版本开启内测

IT之家9月1日消息,据多位IT之家小伙伴投稿,腾讯QQMac版近日迎来了全新通用版内测,版本号重新由1.0开始,目前放出的体验版为1.0.4-305。从下图可以看到,该版本在U...

全新体验版Windows QQ正式上线官网,实现三端统一

7月3日,全新体验版WindowsQQ正式上线官网,面向用户开放官方下载渠道。记者从腾讯获悉,继QQ对macOS、Linux版本进行升级后,本次Windows版本的更新,标志QQ基于NT技术架构...

QQ,到了不能不变的境地(怎么发qq邮件到别人邮箱)

相比微信一个小更新,乃至一个小动作,都能上热搜的顶级热度。隔壁的老大哥QQ,显得有些冷清。即使更新再快,功能再激情,都很难引起用户们的集体讨论。机友们细想一番,咱们的老朋友QQ,有多久没上过热搜啦?真...

基于Electron框架全面重做:全新Linux版QQ开启公测

来源:快科技不久前,腾讯QQ项目组曾发布预告,宣布QQforLinux新版本即将开启公测。现在,新的Linux版QQ已经开启公测,不过目前仅支持x86架构,arm64架构还仍在适配中。与此前极为简...

QQ全面升级?基于Electron技术的Windows内测版本预计将于明年推出

在2022年,作为经典的聊天软件的QQ在经历多次的功能调整后,正式选择基于新技术开发新版本的QQ。今日,据相关媒体报道,腾讯QQ项目组发布预告:QQforLinux将在本周迎来公测,全新的QQf...

跨平台三端重构正式统一,QQ Windows全新体验版上架官网

7月3日,全新体验版WindowsQQ正式上线官网,面向用户开放官方下载渠道。继QQ对macOS、Linux版本进行升级后,本次Windows版本的更新,标志QQ基于NT技术架构,实现了桌面端Q...

取消回复欢迎 发表评论: