当前位置: 首页 > java>阅读正文

第一个springboot项目

2022.4.18 朱丰华 978 次 留下评论 1761字

快速创建项目

打开idea,新建Project,选择apring initalizr,选择jar

其他信息随意配置,修改完成后点击next,在接下来选择导入web依赖

点击finish,等待项目加载完毕,然后打开项目结构,打开src/main/java/com.xxx/xxxApplication文件,给该添加代码,格式如下

package com.zhufenghua.spboot;

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

@SpringBootApplication
@RestController  // 添加此注解
public class SpbootApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpbootApplication.class, args);
    }
    // 添加以下方法
    @GetMapping("/hello")
    public String hello(@RequestParam(value = "name", defaultValue = "World") String name) {
    return String.format("Hello %s!", name);
    }
}

在添加完一个@RestController后,该类中的所有方法在return后会直接返回给浏览器,而不经过页面控制器渲染

注解@GetMapping是@RequestMapping和method=get的缩写,表示接收get请求的servlet的注册地址,

在hello方法中,使用了@RequestParam注解获取一个值为name的参数,默认是world,方法将返回hello name字符串。

启动xxxApplication,程序开始运行,会打印一系列信息,注意观察,发现默认部署在8080端口,此时我们打开浏览器,访问 localhost:8080/hello

我们可以指定name参数,例如 localhost:8080/hello?name=heihei

快速运行的jar包

springboot选择jar包时,内置了tomcat,这样的缺点是会消耗大量的内存,毕竟一个项目就内置了一个tomcat,但好处是更方便使用。(从这里看出SpringBoot和SpringMVC模式完全不同,MVC只是一个servlet,而SpringBoot则使用main方法启动进而创建Tomcat实例)

使用maven对springboot进行打包,我们会在target目录下得到2个额外的东西,分别是

  • 项目名-xxx.jar
  • 项目名-xxx.jar.original

其中,.jar.original是表示没有内置tomcat的源代码,而.jar则是可以直接运行的jar包

接下来,打开cmd,使用以下命令就可以直接运行

java -jar 项目名xxx.jar

我们发现,因为内置了tomcat,我们无需部署在tomcat中,而是用一行命令就可以运行

springboot项目结构

虽然springboot基于maven,但它的项目结构,和maven有一点区别

它的项目结构是这样的

  • Java –> 存放java文件
  • resources –> 其他文件
    • application.yml(properties)
    • static –> 静态资源
    • templates –> 动态模板文件

其中,application.properties指的是springboot的主配置文件,该文件默认为空,我们可以指定一些启动配置,例如配置启动端口为8081

server.port=8081

静态文件,指的是html,css,js等纯静态文件

动态模板,指的是视图控制器,比如jsp,thymleaf等

问:mvnw是什么?

mvnw是springboot项目在控制台启动的命令行工具,在linux/macos可以这样用

./mvnw spring-boot:run

在windows中

mvnw spring-boot:run

它是命令行启动工具,如果是在idea等工具中,就不必要了,直接点击run即可。

本篇完,还有疑问?留下评论吧

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注