Maven项目转为SpringBoot项目

Maven项目转为SpringBoot项目

  • 前言
  • 创建一个maven项目前的软件的一些通用设置
    • Maven仓库的设置
    • 其他的设置
      • 字符编码
      • 编译器
      • 注解支持
  • 创建的Maven项目
  • 修改为Spring Boot项目
    • 修改pom.xml文件
    • 修改启动类-Main
      • 新建WAR包所需的类
    • 添加核心配置文件
  • 测试的控制器
  • 最后整个项目的目录结构![在这里插入图片描述](https://img-blog.csdnimg.cn/e05a66d79f5541e1b601478407322d93.png)
  • 测试

前言

听起来有点奇怪,但其实并不奇怪

因为有时候我们不能直接创建的SpringBoot项目,或者觉得自动生成多余的代码太多

那么我们可以先创建Maven项目,然后再自己引入依赖,添加一些文件,使之成为一个可用的SpringBoot项目了

创建一个maven项目前的软件的一些通用设置

先关闭项目,回到软件的初始界面,进入到设置中,如下所示
在这里插入图片描述
以下的设置修改后记得点击右下角的apply!!!!! 一定要记得!不然不会生效!

Maven仓库的设置

在这里插入图片描述

修改项目的maven仓库信息为指定仓库,否则每次创建的项目都会是默认的.m2仓库

其他的设置

字符编码

在这里插入图片描述

编译器

设置全局自动编译
在这里插入图片描述
设置编译器的版本 安装的哪个选哪个 我这里安装的时Java11
在这里插入图片描述

注解支持

部分插件可能需要注解支持
在这里插入图片描述

创建的Maven项目

新建项目,直接创建出一个Maven项目即可,基本就只有两个文件一个Main.java
在这里插入图片描述
一个pom.xml
在这里插入图片描述

修改为Spring Boot项目

修改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">
<!--    Maven的版本-->
    <modelVersion>4.0.0</modelVersion>
<!--    打包方式指定为war包-->
    <packaging>war</packaging>


    <!--    项目的一些基本信息-->
    <groupId>org.example</groupId>
    <artifactId>NocosProjectResgister</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
<!--        项目的源代码的Java版本-->
        <maven.compiler.source>11</maven.compiler.source>
<!--        项目编译生成的字节码的目标Java版本-->
        <maven.compiler.target>11</maven.compiler.target>
<!--        项目的源代码文件的字符编码-->
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
    
    <dependencies>
<!--        引入spring boot-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.2.2</version>
        </dependency>
    </dependencies>

<!--    定义项目的构建配置,包括编译、打包、测试、部署等方面-->
    <build>
        <resources>
            <!--			构建项目过程中被复制到输出目录中,以便它们可以在应用程序运行时访问-->
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <!--					项目内mybatis的dao配置文件-->
                    <include>**/*.xml</include>
                </includes>
            </resource>

            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <!--					资源文件-->
                    <include>**/*.*</include>
                </includes>
            </resource>
        </resources>

        <plugins>
            <!--			spring-boot中用于支持maven打包的插件-->
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
<!--        打包出来的名称 一般是项目的缩写外加版本号 -->
        <finalName>npr</finalName>
    </build>

</project>

修改完成以后 记得更新下依赖 点软件的右上角的那个更新图标
应该每次修改完pom文件,右上角都会出现那个小图标
在这里插入图片描述

修改启动类-Main

这里主要是加一下@SpringBootApplication注解 标识为应用程序入口 然后在main方法中启动程序

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

//标识为一个SpringBoot的应用
@SpringBootApplication
public class Main {
    public static void main(String[] args) {
        //启动应用
        SpringApplication.run(Main.class);
    }
}

新建WAR包所需的类

新建ServletInitializer类,层级结构如下
在这里插入图片描述
这是为了部署到外部的Servlet容器时,用于初始化Servlet容器(内置的不需要)

import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
//servlet容器的初始化 打包成war包必须
public class ServletInitializer extends SpringBootServletInitializer {
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(Main.class);
    }
}

添加核心配置文件

resource目录下创建application.yml文件,该文件为Spring Boot项目的核心配置文件
在这里插入图片描述
以下为其内容、

#嵌入式web服务器的配置信息
server:
  #程序所用端口为9000
  port: 9000
  tomcat:
    #Tomcat容器的URI编码 确保能够正确解析包含非ASCII字符的URL
    uri-encoding: UTF-8

测试的控制器

新建一个控制器HellController,用于在程序启动后用于测试,是否可以正常运行

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

@RestController
public class HellController {
    @RequestMapping(value = "/hello" , method = RequestMethod.GET)
    public String hello() {
        return "Hello, World!";
    }
}

最后整个项目的目录结构在这里插入图片描述

测试

启动应用,在浏览器输入http://localhost:9000/hello 有以下显示视为成功
在这里插入图片描述
至此一个简单的Spring Boot项目配置完成

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Ragnar-lothbrok 靶机

Ragnar-lothbrok 信息搜集 存活检测 详细扫描 后台网页扫描 网站信息搜集 secret “秘密”网页 将密文保存到 password.txt 此页面使用了 wordpress CMS 疑似用户 ragnar wpscan 也爆破出了用户 ragnar wpscan --url http://10.4.7.155/wordpress/ --enumerate u 密码获…

Linux 开机启动一条PHP命令

当你开机的时候要自动的启动一条PHP命令场景&#xff1a;比如webman 你需要手动启动项目进程 你可以这样操作 流程&#xff1a; 1、准备好你要执行的命令 2、将命令写入一个服务文件 3、开机自启这个服务 实例&#xff1a; 1、比如这个命令 /usr/local/php/bin/php /ho…

Angular-04:指令

① 内置指令1.1 *ngIf 结构指令1.2 [hidden] 属性指令1.3. *ngFor 结构指令1.4 *ngSwitch 结构指令 ② 自定义指令用法 指令是angular操作dom的途径&#xff0c;分为属性指令和结构指令。属性指令&#xff1a;修改元素的外观或行为。使用 [ ] 包裹。结构指令&#xff1a;增加、…

【路径规划】A*算法 Java实现

A*&#xff08;A-Star&#xff09;算法是一种广泛使用的寻路算法&#xff0c;尤其在计算机科学和人工智能领域。 算法思想 通过评估函数来引导搜索过程&#xff0c;从而找到从起始点到目标点的最短路径。评估函数通常包括两部分&#xff1a;一部分是已经走过的实际距离&#x…

漏洞复现-Apache Druid 任意文件读取 _(CVE-2021-36749)

Apache Druid 任意文件读取 _&#xff08;CVE-2021-36749&#xff09; 漏洞信息 Apache Druid Version 0.22以下版本中存在安全漏洞CVE-2021-36749文件读取漏洞 描述 ​ 由于用户指定 HTTP InputSource 没有做出限制&#xff0c;可以通过将文件 URL 传递给 HTTP InputSourc…

网络扫描与网络监听

前言&#xff1a;前文给大家介绍了网络安全相关方面的基础知识体系&#xff0c;以及什么是黑客&#xff0c;本篇文章笔者就给大家带来“黑客攻击五部曲”中的网络扫描和网络监听 目录 黑客攻击五部曲 网络扫描 按扫描策略分类 按照扫描方式分类 被动式策略 系统用户扫描 …

16 用于NOMA IoT网络上行链路安全速率最大化的HAP和UAV协作框架

文章目录 摘要相关模型仿真实验仿真结果 摘要 优化无人机到HAP的信道分配、用户功率和无人机三维位置来研究上行安全传输解决非凸问题&#xff0c;采用K-means聚类算法&#xff0c;将成对的用户划分成不同的组&#xff0c;每个簇可以有相应的无人机服务&#xff0c;然后将构造…

RocksDB基本架构与原理详解

Rocksdb Flink提供基于流的有状态计算&#xff0c;除了提供实时数据流的处理能力&#xff0c;还需要将计算产生的状态存储起来。 为了满足状态存取需求&#xff0c;提供了memory、flie system、rocksdb三种类型的状态存储机制。 memory存取高效单空间有限&#xff0c;且可用…

前端JS for循环内异步接口变成同步提交(JavaScript for循环异步变同步)

遇见的问题&#xff1a; 导入Excel文件的时候&#xff0c;将每行数据整合成一个数组&#xff0c;循环数组插入每一条数据&#xff0c;插入数据后要判断是否插入成功&#xff0c;如果没插入成功的话&#xff0c;停止循环&#xff0c;不再插入后面的数据。甚至插入数据后&#xf…

elementui时间日期组件右边自定义图标

效果 改为 首先是将左边的清除图标关闭 然后是将右边的图标设置为display&#xff1a;none,设置宽度&#xff0c;左右内边距 最后是 mounted() {/*思路&#xff1a;通过document文档&#xff0c;选中日期时间选择器元素&#xff0c;然后创建一个i标签&#xff0c;并指定其类…

SOLIDWORKS® 2024 新功能 - SIMULATION

1、增强型轴承接头 • 通过指定压缩、拉伸和弯曲的刚度&#xff0c;轻松创建自定义轴承接头。 • 通过向非线性和大型位移算例添加自定义条件&#xff0c;提高模拟精度。 优点 使用功能强大的接口&#xff0c;更轻松、更准确地设置模拟过程&#xff0c;并加快模拟速度。 2、…

【计数DP】CF1794D

Problem - D - Codeforces 题意 思路 解法大方向对了&#xff0c;但是还是不会做&#xff0c;原因是组合数不知道怎么求 首先需要注意到一些东西&#xff1a; 1.底数一定是质数 2.质数个数 < n 一定无解 3.哪些质数作为底数是不确定的 4.n < 2022 那么我们其实可…

CentOS 7设置固定IP地址

当我们安装了一个虚拟机或者装了一个系统的时候&#xff0c;经常会遇到需要设置固定ip的情况&#xff0c;本文就以Centos 7为例&#xff0c;讲述如何修改固定IP地址。 1、用ifconfig命令查看使用的网卡 如上图所示&#xff0c;我们就会看到我们目前使用的网卡名称 2、编辑网卡…

“数聚瑞安·创新未来”中国·瑞安第四届创新创业大赛圆满举办!

10月26日&#xff0c;“数聚瑞安 创新未来”中国瑞安第四届创新创业大赛决赛在瑞安东新科创园举行。本次大赛旨在挖掘优质的创新创业项目激活本地创新创业氛围&#xff0c;激发创新创业活力&#xff0c;数字科创赛道吸引了来自全国20多个省市自治区的50多个城市的100多家企业和…

Linux系统下的文件系统、各文件系统下目录结构及作用

要利用任何Linux系统,你需要对Linux的文件和目录(也称文件夹)了解。 Linux shell命令行中,文件和目录不是直观看见。需要使用:cd、ls、pwd等shell命令在目录之间切换。 Linux文件被收集到目录中,目录形成一个层级或树状结构: 一个目录可能包含其他目录,这些目录被称为子…

TCP通信实战案例-即时通信

即时通信是什么含义&#xff0c;要实现怎么样的设计&#xff1f; 即时通信&#xff0c;是指一个客户端的消息发出去&#xff0c;其他客户端可以接收到。 即时通信需要进行端口转发的设计思想。 服务端需要把在线的Socket管道存储起来。 一旦收到一个消息要推送给其他管道。…

CentOS 7.9.2009 数据盘挂载

一、linux版本&#xff1a; lsb_release -a 二、操作步骤 2.1&#xff0c;查看磁盘挂载情况&#xff0c;确认sdb是需挂载的硬盘 ## 查看磁盘挂载情况&#xff0c;确认sdb是需挂载的硬盘 lsblk 2.2&#xff0c;对硬盘sdb进行分区 ## 对硬盘sdb进行分区 fdisk /dev/sdb# 命令…

JVM进阶(2)

一)方法区: java虚拟机中有一个方法区&#xff0c;该区域被所有的java线程都是共享&#xff0c;虚拟机一启动&#xff0c;运行时数据区就被开辟好了&#xff0c;官网上说了方法区可以不压缩还可以不进行GC&#xff0c;JAVA虚拟机就相当于是接口&#xff0c;具体的HotSpot就是虚…

iPhone手机屏幕分辨率

ios app测试时&#xff0c;需要测试应用在不同型号的苹果手机上的表现形式&#xff0c;可以自己在浏览器上配置。 代数设备逻辑像素尺寸缩放发布时间第一代iPhone 2G320 x 480480 x 3203.5寸1x2007年6月29日第二代iPhone 3320 x 480480 x 3203.5寸1x2008年7月11日第三代iPhone …

OpenText 安全取证软件——降低成本和风险的同时,简化电子取证流程

OpenText 安全取证软件&#xff0c;行业标准的数字调查解决方案&#xff0c;适用于各种规模和各种行业的组织 降低成本和复杂性 • 远程调查比轮流调查过程更有效 对结果持有信心 • 磁盘级可见性可以完成相关端点数据的搜索和收集 谨慎调查 • 完整的网络调查&#xf…