Spring Boot 学习(2)——HelloWorld

news2024/11/17 8:49:34

       HelloWorld!全宇宙码农的第一个(行)程序(代码)。

       1、创建项目

       打开idea,新建一个maven项目。

       1)选择项目sdk(本例是1.8)
       2)输入GroupId(com.域名,如:com.seraph)
       3)输入AftifactId(本例:spring-boot-01-helloworld)
       4)输入Version(默认的可以不修改)
       5)输入项目名称(本例:spring-boot-01-helloworld)
       6)选择项目储存位置

       项目创建完成,进入idea界面,右下角有提示:maven项目需要导入。点击“Enable Auto-Import”(允许自动导入)。

        打开左侧项目管理器

       2、导入依赖      

       默认打开的文件是pom.xml,添加依赖,如下:

    <!--添加依赖-->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.9.RELEASE</version>
    </parent>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>

    <!--打包插件,将应用打包成一个可执行的jar包,目标服务器上不需要安装tomcat环境-->
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

       3、编写主程序

       编写主程序用以启动Spring boot 应用

       项目管理器的java文件夹上右击,新建一个类

        Name:“com.seraph.HelloWorldMainApplication”

       “com.seraph”是包名,会自动新建一个名称为“com.seraph”目录,并在这个目录中创建一个名为“HelloWorldMainApplication”的文件。

       打开刚才新建的文件,默认如下:

package com.seraph;

public class HelloWorldMainApplication {
}

        编辑代码如下,并保存:

package com.seraph;

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

// 标注主程序类
@SpringBootApplication
public class HelloWorldMainApplication {
    // main 方法是程序的入口点。它定义了程序启动时的行为。
    public static void main(String[] args){
        // 启动Spring应用
        SpringApplication.run(HelloWorldMainApplication.class,args);
    }
}

        4、编写业务逻辑

       如:Controller、Service等

        在com.seraph包上右击,新建一个类文件,如下:

       Name:“controller.HelloController”

       “controller”是包名,会在“com.seraph”下自动新建一个名称为“com.seraph”目录,并在这个目录中创建一个名为“HelloController”的文件。

       编辑代码如下,并保存:

package com.seraph.controller;

import org.springframework.boot.SpringBootVersion;
import org.springframework.core.SpringVersion;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

// 这个类会被 Spring 框架识别为一个控制器,并且 Spring 会自动处理与这个类相关的 HTTP 请求。
// @Controller 注解通常与 @RequestMapping 注解一起使用,用于映射 HTTP 请求到特定的控制器方法。
@Controller
public class HelloController {
    // 将返回结果输出给浏览器
    // @ResponseBody 注解是一个用于标记方法返回值的注解。当一个方法被标记为 @ResponseBody 时,
    // Spring 框架会将其返回值转换为 HTTP 响应体(response body),并将其发送回客户端。
    @ResponseBody
    // 接收浏览器的 hello请求
    // @RequestMapping 注解是一个用于映射 HTTP 请求到特定处理方法的注解。
    // 这个注解通常用于控制器类中的方法上,以指定哪些 HTTP 请求应该被该方法处理。
    //@RequestMapping 注解可以接受多种参数,包括请求的路径、HTTP 方法(如 GET、POST、PUT、DELETE 等)、
    // 请求的参数、请求的头部信息等。通过这些参数,您可以定义请求映射的详细规则。
    @RequestMapping("/hello")
    public String hello(){
        return "Hello world!"+"<br>"+ SpringBootVersion.getVersion()+"<br>"+ SpringVersion.getVersion();
    }
}

        5、测试运行

       主程序文件上如图操作,或使用快捷键 ctrl+shift+F10

       或右上角如图操作

       控制台输出结果如下:

       最后一行提示如所示: Started HelloWorldMainApplication in 2.302 seconds (JVM running for 4.415) 即表示成功。

       打开localhost:8080/hello,返回结果如下:

       这是因为我们在处理业务逻辑时返回的内容为:

"Hello world!"+"<br>"+ SpringBootVersion.getVersion()+"<br>"+ SpringVersion.getVersion();

        所以在浏览器中显示内容为:Hello world + springboot版本号 + spring 版本号

       6、打包发布

       将刚才的内容打成一个可执行的jar包,即服务器上不需要tomcat环境也能正常使用。

       操作如下:(因为前面在pom中已经添加了构建所需的依赖,直接进行操作即可)

       1)idea窗口左下角点击

       2)窗口右边显示侧边工作栏(前后对比如图)

       3)打包

       项目名称 》lifecycle 》package,双击或右击选择“Run maven Build”

       看到如下提示(反色部分)即表示打包成功

         4)测试运行

       如图操作,复制路径

            右上角或左下角,停止运行

       打开cmd,输入java -jar D:\wj\spring-boot-01-helloworld\target\spring-boot-01-helloworld-1.0-SNAPSHOT.jar,回车

       如图提示即表示成功,访问 http://localhost:8080/hello ,浏览器输出结果同前。

       Hello SpringBoot!

      

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

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

相关文章

TCP的十个重要的机制

注&#xff1a;TCP不是只有十个机制 TCP 可靠传输是tcp最为重要的核心&#xff08;初心&#xff09; 可靠传输&#xff0c;并不是发送方把数据能够100%的传输给接收方 而是退而求其次 让发送方发送出去数据之后&#xff0c;能够知道接收方是否收到数据。 一但发现对方没有…

智慧公厕:提升城市公卫管理效率与环境舒适度的利器

公厕作为城市基础设施的重要组成部分&#xff0c;一直以来备受市民们的关注与诟病。然而&#xff0c;随着科技的发展和城市智慧化进程的推进&#xff0c;智慧公厕作为一种集成了物联网等技术的创新型公厕逐渐走入人们的视野。智慧公厕不仅实现了信息化、数字化和智慧化&#xf…

基于STC12C5A60S2系列1T 8051单片机的带字库液晶显示器LCD12864数据传输并行模式显示自定义字符应用

基于STC12C5A60S2系列1T 8051单片机的带字库液晶显示器LCD12864显示自定义字符应用 STC12C5A60S2系列1T 8051单片机管脚图STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式及配置STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式介绍液晶显示器LCD12864简单介绍一、LCD…

WordPress 6.5 “里贾纳”已经发布

WordPress 6.5 “里贾纳”已经发布&#xff0c;其灵感来自著名爵士小提琴家Regina Carter的多才多艺。雷吉娜是一位屡获殊荣的艺术家和著名的爵士乐教育家&#xff0c;以超越流派而闻名&#xff0c;她在古典音乐方面的技术基础和对爵士乐的深刻理解为她赢得了大胆超越小提琴所能…

备战蓝桥杯--数论与搜索刷题2

话不多说&#xff0c;直接看题&#xff1a; 1.辗转相减法 我们不妨假设原等比数列a,a*(q/p),a*(q/p)^2.... 那么x1,,,,xn就是其中的n项&#xff0c;xi/x1(q/p)^b&#xff0c;假设最大比例为(q/p)^k&#xff0c;&#xff0c;那么一定有(q/p)^(k*s)(q/p)^b&#xff0c;即k是b的…

通用分布式锁组件

通用分布式锁组件 1 Redisson1.1介绍1.2 快速了解1.3 项目集成 2 定义通用分布式锁组件2.1 实现思路分析2.2 定义注解2.3 定义切面2.4 使用锁2.5.工厂模式切换锁类型2.5.1 锁类型枚举2.5.2 锁对象工厂2.5.3 改造切面代码 2.6 锁失败策略2.6.1 策略分析2.6.2 策略实现 2.7 基于S…

程序员们应注意的行业特有的法律问题

大家好&#xff0c;我是不会魔法的兔子&#xff0c;是一枚执业律师&#xff0c;持续分享技术类行业项目风险及预防的问题。 一直以来兔子都在以大家做项目时候会遇到的风险问题做分享&#xff0c;最近有个念头一直挥之不去&#xff0c;就是要不要给我们广大的程序员们也分享一…

从头开发一个RISC-V的操作系统(二)RISC-V 指令集架构介绍

文章目录 前提ISA的基本介绍ISA是什么CISC vs RISCISA的宽度 RISC-V指令集RISC-V ISA的命名规范模块化的ISA通用寄存器Hart特权级别内存管理与保护异常和中断 目标&#xff1a;通过这一个系列课程的学习&#xff0c;开发出一个简易的在RISC-V指令集架构上运行的操作系统。 前提…

探索设计模式的魅力:揭秘B/S模式在AI大模型时代的蜕变与进化

​&#x1f308; 个人主页&#xff1a;danci_ &#x1f525; 系列专栏&#xff1a;《设计模式》《MYSQL应用》 &#x1f4aa;&#x1f3fb; 制定明确可量化的目标&#xff0c;坚持默默的做事。 &#x1f680; 转载自热榜文章&#xff1a;探索设计模式的魅力&#xff1a;揭秘B/S…

Gateway是什么?(SpringCloudAlibaba组件)

1、网关介绍 **网关(Gateway)又称网间连接器、协议转换器。网关在传输层上以实现网络互连&#xff0c;是最复杂的网络互连设备&#xff0c;仅用于两个高层协议不同的网络互连。**网关的结构也和路由器类似&#xff0c;不同的是互连层。网关既可以用于广域网互连&#xff0c;也可…

Springboot的日期类格式化

JsonFormat(pattern "yyyy-MM-dd HH:mm:ss", timezone "UTC") 这里是将UTC的时间进行格式化&#xff0c;效果如下&#xff1a; 可以发现DetectDate是detectDate的变种&#xff0c;因为detectDate是UTC时间&#xff0c;而DetectDate是被格式化得到的时间…

Redis 全景图(3)--- Redis 应用于缓存

前言 这是关于 Redis 全景图的最后一篇文章。因为一次写太多会限流&#xff0c;我也是没办法&#xff0c;才分成三篇文章来写。这篇文章是关于 Redis 应用于缓存的。 其实为什么要讲这个话题呢&#xff1f; Redis 应用在很多地方呀&#xff0c;为什么一定要挑着这个话题来讲呢…

【YOLOV5 入门】——构建自己的数据集模型训练模型检验

一、准备工作 1、数据收集 图片类型数据不用多说&#xff1b;视频类型数据利用opencv进行抽帧保存为一张张图片&#xff0c;这里选取30s的名侦探柯南片段进行试验&#xff0c;确保环境解释器下安装了opencv&#xff08;我使用的是另一个虚拟环境&#xff09;&#xff1a; im…

银行数字化转型导师坚鹏:银行数字化转型给支行带来的8大价值

银行数字化转型给支行带来的8大价值 银行数字化转型对不仅对总行、分行产生了深远影响&#xff0c;给总行、分行带来了新质生产力&#xff0c;对银行支行&#xff08;包括网点&#xff09;也会产生重要价值&#xff0c;银行数字化转型导师坚鹏从以下8个方面进行详细分析&#…

CANoe自带的TCP/IP协议栈中TCP的keep alive机制是如何工作的

TCP keep alive机制我们已经讲过太多次,车内很多控制器的TCP keep alive机制相信很多开发和测试的人也配置或者测试过。我们今天想知道CANoe软件自带的TCP/IP协议栈中TCP keep alive机制是如何工作的。 首先大家需要知道TCP keep alive的参数有哪些?其实就三个参数:CP_KEEP…

Android Studio学习9——使用Logcat打印日志

在Android开发中&#xff0c;Logcat是一个工具&#xff0c;它允许开发者查看设备或模拟器的日志信息。开发者可以使用Log类来打印日志信息&#xff0c;这对于调试和错误排查非常有帮助。 v 或 verbose: 最低等级&#xff0c;显示所有消息。d 或 debug: 用于调试消息。i 或 info…

2012年认证杯SPSSPRO杯数学建模B题(第二阶段)节能减排全过程文档及程序

2012年认证杯SPSSPRO杯数学建模 节能减排、抑制全球气候变暖 B题 白屋顶计划 原题再现&#xff1a; 第二阶段问题   虽然环境学家对地球环境温度的改变有许多种不同观点&#xff0c;但大多数科学家可以达成一个基本的共识&#xff1a;近年来人类的活动&#xff0c;尤指二氧…

upload-labs训练平台

GitHub&#xff1a;GitHub - Tj1ngwe1/upload-labs: 一个帮你总结所有类型的上传漏洞的靶场 把下好的文件夹之间拖入到小皮的WWW目录下就可以之间访问网址使用了 目录 Pass-01(前端JS的绕过) (1)抓包绕过 (2)在前端绕过 Pass-02&#xff08;content-type绕过&#xff09;…

指针变量的类型

1.为什么指针变量要要求类型 当指针变量的类型跟存放的地址变量的类型不匹配时&#xff0c;当值变化时&#xff0c;地址增量也不同 #include <stdio.h> int main() {int a 0x1234;int *p&a;char *c&a;printf("p %p\n",p);printf("c %p\n"…

微软邮箱被锁住,该如何解除限制?

ChatGPT账号是微软邮箱注册的&#xff0c;我们在登陆微软邮箱时&#xff0c;http://www.outlook.com&#xff0c;不需要开魔法工具&#xff0c;直接就可以登陆&#xff0c;否则会出现安全验证&#xff0c;限制登陆。 那么如果账号被锁&#xff0c;我们该如何解除限制呢&#x…