springboot 创建第一个项目

news2024/11/27 10:32:07

创建springboot项目的方式有很多,一般通过IDEA直接创建。

参考:创建SpringBoot项目的四种方式 - Linqylin - 博客园

代码结构:

 

代码示例:

创建项目的时候导入了web依赖。

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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <!--有一个父项目-->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <!--<version>3.0.0</version> - 要求jdk17以上,故减低版本-->
        <version>2.7.5</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <!--项目元数据信息,也就是Maven项目的基本元素-->
    <!--坐标:g 、 a 、v,后面两个不用也行-->
    <groupId>com.example</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>
        <!--web依赖:tomcat、dispatcherServlet.xml .....-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <!--共性:-->
        <!--spring-boot-starter: 所有的springboot依赖都是使用这个开头的-->

        <!--单元测试(用Junit也是可以的)-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <!-- build —— 打jar包插件的-->
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

打jar包的方式:

右侧——>Maven :  双击package 即可打jar包。

 启动项 : ——   DemoApplication 

package com.example.demo;

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

// 本身就是Spring的一个组件

// 程序的主入口
@SpringBootApplication
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}

测试类:DemoApplicationTests

package com.example.demo;

import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
class DemoApplicationTests {

    @Test
    void contextLoads() {
    }
}

controller文件夹下的 HelloController 类:

package com.example.demo.controller;

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

/**
 * springboot的核心原理:自动装配!!! ——  用起来就非常简单了
 */

//@Controller
// 为了让它是一个返回字符串,改为:
@RestController
public class HelloController {

    // 这就是一个接口:http://localhost:8080/hello
    @RequestMapping("/hello")
    public String hello(){
        // 调用业务,接收前端的参数
        return "Hello,World!";
    }
}

上面还有一种写法(见下面)。

再创建一个java项目:

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 https://maven.apache.org/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.7.6</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <groupId>com.zhoulz</groupId>
    <artifactId>springboot-01-helloworld</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>springboot-01-helloworld</name>
    <description>zhoulz first springboot project</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <!--启动器-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <!--<version>2.0.1.RELEASE</version> 版本号可以不要,它会继承父依赖的-->
        </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>

controller文件夹下的 HelloController 类:

(区别于上面的第二种写法)

package com.zhoulz.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

/**
 * @auther zhoulz
 * @description: com.zhoulz
 */

// 修改代码要重启项目,或者不重启也可以,通过“热部署”的方式(需要(创建项目时)导入相关依赖)

@Controller
@RequestMapping("/hello")
public class HelloController {
    @GetMapping("/hello")
    @ResponseBody
    public String hello(){
        return "Hello,zhoulz!";
    }
}

resources文件夹下:

application.properties文件:

如何更改项目的端口号?

# 更改项目的端口号
server.port=8081
# 更改banner - 图标? —— 见resources文件夹下的banner.txt文件

如何更改banner?

:在resources下新建banner.txt文件,放入自己定义的图标。

有 springboot banner在线生成网站 :https://www.bootschool.net/ascii-art

banner.txt文件:

 ████        █████        ████████     █████ █████  
░░███      ███░░░███     ███░░░░███   ░░███ ░░███   
 ░███     ███   ░░███   ░░░    ░███    ░███  ░███ █ 
 ░███    ░███    ░███      ███████     ░███████████ 
 ░███    ░███    ░███     ███░░░░      ░░░░░░░███░█ 
 ░███    ░░███   ███     ███      █          ░███░  
 █████    ░░░█████░     ░██████████          █████  
░░░░░       ░░░░░░      ░░░░░░░░░░          ░░░░░   
                                                    
                         大吉大利            永无BUG  

重新启动服务即可。

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

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

相关文章

Marvell交换机芯片SMI接口读写协议

Marvell的88E6XXX系列交换机芯片基本都提供SMI&#xff08;Serial Management Interface&#xff09;接口。 SMI接口使用2线串行通信&#xff0c;一个MDC提供时钟&#xff0c;一个MDIO为双向数据引脚。 外部CPU通过这2个引脚访问芯片内部的寄存器。 SMI接口的通信时序如图所示&…

【Python】Gamma分布详解

文章目录初步介绍形状特征初步介绍 在学习Gamma分布之前&#xff0c;有必要复习一下Poisson分布&#xff1a;泊松分布 Poisson分布指的是&#xff0c;单个事件在某一刻发生的概率。Gamma分布更进一步&#xff0c;指的是某个事件在某个时刻发生第nnn次的概率。 p(x)xk−1e−λ…

PowerDesigner 模型类型介绍

目录 PowerDesigner 提供了两种方式组织模型 分别是Categories和Model types 1.Categories方式是从企业架构建模角度出发&#xff0c;主要包含业务层&#xff0c;信息层&#xff0c;应用层&#xff0c;技术层&#xff0c;需求与规划层 1.1 业务层主要用于业务流程&#xff0c…

python游戏开发的库你知道几个?

对这方面有兴趣的朋友可以去学习学习。 01 PyGame 官网&#xff1a; Pygame Front Page — pygame v2.1.4 documentation 概述&#xff1a; Pygame 是一组专为编写视频游戏而设计的 Python 模块。 它在优秀的 SDL 库之上添加了功能。这允许您使用 python 语言创建功能齐全…

MyBatisPlus框架:一文带你清晰整个MP框架逻辑

MyBatisPlus框架&#xff1a;一文带你清晰整个MP框架逻辑需求&#xff1a;如果搭建一个SpringBootMP的基本框架&#xff1f;并入门其API使用MP入门简介工程环境搭建数据库配置依赖Yaml框架流程简单介绍下MP的底层运行过程常用APIMP日志配置主键生成策略自动填充处理扩展插件MP乐…

allegro中添加logo (方法二)

allegro中添加logo &#xff08;方法二&#xff09;1、 先制作好bmp格式的文件2、 Allegro中新建一个format symbol文件3、 导入IPF文件4、 方法对比软件环境&#xff1a;cadence 16.6前言&#xff1a;很多时候我们在设计pcb的时候都会在pcb上添加自己产品的logo&#xff0c;现…

Python《字符,符号,函数,索引》

函数描述len()计算序列的长度max()找出序列中的最大元素min()找出序列中的最小元素list()将序列转换为列表str()将序列转换为字符串sum()计算元素的和sorted()对元素进行排序enumerate()将序列组合为一个索引序列&#xff0c;多用在 for 循环中 关键字 andexecnotassertfinall…

Linux网络编程(二)——socket通信基础

目录 一、socket 二、字节序 &#xff08;一&#xff09;字节序转换函数 三、Socket地址 &#xff08;一&#xff09;通用socket地址 &#xff08;二&#xff09;专用socket地址 四、IP地址转换 五、TCP通信流程 &#xff08;一&#xff09;TCP和UDP的区别 &#xff…

深入浅出RPC

什么是RPC 为什么要有RPC PRC架构组件 RPC框架需要解决的问题&#xff1f; 1、如何确定客户端和服务端之间的通信协议&#xff1f; 2、如何更高效地进行网络通信&#xff1f; 3、服务端提供的服务如何暴露给客户端&#xff1f; 4、客户端如何发现这些暴露的服务&#xff1f; 5…

云存储学习笔记--3

目录前言1. 原理2. 实验前言 那么&#xff0c;根据我们上一版块的解释&#xff0c;其实经过思考会发现&#xff0c;传统的分区格式化会有一些问题&#xff0c;比如说&#xff1a;当我数据的存储大小超过了所有单个磁盘的存储空间大小的时候&#xff0c;会发现即使剩余空间总和…

论文复现-1论文重读:Black-Box Tuning for Language-Model-as-a-Service

论文核心&#xff1a;使用PLM的API进而完成prompt learning&#xff0c;微调完成任务。 具体来说&#xff0c;是采用连续prompts拼接在input_text之后&#xff0c;然后&#xff0c;通过derivative-free的框架&#xff0c;完成任务。 一、背景&#xff08;Introduction&#x…

门店数字化管理|门店督导工作监管难?SpaceSight 来帮忙

在门店管理中&#xff0c;这些问题是否一直困扰着你&#xff1a; 哪家店员工作更细致高效&#xff1f;难评估&#xff01; 有哪些门店问题高频发生&#xff1f;难发现&#xff01; 不同门店运营差距有多大&#xff1f;难界定&#xff01; SpaceSight 系列第二篇&#xff0c;为…

看看阿里程序员是怎样讲限流的

限流算法很多,常见的有三类,分别是计数器算法、漏桶算法、令牌桶算法,下面逐一讲解。 计数器算法 简单粗暴,比如指定线程池大小&#xff0c;指定数据库连接池大小、nginx连接数等,这都属于计数器算法。 计数器算法是限流算法里最简单也是最容易实现的一种算法。举个例子,比如…

YOLO系列目标检测算法——PP-YOLOv2

YOLO系列目标检测算法目录 - 文章链接 YOLO系列目标检测算法总结对比- 文章链接 YOLOv1- 文章链接 YOLOv2- 文章链接 YOLOv3- 文章链接 YOLOv4- 文章链接 Scaled-YOLOv4- 文章链接 YOLOv5- 文章链接 YOLOv6- 文章链接 YOLOv7- 文章链接 PP-YOLO- 文章链接 …

>python可视化神器altair

python可视化神器一.些简单图形的绘制(一).柱状图1. 然后我们还可以设置高亮柱状图的某一根柱子&#xff0c;其他柱子设置为一样的颜色&#xff1a;2. 翻转图片&#xff0c;同时添加图片标注&#xff0c;在图上加上数据3.在图形上添加线条4. 组合图&#xff0c;柱状图折线图(二…

[R语言]手把手教你如何绘图(万字)

目录 概况 常用高级图形 条形图 csv文件导入 csv文件导出 R语言sep函数 seq函数 with函数 直方图和密度估计图 盒型图 boxplot() 正态QQ图 散点图 pairs()散点矩阵图 曲线图 curve() 三维图 动态三维图 低级图形函数 abline() lines() legand()增加图例 …

String类——字符序列类(1)

目录 前言 String类 1.该类的由来 2.String类对象的创建 &#xff08;1&#xff09;头文件 &#xff08;2&#xff09;类对象的创建 其他用法&#xff1a; &#xff08;3&#xff09;String类对象遍历 1&#xff1a;数组方式遍历 2.范围for遍历&#xff1a; …

【Python】【期末复习题】【2022秋】

文章目录一、单选题&#xff08;20分&#xff09;二、判断题&#xff08;10分&#xff09;三、填空题&#xff08;10分&#xff09;四、问答题&#xff08;共30分&#xff0c;6题&#xff0c;每题5分&#xff09;五、程序题&#xff08;3题&#xff0c;每题10分&#xff0c;共3…

React.js 简介以及一些基本概念

React 是什么 React 跟angular.js 和Vue.js 一样是构建用户界面的js库 2011 年 由Facebook 工程师Jordan Walke创建 在 2013 开源 React 的优势 原生js的痛点 原生的Javascript 操作DOM繁琐&#xff0c;效率低(DOM-API 操作UI&#xff09;使用Javascript 直接操作DOM&#xf…

scala语法(三)(有java基础速学)

面向对象编程&#xff08;中&#xff09; scala的包 Scala中包名和源码所在的系统文件目录结构要可以不一致&#xff0c;但是编译后的字节码文件路径和包名会保持一致 scala 自动引入的包 Scala中&#xff0c;以下三个包的内容会隐式引用到每个程序上。 import java.lang._…