springboot初体验


目录


1. SpringBoot简单介绍

1.1 SpringBoot的简介

SpringBoot是在2014年基于Spring4.0开发的一款框架,它属于spring家族的一员,其诞生的目的主要是为了简化开发spring应用的步骤,开发一个应用不在需要繁琐的配置。

1.2 SpringBoot的优点

  • 可快速创建独立运行的Spring项目,以及与主流的框架集成
  • 使用内嵌的Servlet容器,引用无需打成War
  • starters自动依赖与版本控制
  • 大量的自动配置,简化开发,且可修改默认值
  • 无需配置XML
  • 准生产环境的运行时应用监控
  • 与云计算的集成

2. 微服务简介

微服务的介绍

  • 一个应用应该由一组小型服务组成,相互之间可以通过HTTP方式进行互通
  • 每一个功能元素最终都是一个可独立替换和独立升级的软件单元

3. SpringBoot入门

3.1 创建一个maven工程
3.2 导入相关的依赖
    <!--这是SpringBoot的父级依赖,这样就代表这是一个SpringBoot项目了-->
    <!--他还是一个特殊的启动器,提供了相关maven默认依赖,这样常用的包依赖就可不用写version标签-->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.1.RELEASE</version>
    </parent>
    <dependencies>
        <!--标志着这是一个web项目-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>
3.3 编写启动类
package com.piggy;

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

/**
 * @SpringBootApplication 来标注一个主程序类,说明这是一个SpringBoot应用
 */
@SpringBootApplication
public class HelloWorldMainApplication {
    public static void main(String[] args){
        SpringApplication.run(HelloWorldMainApplication.class,args);
    }
}
3.4 编写Controller
package com.piggy.controller;

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

@RestController
public class HelloController {

    @RequestMapping("/hello.action")
    public String hello(){
        return "Hello World";
    }
}
3.5 运行启动类测试

4.POM文件探究

4.1. 父项目依赖

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

这是SpringBoot的版本管理中心,他继承了spring-boot-dependencies,里面内置了相关maven依赖的版本信息。所以SpringBoot大多常用的依赖就不用加version标签了

4.2 spring-boot-starter-web

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

spring-boot-starter: springboot场景启动器,内置了web模块正常运行所需的组件

当然,springboot还内置了很多的其他启动器(starter),适用于各种不同的场景,根据场景选用相应的启动器,就会导入相关的一系列依赖可以说启动器就是一系列相关依赖的集合
详细可以看下面官方文档关于starter的介绍
spring-boot-starts相关


4.3 主程序类

/**
 * @SpringBootApplication 来标注一个主程序类,说明这是一个SpringBoot应用
 */
@SpringBootApplication
public class HelloWorldMainApplication {
    public static void main(String[] args){
        SpringApplication.run(HelloWorldMainApplication.class,args);
    }
}

@SpringBootApplication 此注解所修饰的类表示是SpringBoot的主配置类,SpringBoot就会运行此类的main方法来启动SpringBoot应用


进去可以看到其实是一个组合注解

  • @SpringBootConfiguration:被此注解标注的类表示是SpringBoot的配置类,其内部是Spring@Configuration注解
  • @EnableAutoConfiguration:此注解告诉SpringBoot开启自动配置功能,其内部是一个@AutoConfigurationPackage注解,而@AutoConfigurationPackage内部又是一个Spring的底层注解@Import注解用来给容器导入组件
    里面还有一个AutoConfigurationImportSelector注解,此注解是用来选择导入那些组件的选择器,会给容器导入非常多的自动配置类



SpringBoot在启动的时候从类路径下的META-INF/spring.factories中获取EnableAutoConfiguration指定的值,将这些值作为自动配置类导入容器中

最终的作用是将主配置类(@SpringBootApplication标注的类)所在的包及子包下的所有组件扫描到Spring容器中

5. 使用Spring Initializer 快速创建Spring Boot项目

5.1 New–>Project–>Next

5.2 填写项目名和包结构
5.3 选择需要的模块(这里我选的是web模块)他会自己导入web相应的依赖,最后点击Finish

创建成功后的结构如下:

这样SpringBoot会自动给我们导入web工程所需要的基本依赖

5.4 导入依赖到本地仓库

5.5 项目结构说明

  • static:保存相关的静态资源文件,如CSS,JS
  • templates保存所有的模板页面(SpringBoot使用内嵌的Tomcat默认不支持JSP页面)可以使用模板引擎(thymeleaffreemarker)等;
  • application.propertiesSpringBoot应用的配置文件,可以配置端口,项目名称,等等之类…
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值