【企业云端全栈开发实践-1】项目介绍及环境准备、Spring Boot快速上手

news2024/9/29 13:19:38

本节目录

  • 一、 项目内容介绍
  • 二、Maven介绍
    • 2.1 Maven作用
    • 2.2 Maven依赖
    • 2.3 本地仓库配置
  • 三、Spring Boot快速上手
    • 3.1 Spring Boot特点
    • 3.2 遇到的Bug:spring-boot-maven-plugin
    • 3.3 遇到的Bug2:找不到Getmapping
  • 四、开发环境热部署

一、 项目内容介绍

本课程涵盖主流前后端开发技术
1、JavaEE企业级框架:Spring Boot + MyBaitPlus
2、Web前端核心框架:Vue+ElementUI
3、公共云部署:前后端项目集成打包与部署

二、Maven介绍

Maven是一个项目管理工具,可以对Java项目进行自动化的构建和依赖管理。

项目中涉及到编译、打包、运行、使用jar包等等,都可以使用maven来帮助我们,使用pom.xml文件来进行处理。
在这里插入图片描述

2.1 Maven作用

  1. 项目构建:提供标准的、跨平台的自动化构建项目的方式。
  2. 依赖管理:方便快捷的管理项目依赖的资源(jar包),避免资源之间的版本冲突等相关问题。
  3. 统一开发结构:提供标准的统一的项目开发结构,如下所示。

在这里插入图片描述

2.2 Maven依赖

每个项目都会涉及一些依赖,运行Maven的时候,Maven所需要的任何构件都是直接从本地仓库直接获取的,如果本地仓库没有,它会首先尝试从远程仓库下载构件到本地仓库中来。
在这里插入图片描述

2.3 本地仓库配置

修改maven安装包中的conf/settings.xml文件,指定本地仓库的位置。
(如果不配置,默认放在用户目录下,也就是C盘下,所以可以在D盘中提前创建好一个文件。)
在这里插入图片描述
配置好文件后,新建Idea项目时,需要在Settings中进行我们刚刚设置好的maven路径与配置路径。如下图所示。
在这里插入图片描述
注意:如果出现了报错,需要检测自己的Idea版本和maven版本。

报错内容:

报错内容:org.codehaus.plexus.component.repository.exception.ComponentLookupException: com.google.inject.ProvisionException: Unable to provision, see the following errors:
 
1) Error injecting constructor, java.lang.NoSuchMethodError: org.apache.maven.model.validation.DefaultModelValidator: method <init>()V not found
  at org.jetbrains.idea.maven.server.embedder.CustomModelValidator.<init>(Unknown Source)
  while locating org.jetbrains.idea.maven.server.embedder.CustomModelValidator
  at ClassRealm[maven.ext, parent: ClassRealm[plexus.core, parent: null]] (via modules: org.eclipse.sisu.wire.WireModule -> org.eclipse.sisu.plexus.PlexusBindingModule)
  while locating org.apache.maven.model.validation.ModelValidator annotated with @com.google.inject.name.Named(value=ide)

Maven3.8.5版本与IDEA2021暂不兼容。
IDEA 2021 兼容maven 3.8.1及之前的所用版本;IDEA 2020 兼容Maven 3.6.3及之前所有版本;IDEA 2018 兼容Maven3.6.1及之前所有版本。

三、Spring Boot快速上手

3.1 Spring Boot特点

1、遵循“约定优于配置”的原则,只需要很少的配置或者使用默认的配置。
2、能够使用内嵌的Tomcat、Jetty服务器,不需要部署war文件。即直接为jar包。
3、提供定制化的启动器Starters,简化了Maven配置,开箱即用。
4、纯Java配置,没有代码生成,也不需要XML配置。
5、提供了生产级的服务监控方案,如安全监控、应用监控、健康监测。

3.2 遇到的Bug:spring-boot-maven-plugin

配置pom的时候,容易报错:Plugin ‘org.springframework.boot:spring-boot-maven-plugin:’ not found。

大家需要自己查明自己的spring-boot-maven-plugin版本号是什么加上即可。

在这里插入图片描述

3.3 遇到的Bug2:找不到Getmapping

最开始我提示我找不到Getmapping,发现是springboot 3.0.2的版本太高了,jdk8跟不上了。

所以转换成2.5.4,但是有如下报错:
Project ‘org.springframework.boot:spring-boot-starter-parent:2.5.4’ not found

这是因为更改代码后,存在缓存问题,需要重新打开项目即可。然后就是成功运行啦!

在这里插入图片描述

四、开发环境热部署

  • 实际的项目开发调试过程中会频繁地修改后台类的文件,导致需要重新编译,重新启动,整个过程十分的麻烦,会影响开发效率。
  • Spring Boot 提供了 spring-boot-devtools组件,使得无须手动重启Spring Boot应用就可以重新编译、启动项目,大大缩短了编译启动的时间。
  • devtools会监听classpath下的文件变动,触发Restart类加载器重新加载该类,从而实现类文件和属性文件的热部署。
  • 并不是所有的更改都需要重启应用(如静态资源、视图模板等等)可以通过设置spring.devtools.restart.exclude属性来指定一些文件或者目录的修改不用重启应用。

在pom.xml中添加如下配置:

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

在application.properties中添加:

spring.devtools.restart.enabled=true
spring.devtools.restart.additional-path=src/main/java

idea
在这里插入图片描述

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

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

相关文章

肿瘤HRR和HRD 简单记录

最近看到两个在肿瘤领域高频出现的词HRR和HRD&#xff0c; 遂简单记录下。 HRR和HRD的概念 当细胞受到外界不良环境的压力下往往会导致DNA的损伤&#xff0c;此时便会触发DNA 损伤反应 (DDR)&#xff0c;从而激活许多DNA修复通路。在这些DNA损伤中&#xff0c;DNA 双链断裂&a…

【云原生】centos7搭建安装k8s集群 v1.25版本详细教程实战

文章目录前言一. 实验环境二. k8s 的介绍三 . k8s的安装3.1 搭建实验环境3.1.1 硬件层面的要求3.1.2 软件层面环境配置3.2 docker的安装3.2.1 搭建docker3.2.2 部署 cri-dockerd3.3 部署k8s3.3.1 配置添加阿里云的yum源3.3.2 安装kubeadm kubelet kubectl3.3.3 k8s-master节点初…

浪涌保护器,防雷浪涌保护器的作用和类型指南

1&#xff0e; 什么是SPD浪涌保护器&#xff1f;地凯防雷SPD浪涌保护器是防止雷击导致故障的避雷器和浪涌保护设备。广泛用于电源浪涌对策的变阻器在通电超过规格的雷电浪涌电流、超过最大容许电路电压的过电压、过电流时&#xff0c;会进入短路故障模式&#xff0c;存在冒烟起…

Mysql元数据获取方法(information_schema绕过方法)

前提&#xff1a;如果waf或其它过滤了information_schema关键字&#xff0c;那我们该如何获取元数据呢&#xff1f;能够代替information_schema的有&#xff1a;sys.schema_auto_increment_columnssys.schema_table_statistics_with_bufferx$schema_table_statistics_with_buff…

大数据框架之Hadoop:HDFS(七)HDFS 2.X新特性

7.1集群间数据拷贝 scp实现两个远程主机之间的文件复制 ​ scp -r hello.txt roothadoop103:/root/hello.txt // 推 push ​ scp -r roothadoop103:/root/hello.txt hello.txt // 拉 pull ​ scp -r roothadoop103:/root/hello.txt roothadoop104:/root //是通过本地主机中…

计算机技术与软件(初级、中级、高级)考试(软考)是什么?软考的时间安排是什么时候?

一、软考是什么&#xff1f; 计算机技术与软件专业技术资格&#xff08;水平&#xff09;考试&#xff08;以下简称计算机软件资格考试&#xff09;是原中国计算机软件专业技术资格和水平考试&#xff08;简称软件考试&#xff09;的完善与发展。计算机软件资格考试是由国家人力…

Fluent工作目录

1 工作目录定义工作目录&#xff08;working directory&#xff09;是一种文件存储路径设置方式。基于工作目录的方法&#xff0c;写文件时只需要指定文件名&#xff0c;而不需要指定完全的文件路径&#xff0c;从而简化程序编写&#xff0c;对不同操作系统环境有更好的适应性。…

#笨鸟先飞# 数据结构与算法基础 课程笔记 第六章 图

图的定义和基本术语图&#xff1a;G( V , E ) Graph&#xff08;Vertex&#xff0c;Edge&#xff09;V&#xff1a;顶点&#xff08;数据元素&#xff09;的有穷非空集合&#xff1b;E&#xff1a;边的有穷集合。无向图&#xff1a;每条边都是无方向的有向图&#xff1a;每条边…

新手小白入门必看!如何批量注册Twitter账号?

Twitter是目前海外比较流行的社媒营销平台&#xff0c;所以很多从事跨境电商行业的朋友都需要利用多个Twitter账号来推广营销&#xff0c;但是注册和管理多个Twitter账号其实并不是简单的事情。龙哥将会在这里详细讲讲该如何批量注册并且让这些账号不会因为关联被封号&#xff…

如何合理地制定项目管理计划?

甘特图是一个比较常见的直观地项目管理专用工具&#xff0c;我们可以使用用Excel制作表格&#xff0c;也可是使用项目管理软件。 详细的项目计划不能完全保证项目成功&#xff0c;但是可以将失败的风险降到最低。通过项目管理软件的图标&#xff0c;项目管理者可以直观的查看任…

字符串的特殊读取——基于蓝桥杯两道题目(C/C++)

目录 1 例题 1.1 卡片换位 1.2 人物相关性分析 2 字符串的读取 2.1 综述 2.2 scanf 2.3 getline/getchar/get 2.4 注意 2.5 说明 先看例题 1 例题 1.1 卡片换位 问题描述 你玩过华容道的游戏吗&#xff1f; 这是个类似的&#xff0c;但更简单的游戏。 看…

加拿大访问学者如何提升自我

学习加拿大先进的科学技术和研究方法是我们访学的最主要目的。(1)根据自己的先前的研究计划、加方导师的项目和科研条件尽早调整自己目前学习和研究。(2)可以适当、有选择地听一些相关的课程&#xff0c;在提高英语水平的同时&#xff0c;又能够了解外国的教学方法。(3)与导师积…

pytest+yaml+allure接口自动化测试框架04.处理request

前言 ​ 环境搭建配置、封装日志缓存、读取yaml测试文件&#xff0c;这些工作我们上几个章节已经都做完了&#xff0c;读取文件之后&#xff0c;我们已经成功拿到了测试yaml文件中的测试数据了&#xff0c;那我们接下来就通过这些数据去执行测试&#xff0c;主要就是对这些数据…

SpringBoot+Vue实现酒店客房管理系统

文末获取源码 开发语言&#xff1a;Java 框架&#xff1a;springboot JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 5.7/8.0 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.3.9 浏…

异步 Servlet

1.什么是异步 Servlet 在 Servlet3.0 之前&#xff0c;Servlet 采用 Thread-Per-Request 的方式处理 Http 请求&#xff0c;即每一次请求都是由某一个线程从头到尾负责处理。 如果一个请求需要进行 IO 操作&#xff0c;比如访问数据库、调用第三方服务接口等&#xff0c;那么其…

云原生丨一文教你轻松借助DEX实现单点登录~

文章目录前言一、分析思路1、单点登录授权码认证隐式认证混合认证2、会话管理二、实现过程1、搭建DEX认证中⼼2、登录流程说明授权码认证示例代码3、登出流程说明登出代码示例前言 通常&#xff0c;我们在登录单系统时&#xff0c;都希望只需要登录⼀次&#xff0c;就能访问本…

分享一下最近使用python字典取值用法的收获

假设现在有一个字典&#xff0c;内容如下&#xff1a;data {a: 1, b: 2}初级版本 我最开始学python的时候&#xff0c; 要从字典中取值&#xff0c;我可能会采用下面的写法&#xff1a;print(data["key"])上面的用法中&#xff0c;如果输入的key在字典中不存在的时候…

【蓝桥集训】第二天——差分

作者&#xff1a;指针不指南吗 专栏&#xff1a;Acwing 蓝桥集训每日一题 &#x1f43e;做题过程中首先应该注意时间复杂度问题&#x1f43e; 文章目录1.改变数组元素2.差分3.差分矩阵1.改变数组元素 给定一个空数组 V 和一个整数数组 a1,a2,…,an。 现在要对数组 V 进行 n 次操…

tkinter如何绑定鼠标和键盘等事件

文章目录鼠标点击事件进入或离开控件键盘事件Configure事件控件和人通过事件来交互&#xff0c;Tkinter中则通过Bind来绑定事件。例如 import tkinter as tkroot tk.Tk() txt tk.StringVar() btn tk.Button(root, textvariabletxt, width30, height5) btn.pack()btn.bind(&…

RS485三线制和两线制差别

RS-485是一种应用十分广泛的通信协议。其显著特点是信号采用“差分”的方式传输&#xff0c;因此抗干扰能力很强&#xff0c;通信距离也比RS-232远得多。RS-485通信一般是半双工的&#xff0c;仅需要2根信号线&#xff0c;也可以是全双工的&#xff0c;需要4根信号线。如何解读…