• 究竟什么是Spring Boot,和普通Spring项目有什么区别


    究竟什么是Spring Boot,和普通Spring项目有什么区别

    (44条消息) 究竟什么是Spring Boot,和普通Spring项目有什么区别_拖拖的博客-CSDN博客

    背景
    最近我们打算重构设计一个公共包,其中涉及到的一个命题就是公共包要不要引入Spring Boot。那么问题来了究竟什么是Spring Boot 呢

    Spring简介
    Spring框架为开发Java应用程序提供了全面的基础架构支持。

    它包含一些很好的功能,如依赖注入和开箱即用的模块,如:

    Spring JDBC
    Spring MVC
    Spring Security
    Spring AOP
    Spring ORM
    Spring Test
    这些模块可以大大缩短应用程序的开发时间。

    Spring Boot 简介
    Spring Boot是在Spring的基础上面搭设的框架,目的是为了简化Spring项目的搭设和开发过程。

    Spring Boot 特性
    自动配置 Spring-boot-starter 开箱即用依赖模块
    简化统一配置文件
    监控管理actuator
    内嵌了如Tomcat,Jetty,所有的依赖都打到一个jar包里面,可以直接java -jar 运行
    自动配置 Spring-boot-starter 开箱即用依赖模块
    通过@SpringBootApplication注解配置一个Spring Boot项目。

    它是一个组合注解包含了@EnableAutoConfiguration注解来启动自动配置。

    该注解利用@Condition相关的注解来扫描class path路径下引入的jar包,容器中的bean对象,以及配置文件中的相关属性,来自动配置,并注入相关的bean对象。

    SpringBoot为我们提供了简化企业级开发绝大多数场景的starter pom,只要使用了相关场景的spring-boot-starter,相关的技术配置就会被简化甚至不需要配置,就可以得到SpringBoot自动配置的Bean。
    参考Spring Boot文档 Starters章节

    举例:
    如果我们需要应用需要web的话需要引入spring-web spring-webmvc等几个依赖,还需部署tomcat容器,配置 web.xml文件(上下文,DispatcherServlet,mapping等)

    如果是Spring boot的话只需要引入spring-boot-starter-web 其他的都会自动配置且注入好。简洁,省事。

    <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    1
    2
    3
    4
    SpringBoot还帮助我们统一做了版本管理,只需引入>spring-boot-starter-parent的版本号即可,Spring Boot有做大量的版本兼容测试,因此可以避免我们自己设置版本导致的兼容问题。
    <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.4.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
    </parent>
    1
    2
    3
    4
    5
    6
    在spring-boot-starter-parent中定义

    <properties>
    <activemq.version>5.15.4</activemq.version>
    <antlr2.version>2.7.7</antlr2.version>
    <appengine-sdk.version>1.9.64</appengine-sdk.version>
    <artemis.version>2.4.0</artemis.version>
    <aspectj.version>1.8.13</aspectj.version>
    <assertj.version>3.9.1</assertj.version>
    <atomikos.version>4.0.6</atomikos.version>
    <bitronix.version>2.1.4</bitronix.version>
    <build-helper-maven-plugin.version>3.0.0</build-helper-maven-plugin.version>
    <byte-buddy.version>1.7.11</byte-buddy.version>
    <caffeine.version>2.6.2</caffeine.version>
    <cassandra-driver.version>3.4.0</cassandra-driver.version>
    <classmate.version>1.3.4</classmate.version>
    <commons-codec.version>1.11</commons-codec.version>
    <commons-dbcp2.version>2.2.0</commons-dbcp2.version>
    <commons-lang3.version>3.7</commons-lang3.version>
    <commons-pool.version>1.6</commons-pool.version>
    ...
    </properties>

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    简化统一配置文件
    Spring 相关的xml配置文件,全部采用@Configuration代码的方式配置处理,不需要再维护一堆散乱无章的xml文件

    应用相关的配置默认用application-*.yml配置。约定优先,不再需要直接配置文件

    提供了@ConfigurationProperties注解将配置项自动转换为javaBean对象方便使用

    监控管理actuator
    监控管理是生产级别必不可少的组件。项目中添加了spring-boot-starter-actuator依赖和少许的配置,及可以实现应用的监控和管理功能

    <dependencies>
    <dependency>
    <groupId> org.springframework.boot </ groupId>
    <artifactId> spring-boot-starter-actuator </ artifactId>
    </ dependency>
    </ dependencies>
    1
    2
    3
    4
    5
    6
    可以http或者jmx的方式连接。

    出于安全考虑并不会所有的端口都默认打开,需要在配置文件中配置需要打开的端口
    有如下端口

    健康
    环境变量
    Spring MVC映射url
    关闭服务
    加载class列表
    自动配置结果
    缓存
    session
    dump

    参考Spring Boot文档Actuator章节


    结论
    Spring Boot是在Spring的基础上面搭设的框架,目的是为了简化Spring项目的搭设和开发过程。不存在冲突的问题。

    它提供了如下特性如果有需求则可以引入

    自动配置 Spring-boot-starter 开箱即用依赖模块
    简化统一配置文件
    监控管理actuator
    内嵌了如Tomcat,Jetty,所有的依赖都打到一个jar包里面,可以直接java -jar 运行
    ————————————————
    版权声明:本文为CSDN博主「拖布鞋」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/qq_15288023/article/details/89450360

  • 相关阅读:
    关于DataGrid最后一页只有一行记录时,删除此记录出错的问题
    数据库开发个人总结(ADO.NET小结)
    MSSQL server数据库开发精典技巧
    愈强愈勇(奥运六星)
    中国与日本的生活对比 转)
    古龙妙语录
    DataGrid单击行时改变颜色
    VS.NET 2003 控件命名规范
    qt国际化
    Histogram matching using python, opencv
  • 原文地址:https://www.cnblogs.com/zkwarrior/p/15549338.html
Copyright © 2020-2023  润新知