Spring Boot项目的创建与使用

1.SpringBoot初识

SpringBoot是什么

介绍

​ 为了简化 Spring 应用的搭建和开发过程,Pivotal 团队在 Spring 基础上提供了一套全新的开源的框架,它就是 Spring Boot。

Spring Boot是由Pivotal团队提供的全新,其设计目的是用来新应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。

​ Spring Boot 具有 Spring 一切优秀特性,Spring 能做的事,Spring Boot 都可以做,而且使用更加简单,功能更加丰富,性能更加稳定而健壮。随着近些年来微服务技术的流行,Spring Boot 也成为了时下炙手可热的技术。

特点

  • 为所有 Spring 开发提供从根本上更快且可广泛访问的入门体验

  • 可以创建独立的Spring应用程序,并且基于其Maven或Gradle插件,可以创建可执行的jar包和war包

  • 开箱即用,提供自动配置的"starter"项目对象模型(POMS)以简化Maven配置

  • 内嵌Tomcat或Jetty等Servlet容器

  • 尽可能自动配置Spring容器

  • 提供一系列大型项目通用的非功能特性,(例如嵌入式服务器、安全性、指标、健康检查和外部化配置)

  • 绝对没有代码生成,不需要XML配置。

重要策略

面试题:

SpringBoot框架中还有两个非常重要的策略:开箱即用和约定优于配置

1.开箱即用

​ 开箱即用,Outofbox,是指在开发过程中,通过在MAVEN项目的pom文件中添加相关依赖包,然后使用对应注解来代替繁琐的XML配置文件以管理对象的生命周期。这个特点使得开发人员摆脱了复杂的配置工作以及依赖的管理工作,更加专注于业务逻辑。

2.约定优于配置

​ 约定优于配置(convention over configuration),也称作按约定编程,是一种软件设计范式,旨在减少软件开发人员需要的配置。

本质上是对系统、类库或框架中一些东西(如配置信息)假定一个大众化合理的默认值(缺省值)。例如在模型中存在一个名为User的类,那么对应到数据库会存在一个名为user的表,只有在偏离这个约定时才需要做相关的配置(例如你想将表名命名为t_user等非user时才需要写关于这个名字的配置)。简单来说就是假如你所期待的配置与约定的配置一致,那么就可以不做任何配置,约定不符合期待时时才需要对约定进行替换配置。

3.内置tomcat

SpringBoot 项目创建

方式一 、创建maven项目

创建maven工程

修改pom.xml配置

XML 复制代码
<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.6.7</version>
</parent>

添加依赖

XML 复制代码
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
</dependencies>

编写代码

java 复制代码
@SpringBootApplication
@RestController
public class DemoApplication {

   @RequestMapping("/hello")
   public String hello(){
      return "hello world!";
   }

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

}

方式二、官网向导创建

打开官网向导

打开浏览器,输入网址 http://start.spring.io/ ,如图 所示

创建一个最简单的 SpringBoot 应用,填写项目信息。

  • GENERATE : 直接生成并下载项目

  • EXPLORE : 查看项目

  • SHARE : 分享项目 导入IDEA

main方法

我们应用程序的最后一部分是main 方法。这是遵循Java约定的应用程序入口点的标准方法。我们的main方法SpringApplication 通过调用委托给Spring Boot的类run。 SpringApplication引导我们的应用程序,启动Spring,这反过来又启动了自动配置的Tomcat Web服务器。

java 复制代码
@SpringBootApplication
@RestController
public class DemoApplication {

   @RequestMapping("/hello")
   public String hello(){
      return "hello world!";
   }

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

}

方式三、IDEA 向导创建

运行示例

打开Web浏览器到http://localhost:8080/hello,则应该看到以下输出:

创建一个可执行的jar

通过创建一个可以在生产环境中运行的完全独立的可执行jar文件来结束示例。

要创建可执行jar,我们需要将添加spring-boot-maven-plugin到pom.xml。为此,请在该dependencies部分下方插入以下行:

XML 复制代码
<build>
   <plugins>
      <plugin>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-maven-plugin</artifactId>
      </plugin>
   </plugins>
</build>

从命令行运行mvn package,如下所示:

如果查看target目录,则应该看到sbdemo-0.0.1-SNAPSHOT.jar。该文件的大小应为18.5 MB左右。如果您想窥视内部,可以使用jar tvf,如下所示:

要运行该应用程序,请使用以下java -jar命令:

java 复制代码
java -jar sbdemo-0.0.1-SNAPSHOT.jar

1.通过IDE创建Spring Boot项目

2.目录结构

3.新建TestController控制器

java 复制代码
@Controller
public class TestController {

    @RequestMapping("/test")
    public ModelAndView test(@RequestParam(name = "name", defaultValue = "刘德华") String name){

        ModelAndView mv = new ModelAndView();
        mv.addObject("name", name);
        mv.setViewName("test");
        return mv;
    }
}

4.新建/resources/templates/test.ftlh模板文件

html 复制代码
<html>

<body>
    <h1>页面参数: ${name}</h1>
</body>

</html>

5.运行项目

相关推荐
蓝斯4978 小时前
[原创]《C#高级GDI+实战:从零开发一个流程图》第章:增加贝塞尔曲线,上、下、左、右连接点
java·c#·流程图
前端工作日常8 小时前
我学习到的Java 的 Service 分层:itf 和 impl 到底是什么?
java·后端
都叫我大帅哥9 小时前
Spring @Transactional 注解完全指南
java·spring
Java成神之路-9 小时前
G1 垃圾回收器 :SATB + TAMS核心机制深度解析
java·jvm
前端工作日常9 小时前
我学习到的JIT即时编译与机器码缓存失效
java·后端
带刺的坐椅9 小时前
Solon 的 10 种 HTTP 服务器:改一行依赖,换一个引擎
java·solon·jetty·undertow·mcp-server·htttp
犀利豆10 小时前
Claude Code Tools 研究系列(三)ExitPlanMode
人工智能·后端
星栈10 小时前
oh-my-pi工程级AI编码工使用体验
人工智能·后端·agent
xcLeigh10 小时前
Go入门:变量声明的五种方式详解
java·开发语言·golang
AI大模型-小华10 小时前
Codex 三方充值快速入门指南
java·前端·数据库·chatgpt·ai编程·codex·chatgpt pro