01_SpringBoot简介及项目搭建

SpringBoot简介及项目搭建

欢迎关注公众号"小东方不败"

0x01_SpringBoot简介

Spring优缺点

Spring的优点分析

Spring是Java企业版(Java Enterprise Edition,JEE,也称J2EE)的轻量级代替品。无需开发重量级的Enterprise JavaBean(EJB),Spring为企业级Java开发提供了一种相对简单的方法,通过依赖注入和面向切面编程,用简单的Java对象(Plain Old Java Object,POJO)实现了EJB的功能。

Spring的缺点分析

虽然Spring的组件代码是轻量级的,但它的配置却是重量级的。一开始,Spring用XML配置,而且是很多XML配置。Spring 2.5引入了基于注解的组件扫描,这消除了大量针对应用程序自身组件的显式XML配置。Spring 3.0引入 了基于Java的配置,这是一种类型安全的可重构配置方式,可以代替XML。 所有这些配置都代表了开发时的损耗。因为在思考Spring特性配置和解决业务问题之间需要进行思维切换,所以编 写配置挤占了编写应用程序逻辑的时间。和所有框架一样,Spring实用,但与此同时它要求的回报也不少。 除此之外,项目的依赖管理也是一件耗时耗力的事情。在环境搭建时,需要分析要导入哪些库的坐标,而且还需要分析导入与之有依赖关系的其他库的坐标,一旦选错了依赖的版本,随之而来的不兼容问题就会严重阻碍项目的开发进度。

springboot

Spring Boot是Spring公司的一个顶级项目,和Spring Framework是一个级别的。

Spring Boot实际上是利用Spring Framework 4 自动配置特性完成。编写项目时不需要编写xml文件。发展到现在,Spring Boot已经具有很很大的生态圈,各种主流技术已经都提供了Spring Boot的启动器。

springboot优点:

  • 使用Spring Boot可以创建独立的Spring应用程序
  • 在Spring Boot中直接嵌入了TomcatJettyUndertow等Web 容器,在使用SpringBoot做Web开发时不需要部署WAR文件
  • 通过提供自己的启动器(Starter)依赖,简化项目构建配置
  • 尽量的自动配置Spring和第三方库
  • 绝对没有代码生成,也不需要XML配置文件

springboot版本介绍

  • SNAPSHOT:快照版,即开发版。
  • CURRENT:最新版,但是不一定是稳定版。
  • GAGeneral Availability,正式发布的版本。

现在的最新的正式发布的版本是2.7.5,我以这个版本进行学习。

Spring boot的核心:

  • 起步依赖- 起步依赖本质上是一个Maven项目对象模型(Project Object Model,POM),定义了对其他库的传递依赖,这些东西加在一起即支持某项功能。 简单的说,起步依赖就是将具备某种功能的坐标打包到一起,并提供一些默认的功能。
  • 自动配置 -Spring Boot的自动配置是一个运行时(更准确地说,是应用程序启动时)的过程,考虑了众多因素,才决定 Spring配置应该用哪个,不该用哪个。该过程是Spring自动完成的。

启动器

Spring框架在项目中作用是Spring整合各种其他技术,让其他技术使用更加方便。Spring Boot的启动器实际上就是一个依赖。这个依赖中包含了整个这个技术的相关jar包,还包含了这个技术的自动配置,以前绝大多数XML配置都不需要配置了。当然了,启动器中自动配置无法实现所有内容的自动配置,在使用Spring Boot时还需要进行少量的配置(这个配置不是在xml中了,而是在propertiesyml中即可)。如果是Spring自己封装的启动器的artifact id名字满足:spring-boot-starter-xxxx,如果是第三方公司提供的启动满足:xxxx-spring-boot-starter。以后每次使用Spring Boot整合其他技术时首先需要考虑导入启动器。

0x02_Spring boot项目搭建方式1

创建一个空项目(Empty Project)SpringBootWorkSpace,专门放Spring boot的学习案例。(这个是我的个人习惯,因为有时候文件太多了放的乱七八糟)

在这个项目中创建普通的Maven模块(不选择任何模版archetype

image-20221114215735953

创建之后的目录:

image-20221114215831895

继承父项目:

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

导入依赖:

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

看一下循环的依赖图:

image-20221114224012386

书写controller层的代码,和Spring MVC一样:

package com.bones.controller;


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

@Controller
public class MyController {
    @ResponseBody
    @RequestMapping("/testController")
    public String testController(){
        return "Hello Spring Boot";
    }
}

写启动类,建议在隔层包的同级创建,比如你的controller类写在com.bones.controller包下,那么启动类写在com.bones.controller这一层包同级。

Spring Boot的启动类的作用是启动Spring Boot项目,是基于Main方法来运行的。

注意:启动类在启动时会做注解扫描(@Controller、@Service、@Repository…),扫描位置为同包或者子包下的注解,所以启动类的位置应放于包的根下。

启动类和启动器的区别

启动类表示项目的启动入口

启动器表示jar包的坐标

必须在包中新建这个类,不能直接放入到java文件夹。

com.bones下新建自定义名称的类(规范:XXXXApplication),可以是项目上下文路径Application

image-20221114223902967
package com.bones;


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

@SpringBootApplication
public class SpringbootPro01Application {
    public static void main(String[] args) {
        //第一个参数是启动类的字节码文件,因为要扫描这个启动类所在的包,第二个参数就是main方法的args参数传入即可
        SpringApplication.run(SpringbootPro01Application.class,args);
    }
}

点击main方法启动即可,可以看一下打印的日志:

image-20221114224226225

访问localhost:8080/testController

image-20221114224317739

显然执行了controller 中的处理单元。

0x03_Spring boot项目搭建方式2

可能在公司中可能会出现必须继承某个项目,如果Spring Boot用了继承就不能继承别的项目了。所以Spring Boot还提供了依赖的方式。


重新创建一个模块:(还是一个普通的maven模块)

image-20221114230323272

导入依赖:

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>2.7.5</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

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

和前一个方法一样写个controller测试即可。

0x04_Spring boot项目搭建方式3(最推荐)

这个方法对于想要省事的来说简直太友好了。这个方式是IDEA自带的项目初始化插件的。


再创建一个项目,但是此时选择Spring initializer

image-20221114231413317

image-20221114231507580

启动成功之后,直接写controller进行测试。启动类不需要自己写,已经有了。(这就是这个方法最推荐的原因,简直爽歪歪)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值