Spring Boot快速入门教程

Spring Boot入门教程实例

什么是Spring Boot

在这里插入图片描述

Spring Boot 是由Pivotal 团队提供的全新框架。Spring Boot是所有基于Spring Framework 5.0 开发的项目的起点。Spring Boot的设计目的是为了让你尽可能快的跑起来Spring应用程序并尽可能减少你的配置文件。

设计目的用来简化Spring应用的初始搭建以及开发过程。

从根本上讲,Spring Boot就是一些库的集合,它能够被任意项目的构建系统所使用。它使用约定 > 配置 > 编码(项目中存在大量的配置,此外还内置一个习惯配置)的理念让你的项目快速运行起来。Spring Boot 其实不是什么新的框架,它默认配置了许多框架的使用方式,就像maven整合所有的jar包,Spring Boot 整合了所有框架,总结以下几点:

  1. 为所有Spring 开发者提供一个更广泛的入门体验。
  2. 零配置。无冗余代码生成和XML强制配置,遵循约定 > 配置 > 编码
  3. 集成了大量常用的第三方库的配置,Spring Boot 应用为这些第三方库提供了几乎可以零配置的开箱即用的能力。
  4. 提供了一系列大型项目常用的非功能特性,如嵌入式服务器、安全性、度量、运行状况检查、外部化配置等。
  5. Spring Boot 不是 Spring 的替代者,Spring框架是通过IOC机制来管理Bean的。Spring Boot依赖Spring框架来管理对象的依赖。Spring Boot并不是Spring的精简版本,而是为使用Spring做好各种产品集准备。

Spring Boot 在应用中的角色作用

Spring Boot 是基于Spring Framework 来构建的,Spring Framework是一种J2EE的框架。

Spring Boot 是一种快速构建 Spring 应用。

Spring Cloud 是构建Spring Boot 分布式环境,也就是常说的云应用。

Spring Boot 中流砥柱,承上启下

构建一个Spring Boot 的 HelloWorld应用程序

开发工具:IDEA

Java版本:JDK8

Maven版本:maven-3-3-9

Spring Boot版本:2.4.0

第一步:新建Spring Initializer项目

在这里插入图片描述

(1) 选择Spring Initializr

(2) 选择SDK,这里选择本机安装的JDK8。如果想要使用其他版本的JDK,可点击【new】,选择【添加JDK】,找到本机其他版本JDK的安装目录添加即可。

(3) URL选择默认,然后点击【next】

在这里插入图片描述

(4) 设置项目的【Group】、【Artifact】、【Version】等信息,这里选择默认。如果需要修改,则根据自己的需求进行调整。这里【Java Version】选择【8】,与上一选项配置的【JDK版本】保持一致;然后点击【Next】。

在这里插入图片描述

(5)这一步骤进行模块选择,程序猿可根据自己的需求选择响应的模块;本次案例作为一个快速开始的示例,选择了一个Spring Web模块作为展示。

​ 选择完成后,点击【next】进入下一步

在这里插入图片描述

(6)这一步就是简单的设置项目的名称和项目的存储路径,在这里就不多说了,程序猿可以根据自己的需求进行改动

在这里插入图片描述

(7)至此,一个基本的Spring Boot项目框架已经搭建好了。由于本次示例是采用Maven进行项目构建,那么IDEA默认生成了与Maven项目相同的项目文件结构,此外,额外添加了Spring Boot项目的初始化程序及响应的文件。

在这里插入图片描述

(8)接下来,我们就可以根据自己的业务逻辑,编写响应的代码;这里作为快速入门示例,编写一个Controler。这里需要注意,Spring Boot应用程序,默认会扫描与启动程序在相同包及其子包下的程序。如果需要更改Spring Boot应用程序的默认扫描路径则可以使用@ComponentScan注解来指定需要扫描的包。那么,我们新建一个control包,并在该包下创建HelloWorld

在这里插入图片描述

package com.example.demo.control;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloWorld {

    @GetMapping("hello")
    public String helloWorld(){
        return "Hello World!!!!";
    }
}

(9)运行项目,并在浏览器中输入【http://localhost:8080/hello】

在这里插入图片描述

代码讲解

主程序类,主入口类

package com.example.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;

@SpringBootApplication
@ComponentScan(basePackages = {"com", "imooc"})
public class DemoApplication {

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

@SpringBootApplication: SpringBootApplication标注在某个类上,说明这个类是SpringBoot的著配置类,SpringBoot就应该运行这个类的main方法来启动这个项目。

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(
    excludeFilters = {@Filter(
    type = FilterType.CUSTOM,
    classes = {TypeExcludeFilter.class}
), @Filter(
    type = FilterType.CUSTOM,
    classes = {AutoConfigurationExcludeFilter.class}
)}
)
public @interface SpringBootApplication {
    .....
}

由上述代码可知,注解@SpringBootApplication是一个复合注解。除去@Target、@Retention、@Document、@Inherited这四个Java常用的基本注解之外,我们来分析其余三个SpringBoot的特有注解。

@SpringBootConfiguration:Spring Boot的配置类(专属于SpringBoot)

​ 标注在某个类上,表示这是一个Spring Boot的配置类;

@Configuration: 配置类上来标注这个注解(来源于Spring)

​ 配置类------------配置文件,通俗的来讲配置类就是配置文件中属性在Java程序中响应对象的映射,该对象拥有配置文件中的响应的属性,并提供了属性对应的使用方法。

Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Configuration
public @interface SpringBootConfiguration {
    @AliasFor(
        annotation = Configuration.class
    )
    boolean proxyBeanMethods() default true;
}

@EnableAutoConfiguration:开启自动配置功能;使用这个注解告诉SpringBoot框架启动自动配置。SpringBoot框架默认为相应的模块提供了默认的属性配置。

@AutoConfigurationPackage
@Import({AutoConfigurationImportSelector.class})
//@Import导入AutoConfigurationImportSelector.class进行配置筛选
public @interface EnableAutoConfiguration {
    String ENABLED_OVERRIDE_PROPERTY = "spring.boot.enableautoconfiguration";
    Class<?>[] exclude() default {};
    String[] excludeName() default {};
}

@AutoConfigurationPackage:自动配置包,

@Import({Registrar.class})
public @interface AutoConfigurationPackage {
    String[] basePackages() default {};
    Class<?>[] basePackageClasses() default {};
}
//Spring的底层注解@Import,给容器中导入一个组件;并且由Registrar.class来指定导入哪些组件
//将主配置类(@SpringBootApplication标注的类)所在包及下面所有子包的组件扫描到Spring容器

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值