【SpringBoot】--入门简介、创建SpringBoot项目



Spring Boot内容介绍

  • (1)Spring Boot简介
  • (2)Spring Boot快速入门
  • (3)Spring Boot原理分析
  • (4)Spring Boot配置文件
  • (5)Spring Boot与其他框架的整合

Spring回顾

  • (1)Spring是什么?
    Spring是Java企业版(Java Enterprise Edition,JEE,也称J2EE)的全栈,轻量级代替品
  • (2)Spring核心是?
    IOC,依赖注入 @Service@Repository,@Autowired
    AOP,面向切面编程,事务,日志管理,权限
  • (3)Spring特点是什么?
    Spring的组件代码是轻量级的,但它的配置却是重量级
    各种XML配置 application Context-dao.XML application Context-tx.XML springmvc.XML
    》项目的依赖管理也是一件耗时耗力的事情,要十分注意版本兼容
    pom.XML比较大

1、Spring Boot介绍

(1)Spring Boot是什么?

Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用的初始搭建以及开发过程

(2)Spring Boot的特点是什么?

  • 1 更快的入门体验
    开箱即用
  • 2 也无需XML配置。同时也可以修改默认值
    基于约定优于配置的思想
  • 3 提供了一些大型项目中常见的非功能性特性,如嵌入式服务器等
  • 4 Spring Boot不是对Spring功能上的增强,而是提供了一种快速使用Spring的方式

2、Spring Boot的核心功能概述

  • (1)起步依赖
    起步依赖就是将具备某种功能的坐标打包到一起,并提供一些默认的功能。
  • (2)自动配置
    Spring Boot的自动配置是一个运行时的过程
    在应用程序启动时,自动加载默认配置,判断是否满足需求
    如果不满足,则不需要额度配置,否则加载额外配置

3、创建Spring Boot项目 ----方式①

(1)创建Maven工程

该工程为普通的java工程即可
在这里插入图片描述

(2)添加Spring Boot的起步依赖

》继承起步依赖spring-boot-starter-parent
》集成SpringMVC进行Controller的开发,要导入web的启动依赖

  • 在pom中添加继承spring-boot-starter-parent依赖接口完成创建
  <!--    必须指定starter为parent-->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.4.0</version>
    </parent>
    <!--    依赖web即springmvc-->
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>

4、创建springboot项目----方式②(推荐)

(1)选择springboot初始化工具

在这里插入图片描述

(2)设置包名,工程名

在这里插入图片描述

(3)选择web依赖

在这里插入图片描述

(4)创建成功

在这里插入图片描述

(5)controller

  • (springboot将依赖,配置承包了,开发者只要写三层架构的代码)

  • @RestController注解:其实就是将之前的@Controller和@ResponseBody注解加在一起,返回json数据

@RestController
public class Demo01Controller {

    @RequestMapping(path="/demo01",method = {RequestMethod.GET,RequestMethod.POST})
    public @ResponseBody
    String demo01(){
        return "HelloWorld!!!";
    }
}

(6)启动SpringBoot

  • 》1》直接Run点击Demo01Application.java
    在这里插入图片描述
  • 》2》通过Maven启动

在控制台Terminal输入mvn spring-boot:run回车,当看到springboot的logo出现,并加载了项目的控制器等类之后,就是启动成功了。

(7)启动成功

在这里插入图片描述
浏览器访问地址

在这里插入图片描述

5、Spring Boot的原理分析-起步依赖

pom.xml

<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.4.0</version>
        <relativePath/> 
        <!-- lookup parent from repository -->
    </parent>
    <groupId>com.smp</groupId>
    <artifactId>demo01</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>demo01</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <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>

(1)parent说明

  • 分析spring-boot-starter-parent—>自动帮我们引入了web模块开发需要的相关jar包。

当我们按住ctrl点击这个parent依赖可以看到如下
在这里插入图片描述
这个dependencies才是正真的boot版本仲裁中心,再次进入这个dependencies版本中心,可以看到许多的版本版本声明,所以以后导入其他此处已经存在的依赖默认不需要写版本,但是dependencecies中没有声明的还需写出版本号

(2)启动器

Boot会将一个个项目场景做成一个个starter启动器,项目中涉及到什么场景就引入什么启动器,项目中引入这些启动器之后,和这个starter相关的依赖也会被引入。

spring-boot-starter-XXX—>引入相应的jar包
在这里插入图片描述

  • (3)一部分坐标的版本、依赖管理、插件管理已经定义好
  • (4)SpringBoot工程继承spring-boot-starter-parent后已经具备版本锁定等配置
    起步依赖的作用就是进行依赖的传递
  • (5) springboot打包插件
    加上maven的打包插件,用于做微服务,分布式,内部包含了tomcat
    在这里插入图片描述

6、Spring Boot常用注解

  • (1)@SpringBootApplication:标注SpringBoot的启动类,该注解具备多种功能(用在 Spring Boot 主类上,标识这是一个 Spring Boot 应用,用来开启Spring Boot 的各项能力。其实这个注解就是@SpringBootConfiguration、@EnableAutoConfiguration、@ComponentScan这三个注解的组合,也可以用这三个注解来代替@SpringBootApplication 注解。)
  • (2)SpringApplication.run(MySpringBootApplication.class) 代表运行SpringBoot的启动类,参数为SpringBoot启动类的字节码对象
  • (3)@Service(业务层):用于标注业务层组件
  • (4)@Controller(控制层/Web层):用于标注控制层组件
  • (5)@Repository(持久层):用于标注数据访问组件,即DAO组件
  • (6)@Component:泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注
  • (7)@Value:只能给属性赋字符串类型或整数的值,可用在实体类中的属性上
  • (8)@RestController:该注解一般标记在控制层。它是@Controller和@ResponseBody注解的组合
    @Controller注解:表示此类是一个控制器类
    @ResponseBody注解:表示输出的是JSON格式的数据
  • (9)@Autowired:是一个自动装配的注解,它会在容器使用此类时自动注入,也就意味着在使用某个类时不用手动 new 对象,这是一个很重要的注解
  • (10)GetMapping("/xx"):它是一个组合注解,是@RequestMapping(value="/xx", method = RequestMethod.GET)的缩写版本,该注解将HTTP Get 映射到 特定的处理方法上。
  • (11)@SpringBootConfiguration: 是一个Spring配置注解(继承@Configuration),将当前类声明的一个或多个**@Bean**注解标记的方法纳入Spring容器管理,实例名就是方法名。
  • (12)@EnableAutoConfiguration: 自动装配,用于自动配置starter中的信息,实现自动化装配。根据添加的jar包来配置项目的默认配置。
  • (13)@ComponentScan: 包扫描,用于扫描指定位置下的所有的Spring相关注解(@Component,@Controller,@Service,@Repository)
  • (14)@Bean: 用在方法上,取代xml中的标签创建对象使用
  • (15)@Configuration:用在类上,声明当前类是一个配置文件(代替Spring配置文件)
  • (16)@ConfigurationProperties:配置属性绑定,把全局/主配置的yml/properties的配置信息注入到POJO中,这个注解的使用需要把当前类标记为组件(添加注解@Component),可以添加属性prefix = ‘xxx’,这个xxx指的是yml/properties的key。
  • (17)@PropertySource:引入SpringBoot配置,当@ConfigurationProperties需要从副配置文件拿数据时,可以用@PropertySource手动引入副配置,value可指定多个路径
  • (18)@ImportSource 引入Spring配置。引入Xxx.xml的Spring配置文件,需要在主类配置该注解用于导入多个配置文件。@ImportResource(locations = {“classpath:Xxx.xml”})
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值