SpringBoot——入门案例之“Hello SpringBoot“-程序员宅基地

技术标签: spring boot  java  后端  # 【SpringBoot】  

文章目录:

1.初识SpringBoot

1.1 SpringBoot的特性 

1.2 SpringBoot四大核心 

2.第一个SpringBoot项目 

2.1 创建一个Module ,选择类型为 Spring Initializr 快速构建

2.2 项目结构

2.3 pom.xml文件中的内容 

2.4 SpringBoot项目启动入口类

2.5 控制器类

2.6 SpringBoot核心配置文件

2.7 测试结果


1.初识SpringBoot

Spring Boot 是 Spring 家族中的一个全新的框架,它用来简化 Spring 应用程序的创建和开发过程,也可以说 Spring Boot 能简化我们之前采用 SpringMVC + Spring + MyBatis 框架进行开发的过程。

在以往我们采用 SpringMVC + Spring + MyBatis 框架进行开发的时候,搭建和整合三大框架,我们需要做很多工作,比如配置 web.xml,配置 Spring,配置 MyBatis,并将它们整合在一起等,而 Spring Boot 框架对此开发过程进行了革命性的颠覆,完全抛弃了繁琐的 xml 配置过程,采用大量的默认配置简化我们的开发过程。

所以采用 Spring Boot 可以非常容易和快速地创建基于 Spring 框架的应用程序,它让编码变简单了,配置变简单了,部署变简单了,监控变简单了。正因为 Spring Boot 它化繁为简,让开发变得极其简单和快速,所以在业界备受关注。

1.1 SpringBoot的特性 

  • 能够快速创建基于 Spring 的应用程序。
  • 能够直接使用 java main 方法启动内嵌的 Tomcat 服务器运行 Spring Boot 程序,不需要部署 war 包文件。
  • 提供约定的 starter POM 来简化 Maven 配置,让 Maven 的配置变得简单。
  • 自动化配置,根据项目的 Maven 依赖配置,Spring boot 自动配置 Spring、Spring mvc等。
  • 提供了程序的健康检查等功能。
  • 基本可以完全不使用 XML 配置文件,采用注解配置。

1.2 SpringBoot四大核心 

  • 自动配置
  • 起步依赖
  • Actuator
  • 命令行界面 

2.第一个SpringBoot项目 

2.1 创建一个Module ,选择类型为 Spring Initializr 快速构建

2.2 项目结构

controller包是我后来新建的,springboot的核心配置文件本来应该是 application.properties,我把这个删了,新建的 application.yml。

static:存放静态资源,如图片、CSS、JavaScript 等。

templates:存放 Web 页面的模板文件。

application.properties / application.yml:用于存放程序的各种依赖模块的配置信息,比如 服务端口,数据库连接配置等。

2.3 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>

    <!-- springboot父工程的gav坐标 -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.4.4</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <!-- 当前项目的gav坐标 -->
    <groupId>com.songzihao.springboot</groupId>
    <artifactId>001-springboot-first</artifactId>
    <version>1.0.0</version>

    <properties>
        <java.version>11</java.version>
    </properties>

    <dependencies>
        <!-- SpringBoot框架web项目起步依赖 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <!-- SpringBoot框架测试起步依赖 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <!-- SpringBoot项目打包编译的插件 -->
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>2.4.4</version>
            </plugin>
        </plugins>
    </build>

</project>

2.4 SpringBoot项目启动入口类

package com.songzihao.springboot;

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

//SpringBoot项目启动入口类
//SpringBoot核心注解,主要用于开启Spring自动配置
@SpringBootApplication
public class Application {

    //SpringBoot项目代码必须放到Application类所在的同级目录或下级目录

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

}

2.5 控制器类

package com.songzihao.springboot.controller;

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

/**
 *
 */
@Controller
public class IndexController {

    @RequestMapping(value = "/say")
    @ResponseBody
    public Object say(String message) {
        return "Say: Hello " + message;
    }
}

2.6 SpringBoot核心配置文件

设置一下内嵌Tomcat的端口号为 8081,以及项目的上下文根为 /springboot。 

server:
  port: 8081
  servlet:
    context-path: /springboot

2.7 测试结果

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_43823808/article/details/115694020

智能推荐

数据的四种基本存储方法_数据存储-程序员宅基地

文章浏览阅读2.5k次。数据的四种基本存储方法,(1)顺序存储方法(2)链接存储方法(3)索引存储方法(4)散列存储方法_数据存储

Mysql启用SSL以及JDBC连接Mysql配置_jdbc mysql ssl-程序员宅基地

文章浏览阅读6.7k次。一、Mysql启用SSL配置1.检查mysql是否支持ssl在linux端用root账号进入mysql命令行界面,查看当前版本mysql数据库是否支持ssl,如果出现以下结果表示支持,如果没有考虑更换版本,或者编译一个带有SSL版本的mysqlshell>show variables like ‘%ssl%’;2.设置用户是否使用ssl连接1.查看用户是否使用SSL连接she..._jdbc mysql ssl

java jwt使用,springboot 整合java-jwt,java jwt工具类-程序员宅基地

文章浏览阅读612次。java jwt使用,springboot 整合java-jwt,java jwt工具类================================Copyright 蕃薯耀2020-12-03https://www.cnblogs.com/fanshuyao/一、引入java-jwt的maven依赖<dependency> <groupId>..._jwtproperties

聊聊 Kafka: 在 Linux 环境上搭建 Kafka,Linux运维未来路在何方-程序员宅基地

文章浏览阅读753次,点赞21次,收藏15次。列出现有主题,创建主题,该主题包含一个分区,该分区为Leader分区,它没有Follower分区副本。启动成功,可以看到控制台输出的最后一行的started状态:此时kafka安装成功。查看zookeeper状态,zookeeper启动成功,再启动kafka。onsole-producer.sh用于生产消息**开启消费者和生产者,生产并消费消息。开启消费者和生产者,生产并消费消息。在Zookeeper中的根节点路径。创建主题,该主题包含多个分区。的地址,此处使用本地启动的。查看指定主题的详细信息。

PTA 数据结构与算法题目集(中文)6-7_pta数据结构6-7-程序员宅基地

文章浏览阅读695次。6-7 在一个数组中实现两个堆栈(20 分)本题要求在一个数组中实现两个堆栈。函数接口定义:Stack CreateStack( int MaxSize );bool Push( Stack S, ElementType X, int Tag );ElementType Pop( Stack S, int Tag );其中Tag是堆栈编号,取1或2;Max_pta数据结构6-7

只要三步!阿里云DLA帮你处理海量JSON数据-程序员宅基地

文章浏览阅读123次。概述 您可能有大量应用程序产生的JSON数据,您可能需要对这些JSON数据进行整理,去除不想要的字段,或者只保留想要的字段,或者仅仅是进行数据查询。 那么,利用阿里云Data Lake Analytics或许是目前能找到的云上最为便捷的达到这一目标的服务了。仅仅需要3步,就可以完成对海量..._什么云服务可以直接存储json数据

随便推点

在anaconda环境中使用conda命令安装cuda、cudnn、tensorflow(-gpu)、pytorch_conda安装cudnn-程序员宅基地

文章浏览阅读9.2w次,点赞109次,收藏364次。conda环境中使用conda命令安装cuda、cudnn、tensorflow(-gpu)、pytorch_conda安装cudnn

2742: 【数据结构】【栈】字符串匹配问题-程序员宅基地

文章浏览阅读346次,点赞6次,收藏8次。字符串中只含有括号 (),[],,{},判断输入的字符串中括号是否匹配。如果括号有互相包含的形式,从内到外必须是,(),[],{},例如。输入: [()] 输出:YES,而输入([]), ([])都应该输出NO。文件的第一行为一个整数n(0

CSS的继承性和层叠式_css继承与层叠-程序员宅基地

文章浏览阅读689次。color、text-开头的、line-开头的,font-开头的这些关于文字样式的,都可以继承;所有的盒子的、定位的、布局属性都不能继承。多个选择器同时作用在同一个元素上时候,看权重,那个高,最后显示那个,优先级从高到低分别是:先比较ID选择器数量,在比较类选择器数量,最后比较标签选择器数量最后显示的绿色,因为ID选择器数量优先级高,所以以2为准了,如果都一样,谁写在后面,谁的生效。如果不能直接选中某个元素权重是0,如通过继承而来的权重是0,开始数权重之前一定要看看是不是真的选中文字所在的最内层的标签,没选_css继承与层叠

二维数组和二级指针传参问题_二维数组传参数用2级指针-程序员宅基地

文章浏览阅读1.9k次,点赞8次,收藏17次。二维数组作为实参,二级指针作为形参part1报错:说我给二级指针传了一个数组指针去,数组指针(指向数组的指针),part2给二级指针传一个数组指针就可以解决了。part3(总结)把指针数组和数组指针好好区别一下!!!指向数组的指针:int (*array)[3];含义是一个指向存放3个整型数据的数组的指针存放指针的数组: char *array[3];含义是一个数组中存放了3个..._二维数组传参数用2级指针

什么是软件测试?软件测试的目的是什么?划分为哪几个阶段?_软件测试的目标是什么,有哪几种主要的测试方法?-程序员宅基地

文章浏览阅读2k次。目录前言1. 什么是软件测试?2. 软件测试的目的?3. 软件测试的目标4. 软件测试的原则5. 测试的职责6. 软件都有多少种分类?7. 软件的分类8. 测试的主要方面9. 软件测试的对象10. 什么是“测试案例”?11. 怎么编写案例?12. 软件测试的两种方法13. 测试结束的标准是什么?14. 软件的生命周期15. 软件测试按过程分为三个步骤16. 面向对象的设计如何影响测试?17. 软件带来错误的原因很多。主要的原因有哪些?18. 软件测试的步骤是什么?19.小结今天给大家复习一下软件测试的基本知_软件测试的目标是什么,有哪几种主要的测试方法?

CTF BugKu平台——Crypto篇刷题记录(后续更新)_抄错的字符 ctf-程序员宅基地

文章浏览阅读2.8k次,点赞5次,收藏26次。CTF BugKu平台——Crypto篇抄错的字符抄错的字符描述: 老师让小明抄写一段话,结果粗心的小明把部分数字抄成了字母,还因为强迫症把所有字母都换成大写。你能帮小明恢复并解开答案吗:QWIHBLGZZXJSXZNVBZWQW1h base64解码为 AmaBL92 base64解码为 _vZXJ5 base64解码为 eryX2Nv base64解码为 _cob2w= base64解码为 olflag{Aman_very_cool}这题出的确实好u1s1 出题人完胜!..._抄错的字符 ctf

推荐文章

热门文章

相关标签