springboot导包显示不存在_基础篇:Spring Boot入门体验(图文教程)

优质文章,及时送达

什么是 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 中流砥柱,承上启下

29642d64ddace0ec9a190fadbccee1c5.png

环境准备

(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

0009840c0c6fb8a96e5e62543b5f6da4.png

(2)Maven 配置环境变量:

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

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

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

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

在命令行输入:

mvn -V

然后会一大堆东西:

a6ac45cd87adb57e3de001c714bd35fb.png

(4)配置 maven 仓库:

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

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

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

D:spaceMavenRepositorymaven_jar
e43a8fb4946af96788f421f08cbfcaec.png

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


aliyunaliyun Maven*http://maven.aliyun.com/nexus/content/groups/public/
18aaaba1abda99e20c21d18628b79222.png

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

74e26249e0454852328225316ddcab7a.png

(5)在 idea 配置 maven:

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

2d4beb95e68fc0f6ac18eb3df25d2c95.png

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

使用 idea 快速搭建 Spring Boot

第一步:新建 Spring Initializr 项目:

8d693827b0903590a9ed13b6a660ca35.png

(1)选择 Spring Initializr

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

446c68e811379438b4f8adfc5638b25e.png

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

0d5d2024674ae60dceef4a8f7db43da9.png

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

ce514687ca1344d8e4003bddbcf3d4c7.png

(5)先勾选上 Web 依赖:

f63b07c7c5f487bd1d103214a5cf0462.png

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

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

40ab48df398a1ed4c1012581a823a251.png

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

6c3cf3ee254b2d602648afe4529ce196.png

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

43de2abc1a2799511b49e11039047205.png

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

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

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

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

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

第二步:HelloController

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

9fe56f507622ed57f8ca4620ca1bdc5b.png
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 这个类中,然后右键点击运行:

7f736528895e512ec101bfc3d9772248.png

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

63b70fea544956799c0fc028e6a6b43a.png

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

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

bdf5eb4904f944f4243d8ff9d2c8798b.png

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

http://localhost:8080/hello
4a8fe97acec00fff4d1719264b07316d.png

Spring Boot 项目文件介绍

一、解析 pom.xml 文件:

(1)让我们来看看默认生成的 pom.xml 文件中到底有些什么:

<?xml version="1.0" encoding="UTF-8"?>
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">4.0.0com.xpwi
springboot0.0.1-SNAPSHOTjarspringbootDemo project for Spring Bootorg.springframework.boot
spring-boot-starter-parent2.1.0.RELEASEUTF-8UTF-81.8org.springframework.boot
spring-boot-starter-weborg.springframework.boot
spring-boot-starter-testtestorg.springframework.boot
spring-boot-maven-plugin

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

org.springframework.boot
spring-boot-starter-parent2.1.0.RELEASE

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

关于具体 Spring Boot 提供了哪些 jar 包的依赖,我们可以查看本地 Maven 仓库下:epositoryorgspringframeworkbootspring-boot-dependencies2.1.0.RELEASEspring-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

cf005996f0db273e5aef721b655cb67d.png

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

a423087d35ab440a64072533940f32ed.png

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

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

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

14f6adca2131dd44d78bdc2730325724.png

(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 能看到正确的结果:

ceb9460bf489f83c61b0076cbaf90067.png

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

3f0c3c5f089814bc2fcc4c208c218303.png

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

56d33da191a094076dde64f68cfbd9eb.png

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

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

可以,封装配置信息

封装配置信息使用方法:

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

42385b060119c16e2f615b277b73d661.png

(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 文件,添加内容(注意位置):

org.springframework.boot
spring-boot-configuration-processortrue
352ae429b392ed197c577ff9525b011b.png

(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面试题从写简历,到面试、谈薪酬

6931b4573f826159638a7b4af9a7f141.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/552226.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

plsql查看用户权限_权限功能

几乎所有的后台都会有权限这个功能&#xff0c;权限也是后台管理系统很重要的一项功能&#xff0c;可以提高系统的安全性&#xff0c;也可以很好的使每个操作人员清晰地找到自己所对应的功能。一般来说&#xff0c;系统中只有最高权限、或者这只权限的管理员可以分发设置其余权…

计算机教学论研究生,课程与教学论(计算机)专业硕士学位研究生培养方案

课程与教学论(计算机)专业硕士学位研究生培养方案一、学科专业简介计算机教学论以教育科学的基本理论为指导&#xff0c;探索计算机教育的的基本理论和实践问题&#xff0c;探讨现代教育理论视野中的计算机课程与教育改革。研究内容包括&#xff1a;计算机专业课程设置和教材建…

七度空间338多少钱一包_2020黄果树香烟一包多少钱 黄果树香烟价格表图排行榜...

阅读本文前&#xff0c;请您先点击上面的“蓝色字体”&#xff0c;再点击“关注”&#xff0c;这样您就可以继续免费收到文章了。每天都会有分享&#xff0c;都是免费订阅&#xff0c;请您放心关注。注图文来源网络&#xff0c;侵删 …

eslint vscode 自动格式化_使用 VSCode 的必备三大神器,这才是开发 Vue 的真香解决方案...

现在用 VSCode 开发 Vue.js 应用几乎已经是前端的标配了&#xff0c;但很多时候我们看到的代码混乱不堪&#xff0c;作为一个前端工程师&#xff0c;单引号双引号乱用&#xff0c;一段有分号一段没有分号&#xff0c;有的地方有逗号有的地方没有逗号&#xff0c;空格回车都对不…

eclipse复制代码连接数据库404_推荐一款免费的数据库管理工具,比Navicat还要好用,功能还很强大...

作者&#xff1a;不剪发的Tony老师blog.csdn.net/horses/article/details/89683422DBeaver 是一个基于 Java 开发&#xff0c;免费开源的通用数据库管理和开发工具&#xff0c;使用非常友好的 ASL 协议。可以通过官方网站或者 Github 进行下载。由于 DBeaver 基于 Java 开发&am…

炒菜机器人放食材的顺序_珠江新城有了首家机器人餐厅,40多台机器人提供服务...

大洋网讯 在广州最繁华的CBD珠江新城&#xff0c;历史性有了一家机器人餐厅。这是广州日报全媒体记者昨日获悉的信息。记者赶往其中看见&#xff0c;这家新开的中餐厅看起来与众不同&#xff0c;厨房里没有铛铛的切菜声&#xff0c;没有此起彼伏的传菜声&#xff0c;更没有缭绕…

c++ string类_C++|细说STL string类概貌及底层细节

C语言中的字符串称为C风格字符串&#xff0c;是一个以0结尾的字符数组&#xff0c;string.h库只提供了有限、不甚安全的字符串操作函数。char str[]只能定义编译期确定大小的字符串&#xff0c;而保存在堆内存的动态字符数组却需要考虑释放内存的问题&#xff0c;且想要实现自变…

Python可以调用Gpu吗_python可以开发app吗

python可以开发app吗&#xff1f;python是可以开发app的&#xff0c;例如我们可以使用kivy开发安卓APP&#xff0c;Kivy是一套专门用于跨平台快速应用开发的开源框架&#xff0c;使用Python和Cython编写&#xff0c;对于多点触控有着非常良好的支持&#xff0c;不仅能让开发者快…

kubectl查看node状态_适用于初学者的基本 kubectl 和 Helm 命令 | Linux 中国

去杂货店“采购”这些命令&#xff0c;你需要用这些 Kubernetes 工具来入门。-- Jessica Cherry去杂货店“采购”这些命令&#xff0c;你需要用这些 Kubernetes 工具来入门。最近&#xff0c;我丈夫告诉我他即将要去参加一个工作面试&#xff0c;面试时他需要在计算机上运行一些…

pycharm pyqt5 pyrrc_编程基础 | Pycharm安装、配置、快捷键

Pycharm可以去官网下载Pycharm的安装激活jar包的目的就是让截获截止时间并骗过pycharm;将jar包放入pycharm在你本地的安装目录bin下。并且修改两个以 vmoptions为结尾的启动文件如图所示:并且在两个文件后追加 -javaagent:D:devAppPyCharm 2017.3.2inJetbrainsCrack-2.6.10-rel…

php的web表单系统源码毕设_从业十多年看了千百套Java毕设项目,整理出100个精品!免费分享...

加班无数个昼夜看了千百套Java毕设项目&#xff0c;发现这100个精品&#xff01;今天免费分享给大家&#xff01;再给大家推荐一条由浅入深的JAVA学习路径&#xff0c;首先完成 Java基础、JDK、JDBC、正则表达式等基础实验&#xff0c;然后进阶到 J2SE 和 SSH 框架学习。最后再…

xbox360无线手柄接收器驱动_八位堂USB 无线接收器让手柄不闲置,无线畅玩各平台游戏...

遥想儿时每逢周末放假&#xff0c;得闲便会打上一下午的游戏。富有活跃想象力的游戏画面和不断操作游戏手柄发出的愉悦打击声&#xff0c;总会令人感到如此如醉。长大了&#xff0c;随着科技创新进步与物质生活的丰富&#xff0c;我们都会向往童年时游戏带来的满足愉快之情&…

在scrapy中parse函数里面xpath的内容打印不出来_如何正确的使用Scrapy ?

本节是 《Python爬虫从入门到进阶》课程中的一节&#xff0c;课程购买链接(PC访问需要微信扫码) &#xff0c;目前已更新80% 课程购买课程请扫码&#xff1a;Scrapy是一个为了爬取网站数据&#xff0c;提取结构性数据而编写的应用框架。只需要编写很少的代码就能实现抓取功能&a…

绳索受力分析的软件_【硕士论文】供热管网管道支架载荷分析与优化设计

摘 要改革开放后我国经济快速发展&#xff0c;随着集中供热事业的扩大&#xff0c;集中供暖越来越受到广大民众的欢迎&#xff0c;居民冬季用热为主的集中供暖面积在连年递增&#xff0c;已经成为主要一种供暖方式。集中供热作为城市公共服务功能中重要的一项工作&#xff0c;对…

python-docx 如何获取当前字号_餐饮老字号迈上“云端”

原标题&#xff1a;餐饮老字号迈上“云端”老字号陈麻婆豆腐旗舰店。 杨予頔 摄中新网成都10月31日电 (单鹏)临近中午&#xff0c;成都餐饮老字号“钟水饺”文殊院店的前台站满身穿黄色和蓝色服装的“外卖小哥”&#xff0c;拿到打包好的钟水饺后&#xff0c;他们急匆匆地转身…

进入hbase命令_Zookeeper、Hbase安装部署

zookeeper安装与配置使用xftp将压缩包传入/soft中创建zookeeper数据存放目录mkdir /soft/zookeeperchmod 766 /soft/zookeeper分别在三台服务上面依次执行 echo id > /var/zookeeper/myid 命令创建zookeeper编号的myid文件echo 1 > /soft/zookeeper/myidecho 2 > /sof…

c++new时赋初值_C高级编程精髓之内存管理,万千码农踩过的雷,大神带你走出雷区...

今天给大家分享C高级编程精华片之内存管理——欢迎跟大家一起踏进内存这片雷区&#xff0c;然后带大家从雷区中走出来&#xff01;程序员们经常编写内存管理程序&#xff0c;往往提心吊胆。如果不想触雷&#xff0c;唯一的解决办法就是发现所有潜伏的地雷并且排除它们&#xff…

为什么用pyqt的不多_现在农村提倡用天然气和清洁煤球取暖,为何农民不爱用?看完懂了...

近几年华北很多农村响应保护环境的政策&#xff0c;大多数农村家庭都安装了天然气。冬季的取暖方式也从以前的烧煤取暖改成了烧天然气或清洁煤球取暖。对于安装天然气并烧天然气或清洁煤球取暖&#xff0c;大多数农民都很抗拒&#xff0c;为什么农村人不愿意烧天然气和清洁煤球…

两种参数类型_布尔参数这些缺点不能忍?不如试试枚举吧

全文共2222字&#xff0c;预计学习时长9分钟图源&#xff1a;unsplash在代码库中使用布尔标志值来管理状态机似乎听起来是个不错的办法&#xff0c;但事实并非如此。布尔值恐怕是很多程序员接触到的第一种数据类型&#xff0c;它非常简单&#xff0c;只有两种状态: true 和fals…

405 not allowed怎么解决_英语口语:“您拨叫的用户不在服务区”这类电话常用语怎么说...

1、空号&#xff1a;中文&#xff1a;您好&#xff01;您所拨打的号码是空号&#xff0c;请核对后再拨。英文&#xff1a;Sorry! The number you dialed does not exist, please check it and dial later.2、被叫用户关机&#xff1a;中文&#xff1a;您好&#xff01;您所拨打…