SpringBoot-helloworld

1. helloworld

使用springboot完成一个简单的web应用,当访问/hello时,返回"hello springboot"字符串。

  1. 首先,创建一个maven工程,并引入依赖。
    <!--使用springboot编写web应用前,需要声明父工程spring-boot-starter-parent是一个特殊的starter,它的pom.xml中声明了springboot中的各个依赖和版本当我们在引入依赖时,就不需要再声明版本了springboot3需要jdk17,我这里使用springboot2--><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.10</version></parent><!--引入下面的插件可以使web项目打包为一个可执行了jar包,方便部署这个插件可以继承到子工程--><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>
  1. 创建子工程,在子工程中引入spring-boot-starter-web依赖。
    <!--使用springboot编写web应用时,只需要引入spring-boot-starter-web依赖即可不用像使用SSM时引入那么多依赖--><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency></dependencies>
  1. 创建主程序。
package pers.beiluo.springboot;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;/*** 主程序类* @SpringBootApplication注解包含了@EnableAutoConfiguration、@ComponentScan和@SpringBootConfiguration的功能,* 并且说明这是一个springboot应用*/
@SpringBootApplication
public class MyApplication {/*** 主方法,项目的入口* @param args*/public static void main(String[] args) {//启动项目SpringApplication.run(MyApplication.class, args);}}
  1. 编写controller,返回字符串。
package pers.beiluo.springboot.controller;import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;/*** @Controller表示这是一个控制器* @ResponseBody表示返回值是响应内容,而不是页面* @RestController是上面两个注解的结合,要实现两个功能,直接使用这个注解即可*/
@RestController
public class HelloController {/*** 控制器方法,返回一个字符串*/@RequestMapping("/hello")public String Hello(){return "hello springboot";}}
  1. springboot应用只需要一个配置文件,命名为application即可,后缀可以是properties、yaml等。
    在这里插入图片描述
  2. 运行程序,执行主方法即可。
    在这里插入图片描述
    在这里插入图片描述
  3. 引入插件后,生成的jar包也是可以直接运行的。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

2. 依赖管理

  • 父项目做依赖管理,父项目中几乎声明了所有开发中常用的依赖的版本号,自动版本仲裁机制,不需要自己写版本号。
  • 在springboot中开发时,只需要导入starter场景启动器,这个场景所需要的所有依赖就自动帮我们引入了。除了spring官方提供的启动器外,还有第三方提供的启动器。所有启动器都依赖spring-boot-starter启动器。我们想在某个场景下开发,只需要引入这个场景的启动器就可以了。例如web启动器就含有图中的依赖:在这里插入图片描述
  • 如果我们想使用自定义的版本,可以通过以下两步:
    <!--先在properties中定义版本号,然后再在依赖中引入,这样方便修改--><properties><mysql.version>5.1.40</mysql.version></properties><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>${mysql.version}</version></dependency>

3. 自动配置

  • springboot会根据我们引入的启动器进行自动配置,例如,如果引入了web启动器,springboot会为我们配置好springMVC、Tomcat等功能。
  • springboot的默认扫描规则:主类所在包中的所有组件会被扫描,其他地方不会扫描,无需自己配置扫描的位置。如果想自定义扫描位置,使用@SpringBootApplication的scanBasePackage属性或是@ComponentScan的basePackage属性指定扫描位置。
  • 配置文件中的各个属性的值最终会被绑定在类上,包括默认值也是绑定在类上。
  • springboot会根据我们引入的启动器,按需加载所需要的配置,springboot中本身含有各种场景的自动配置,但只有引入了相应的启动器,才会加载对应的配置。在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

运维SRE-14 自动化批量管理

1.批量管理基础内容-SSH服务-远程连接服务 1.1SSH服务 SSH服务-OpenSSH&#xff0c;远程连接服务端&#xff1a;openssh-server客户端&#xff1a;openssh-clients openssh-7.4p1-21.el7.x86_64 openssh-server-7.4p1-21.el7.x86_64 #服务端 openssh-clients-7.4p1-21.el7.…

C#之WPF学习之路(2)

目录 控件的父类 DispatcherObject类 DependencyObject类 DependencyObject 类的关键成员和方法 Visual类 Visual 类的主要成员和方法 UIElement类 UIElement 类的主要成员和功能 FrameworkElement类 FrameworkElement 类的主要成员和功能 控件的父类 在 WPF (Windo…

Docker Desktop 4.27.1 Windows 10 安装 教程

Docker Desktop 4.27.1 Windows 10 安装 版本要求windows 版本要求wsl 版本要求docker desktop 版本 安装首先确保系统版本符合要求前提下安装wsl安装 Dockers Desktop安装说明 安装问题docker Desktop 无法正常启动&#xff0c;提示wsl 相关信息wsl --install 执行输出帮助日志…

GEE必须会教程—时间都去哪了(Date参数类型)

时间和空间是世界存在的两种基本属性&#xff0c;大部分的数据都有特有的通道存储时间信息&#xff0c;用户需要通过获取数据存储的信息&#xff0c;来判断数据的可用性&#xff0c;以及数据在时间上发生的变化。在遥感上&#xff0c;空间数据集合中&#xff0c;时间信息显得更…

机器学习——强化学习作业

作业内容 成功降落在两个黄色旗子中间为成功&#xff0c;其他为失败 Policy Gradient方法 Actor-Critic方法 范例结果 baseline Policy Gradient实现

Java 面向对象进阶 15 接口(黑马)

案例&#xff1a; 代码&#xff1a; Animal类代码&#xff1a; public abstract class Animal {private String name;private int age;public Animal() {}public Animal(String name, int age) {this.name name;this.age age;}public String getName() {return name;}public…

OpenGauss数据库本地搭建并结合内网穿透实现远程访问

文章目录 前言1. Linux 安装 openGauss2. Linux 安装cpolar3. 创建openGauss主节点端口号公网地址4. 远程连接openGauss5. 固定连接TCP公网地址6. 固定地址连接测试 前言 openGauss是一款开源关系型数据库管理系统&#xff0c;采用木兰宽松许可证v2发行。openGauss内核深度融合…

jetson是什么?

jetson是NVIDIA推出的一系列嵌入式计算板&#xff0c;用于边缘计算。这些板卡专门设计用于加速机器学习和计算机视觉等人工智能应用&#xff0c;它们是低功耗设备&#xff0c;非常适合在无人机、机器人、智能相机和其他自动化设备中使用。 Jetson板卡包括多种型号&#xff0c;…

C#使用一个泛型方法操作不同数据类型的数组

目录 一、泛型方法及其存在的意义 二 、实例 1.源码 2.生成效果 再发一个泛型方法的示例。 一、泛型方法及其存在的意义 实际应用中&#xff0c;查找或遍历数组中的值时&#xff0c;有时因为数组类型的不同&#xff0c;需要对不同的数组进行操作&#xff0c;那么,可以使用…

运维SRE-16 自动化批量管理-ansible2

7.6ansible-软件包管理模块 yum_repository(管理yum源) yum(yum命令) get_url(wget命令)1&#xff09;yum源配置管理模块 yum源模块 yum_repositoryyum源配置文件内容name[epel]yum源中的名字(中括号里面的名字即可)descriptionnamexxxxxxyum源的注释说明baseurlbaseurlyum源…

来分析两道小题

一、源码 二、分析 首先它会接两个参数一个是id一个是ps&#xff0c;传递的话会包含一个flag.php&#xff0c;然后数据库连接&#xff0c;之后传递过滤&#xff0c;然后查询&#xff0c;如果查到了就会取id&#xff0c;取出来看是不是跟adog一样&#xff0c;如果是它告诉你账号…

watchpoint

前言 内存被踩&#xff0c;通过 watchpoint 找到真凶 实例 以 smsc911x 网卡驱动为基体&#xff0c;进行实验&#xff0c;和网卡本身功能无关&#xff0c; 每执行一次 ifconfig eth0 up&#xff0c;就会调用一次 smsc911x_open()&#xff0c;我在这里设计了一段代码&#xf…