Spring Boot HelloWorld

一个功能:
浏览器发送hello请求,服务器接受请求并处理,响应Hello World字符串;

HelloWorld 编写

1. 创建一个Maven工程

2. 导入Spring Boot相关依赖

<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.2.4.RELEASE</version><relativePath/> <!-- lookup parent from repository -->
</parent><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>
</dependencies>

3. 编写主程序:启动Spring Boot应用

package com.huangshu;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;/*
@SpringBootApplication 来标注一个主程序类,说明这是一个Spring Boot应用*/
@SpringBootApplication
public class HelloWorldMainApplication {public static void main(String[] args) {//spring应用的启动SpringApplication.run(HelloWorldMainApplication.class,args);}
}

4. 编写相关的Controller、Service

package com.huangshu.controller;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;@Controller
public class HelloController {@ResponseBody               // 返回给浏览器@RequestMapping("/hello")   // 接收浏览器的"hello"请求/*现在可以用@RestController注解相当于Controller和responsebody的结合*/public String hello(){return "Hello World";}
}

将所有方法返回的数据直接写给浏览器(如果是对象的话就转为json数据)

5. 运行主程序测试

6. 简化部署

导入maven插件, 作用是将应用打包成一个可执行的jar包。

    <build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>

打包之后使用
java -jar
运行。

HelloWorld细节

1. POM文件

父项目

    <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.2.4.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent>

由于Spring Boot dependency仲裁中心,我们导入依赖默认是不需要写详细的版本号的。

2. 导入的依赖——启动器

    <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>

spring-boot-starter:spring boot场景启动器(spring-boot-starter-web导入了web模块正常运行的所需的jar包)。
SpringBoot将所有功能场景抽取出来做成starters,用什么功能就导入什么场景的启动器。
### 3. 主程序类
注解@SpringBootApplication:Spring Boot应用标注在某个类上说明这个类是主配置类,运行这个类的main方法来启动springboot应用。其本质是一个组合的注解:

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration    // Spring Boot的配置类:表示这是一个配置类。相当于spring的配置文件;配置类也是容器中的一个组件
@EnableAutoConfiguration    // 开启自动配置功能;自动扫描配置类所在包及所有子包的所有组件到Spring容器
@ComponentScan(excludeFilters = {@Filter(type = FilterType.CUSTOM,classes = {TypeExcludeFilter.class}
), @Filter(type = FilterType.CUSTOM,classes = {AutoConfigurationExcludeFilter.class}
)}
)
public @interface SpringBootApplication {

使用Spring Initializer快速创建Spring Boot项目

选择需要的模块,就会自动创建相关的项目。
特点:

  • 主程序生成完毕,我们只需要编写业务逻辑
  • resources文件夹中目录结构
    • static:保存所有静态资源:css,js,images;相当于WebContent
    • templates:保存所有的模板页面(Spring Boot默认jar包使用嵌入式的Tomcat,默认不支持JSP);可以使用模板引擎;
    • application.properties: Spring Boot应用的配置文件;(如端口号等等)

Spring Boot启动之Hello World相关推荐

  1. Spring boot 启动后执行特定的操作

    有时候我们需要在应用启动完成后执行一些特定的操作,比如: 删除一些临时文件或者Redis中的缓存 将一些字典类的数据加载到缓存,这样就不用每次去数据库中查了,有些关联数据从缓存中取得赋值就可以了,不再 ...

  2. Spring Boot启动过程源码分析--转

    https://blog.csdn.net/dm_vincent/article/details/76735888 关于Spring Boot,已经有很多介绍其如何使用的文章了,本文从源代码(基于Sp ...

  3. Spring Boot 启动载入数据 CommandLineRunner

    Spring Boot 启动载入数据 CommandLineRunner 实际应用中,我们会有在项目服务启动的时候就去载入一些数据或做一些事情这种需求. 为了解决这种问题.Spring Boot 为我 ...

  4. 在Spring Boot启动时运行代码

    Spring Boot会自动为我们执行很多配置,但是迟早您将不得不做一些自定义工作. 在本文中,您将学习如何进入应用程序引导生命周期并在Spring Boot启动时执行代码 . 因此,让我们看看该框架 ...

  5. spring boot 启动类

    做项目用到spring boot 感觉spring boot用起来比较流畅.想总结一下,别的不多说,从入口开始. spring boot启动类Application.class 不能直接放在main/ ...

  6. Spring Boot————Spring Boot启动流程分析

    一.引言 Spring Boot 的启动虽然仅仅是执行了一个main方法,但实际上,运行流程还是比较复杂的,其中包含几个非常重要的事件回调机制.在实际生产开发中,有时候也会利用这些启动流程中的回调机制 ...

  7. 强大的Spring Boot启动监听器事件-初始化系统账号密码

    文章目录 前言 一.SpringApplicationEvents 事件类型 1.1 ApplicationStartingEvent 1.2 ApplicationEnvironmentPrepar ...

  8. [Spring Boot] 2. Spring Boot 启动过程定制化

    在上一篇文章中,从源码角度介绍了Spring Boot的启动过程.启动的代码虽然只有短短的一行,但是背后所做的工作还真不少,其中有一些可以定制化的部分,主要分为以下几个方面: 初始化器(Initial ...

  9. Spring boot 启动后没反应

    Spring boot 启动后没反应 启动后调用jsp出错 启动后调用jsp出错 链接: link. 图片:

  10. spring boot 启动事件

    spring boot 启动事件 展示 boot 启动过程中事件 @SpringBootApplication public class BootCuratorApplication {public ...

最新文章

  1. JS作用域相关知识(#精)
  2. 异地备份同步校验脚本
  3. python print换行_Python小白必备:教你几招如何装逼
  4. Philip S. Yu 讲的广度学习到底是什么?
  5. SQL Server数据库中使用sql脚本删除指定表的列
  6. 【转帖】漫话C++0x(四) —- function, bind和lambda
  7. 三年半Java后端面试经历
  8. Spring Batch作为Wildfly模块
  9. vsftpd设置被动模式_(1)vsftpd主、被动模式iptables配置方法
  10. python 数据分析模块_Python数据分析之Numpy模块
  11. 增加定时检测linux占用内存,及时清理功能
  12. VS2013 产品密钥 – 所有版本
  13. 实数单竖线,向量双竖线,范数双竖线加下标,矩阵单竖线
  14. windows服务器ssl证书安装及配置
  15. 软件工程毕业设计课题(21)基于JAVA毕业设计电子书小说网站系统毕设作品项目
  16. LeetCode55跳跃游戏//力扣55跳跃游戏(贪心)
  17. Java中switch的四种用法
  18. 浅显理解Java泛型的super和extends
  19. 安全课堂|关于小程序AppSecret密钥泄露漏洞官方
  20. SQL查询无限层级结构的所有下级,所有上级(即所有的子孙曾孙等等)

热门文章

  1. 月桂酸异丙酯(IPL)行业调研报告 - 市场现状分析与发展前景预测
  2. excel求和怎么操作?这三个简单操作方法,轻松掌握
  3. 如何教会爸妈用智能手机?方法比耐心重要,get这份手绘板说明书!
  4. Gitee配置静态页面
  5. i.MX6ULL GPIO
  6. 如何使用WPS从正文开始页码为1,而不是从目录开始?
  7. java毕业生设计超市货品进销存系统前台计算机源码+系统+mysql+调试部署+lw
  8. 百度云盘上传显示服务器异常,百度网盘常见问题之网络异常,这里有最全面的解决方法...
  9. linux用户读取文件过程,Python中读取写入文件并进行文件与用户交互的操作
  10. PS 图像调整算法——反相