zl程序教程

您现在的位置是:首页 >  后端

当前栏目

springboot系列之初识

SpringBoot 系列 初识
2023-09-27 14:22:26 时间

一、SpringBoot简介

SpringBoot是一个简化Spring开发的应用集成框架,也是j2ee一站式解决方案。它采用约定大于配置的开发原则,去繁就简,能够快速的开发一个应用。在使用SpringBoot进行开发时只需要载入相应的场景启动器starter就可以进行应用开发,SpringBoot将几乎所有的功能场景都抽取出来,做成一个个的starter(场景启动器),只需要在项目里面引入这些starter相关场景的所有依赖就会导入进来。要用什么功能就导入什么场景的启动器。
在不用SpringBoot进行应用开发之前,我们开发应用会配置大量的xml文件,现在不用我们自己手动的去写一堆xml配置,应用大多采用springboot的默认配置即可满足需求,如果不满足需求我们也可以修改默认配置来使其满足我们的需要。

二、优点

SpringBoot的优点如下图所示:

三、单体应用与微服务

单体应用是把所有的应用模块都写在一个应用中,这样方便了开发与测试,但是当需求不停的增加膨胀时就会导致项目越写越大,模块之间的耦合度也会越来越高,这样就导致项目变得越来越臃肿,越来越难以维护。
微服务是一种架构风格,用微服务可以将应用的模块单独部署,对不同的模块进行不同的管理操作,不同的模块生成小型服务,每个功能元素最后都可以成为一个可以独立替换、独立升级的功能单元,各个小型服务之间通过http协议进行通信。

四、springboot的核心特点

1、微服务:使用SpringBoot可以生成独立的微服务功能单元。

2、自动配置:针对很多Spring常见的应用功能,SpringBoot都提供了相关的默认配置,在开发时只需要做少量的配置即可进行应用程序开发。

3、场景启动器starter:需要什么功能就导入相应的starter,即可完成相应依赖包的导入。

4、Actuator:可以在生产环境中监控当前应用程序状态,例如程序的健康,虚拟机等信息,并且可以将这些监控信息通过前端以可视化的界面展示出来,以便实时掌握程序的运行情况。

五、helloworld案例

运行结果截图:

可以将应用打包成可执行的jar,简化了部署,需要在pom.xml文件中添加如下插件:

  <build>
        <plugins>
            <!-- 简化部署,可以将应用打包成一个jar包 -->
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

运行项目时cmd进入项目目录,执行 java -jar demo-0.0.1-SNAPSHOT.jar 即可启动项目。

解析:
每一个springboot的运行都是从springboot的入口类开始执行的。

@SpringBootApplication //启动注解 用来标注主程序类 说明这是一个springboot应用
@ComponentScan(basePackages = {"com.test.demo.controller"}) //组件扫描,只要是标注了@Service等注解的都扫描注入到ioc容器中
public class DemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}
// 需要注意的是:java代码必须和启动类在同一目录下

启动类注解解析:

1.程序从main方法开始运行
2.使用SpringApplication.run()加载主程序类
3.主程序需要标注@SpringBootApplication,表示这是一个springboot应用
4.@EnableAutoConfiguration是springboot的核心注解,即自动配置,相关的自动配置都是由这个注解完成
5.@Import({AutoConfigurationImportSelector.class}) 导入所有的自动配置场景
6.@AutoConfigurationPackage定义默认的包扫描规则
7.程序启动扫描加载主程序类所在的包以及下面所有子包的组件

AutoConfigurationPackage:
自动扫描@SpringBootApplication标记的主类,在主类所在包或者所在的子包下面找相应的控制类,然后根据相应的注解自动配置相应的项目所需的bean。

其实springboot就是帮我们整合集成了很多开发场景,把这些场景做成一个个的starter,我们开发应用时直接导入即可,从而让我们的开发变得更加简单快速,其核心还是Spring框架基础。


参考博文:
(1) https://baijiahao.baidu.com/s?id=1623648034778672046&wfr=spider&for=pc
(2) https://www.cnblogs.com/nevermorewang/p/9053504.html (对springboot的理解)
(3) https://www.zhihu.com/question/39483566 (知乎上对springboot的理解的讨论)
(4) https://docs.spring.io/spring-boot/docs/current/reference/html/ (springboot官网doc)