Spring Boot【全解】2

二、 SpringBoot快速入门

1.1   代码实现

【需求】:spring boot整合spring mvc

曾经的springmvc.xml

 

 

1.1.1    创建Maven工程

使用idea工具创建一个maven工程,该工程为普通的java工程即可(使用spring boot内置的服务器)

Springboot整合SpringMVC。

 

 

命名:springboot_quick

 

 

 

 

1.1.1    添加SpringBoot的起步依赖

SpringBoot要求,项目要继承SpringBoot的起步依赖spring-boot-starter-parent

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.1.RELEASE</version>
</parent>

 

SpringBoot要集成SpringMVC进行Controller的开发,所以项目要导入web的启动依赖

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

pom.xml文件的最终代码

<modelVersion>4.0.0</modelVersion>

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.1.RELEASE</version>
</parent>

<groupId>com.itheima</groupId>
<artifactId>springboot_quick</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
</dependencies>

 

1.1.2编写SpringBoot引导类

要通过SpringBoot提供的引导类起步SpringBoot才可以进行访问

package com.itheima;

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


// 声明该类是一个SpringBoot引导类
@SpringBootApplication
public class MySpringBootApplication {
    // main是java程序的入口
   
public static void main(String[] args) {
        // run方法 表示运行SpringBoot的引导类 run参数就是SpringBoot引导类的字节码对象
       
SpringApplication.run(MySpringBootApplication.class);
    }
}
 

启动main方法:

 

访问浏览器:

 

1.1.3编写Controller

在引导类MySpringBootApplication同级包或者子级包中创建QuickStartController.java

package com.itheima.controller;

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


@Controller
@ResponseBody
public class QuickStartController {

    @RequestMapping("/quick")
    public String quick(){
        return "springboot 访问成功!";
    }

}

再次执行SpringBoot起步类的主方法。

通过日志发现,Tomcat started on port(s): 8080 (http) with context path ''

tomcat已经起步,端口监听8080,web应用的虚拟工程名称为空(默认“/”)

打开浏览器访问url地址为:http://localhost:8080/quick

 

可以发现我们省去了springmvc.xml的配置。

 

1.2  快速入门解析

1.2.1    SpringBoot代码解析

1:@SpringBootApplication:标注SpringBoot的启动类,该注解具备多种功能(第3章后面详细剖析)

2:SpringApplication.run(MySpringBootApplication.class) 代表运行SpringBoot的启动类,参数为SpringBoot启动类的字节码对象

3:也可以自定义启动类(了解):@SpringBootApplication和启动类的main方法分开

(1):创建BootBean.java

 

 

 

@SpringBootApplication
public class BootBean {
}

(2)main方法执行

public class MySpringBootApplication {

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

总结:引导类和main方法是可以分开编写的

1.2.2   SpringBoot工程热部署

我们在开发中反复修改类、页面等资源,每次修改后都是需要重新启动才生效,这样每次启动都很麻烦,浪费了大量的时间,我们可以在修改代码后不重启就能生效,在 pom.xml 中添加如下配置就可以实现这样的功能,我们称之为热部署。

<!--热部署配置-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
</dependency>

注意:此时IDEA进行SpringBoot热部署失败原因

出现这种情况,并不是热部署配置问题,其根本原因是因为Intellij IEDA默认情况下不会自动编译,需要对IDEA进行自动编译的设置,如下:

1:设置Settings

 

 

2:然后 Shift+Ctrl+Alt+/,选择Registry

 

 

 

 

1.1.1   使用idea快速创建SpringBoot项目

 

 

 

 

 

 

 

 

 

 

通过idea快速创建的SpringBoot项目的pom.xml中已经导入了我们选择的web的起步依赖的坐<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd"
>
   <modelVersion>4.0.0</modelVersion>

   <groupId>com.itheima</groupId>
   <artifactId>springboot_quick2</artifactId>
   <version>0.0.1-SNAPSHOT</version>
   <packaging>jar</packaging>

   <name>springboot_quick2</name>
   <description>Demo project for Spring Boot</description>

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

   <properties>
      <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
      <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
      <java.version>1.8</java.version>
   </properties>

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

      <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-test</artifactId>
         <scope>test</scope>
      </dependency>
   </dependencies>

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

</project>

可以使用快速入门的方式创建QuickController进行访问,此处不再赘述

@RestController
public class QuickController {

    @RequestMapping("/quick")
    public String quick(){
        return "我是SpringBoot";
    }
}

其中@RestController中的内容:

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Controller
@ResponseBody
public @interface RestController {
    @AliasFor(
        annotation = Controller.class
   
)
    String value() default "";
}


启动SpringBootQuick2Application:

@SpringBootApplication
public class SpringbootQuick2Application {

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

在浏览器上输入:

注意:使用的idea创建工程的时候,最好联网,因为更新springboot的最新版本。

 

 

posted @   小年的西瓜  阅读(43)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示