(一)springboot实战——为什么是springboot?

这篇具有很好参考价值的文章主要介绍了(一)springboot实战——为什么是springboot?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

为什么是springboot?江湖夜雨,传说依旧,不懂springboot一技之长,如何混迹java圈,本节内容我们介绍一下spring的一些基本特性。尤其是springboot3的基本特性,使得我们更好的理解springboot3。

正文

  • springboot的特点

-可以快速的创建一个独立的spring项目,取代老式的SSM项目

- 直接嵌入Tomcat、Jetty、Undertow等servlet容器,启动即部署,不需要单独安装servlet容器

- 简化pom依赖,可以通过starter启动器安装各种场景依赖,如redis、mq、mybais等,也可以自定义starter启动器,功能可插拔

- 按需配置,约定大于配置,所有的配置参数,都有默认配置,如果不配置,就使用默认的配置

- 提供生产级特性:监控指标、健康检查、外部化配置等

总结:开发简化、配置简化、部署简化、监控简化、运维简化、项目整合简化。、

  • springboot的依赖管理机制

- 通过场景启动器starter导入相关maven依赖,根据maven的依赖传递原则,starter启动器的依赖会自动被自定义项目依赖。

- springboot的父项目进行版本号的管理,父项目将常用的资源版本号定义好,避免版本冲突和适配等一系列问题

(一)springboot实战——为什么是springboot?

 - 也可利用maven的就近原则,自定义资源依赖的版本号

  •  springboot的自动配置机制

- springboot的包扫描规则

        a.默认只会扫描主程序类注解@SpringBootApplication下所在的包及其子包

        b.自定义包扫描路径:使用@SpringBootApplication(scanBasePackages = "com")或者使用@ComponentScan("com")指定包路径

- 配置默认值:配置文件的值与Bean配置类的属性一一绑定,加载到容器中

- 按需加载配置:全场景的自动配置都在spring-boot-autoconfiger这个包配置,会按需加载,根据导入的场景依赖的启动器

  • springboot的常用注解 

- 组件注册:

        @Configuration、@SpringBootConfiguration

        @Controller、@Service、@Repository、@Component

        @Bean+@Scope

        @Import

        @ComponentScan

- 条件注解

        @ConditionalOnClass:类路径中存在这个类,则触发指定行为

        @ConditionalOnMissingClass:类路径中不存在这个类,则触发指定行为            @ConditionalOnBean:如果容器中存在该bean组件,则触发指定行为               @ConditionalOnMissingBean:如果容器中不存在该bean组件,则触发指定行为      

- 属性绑定

        @ConfigurationProperties:组件的属性和配置文件中的属性绑定

        @EnableConfigurationProperties:导入第三方的属性配置文件

结语

本节内容到这里就结束了,下期见。。。。。。文章来源地址https://www.toymoban.com/news/detail-485278.html

到了这里,关于(一)springboot实战——为什么是springboot?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • SpringBoot 日志文件:日志的作用?为什么要写日志?

    SpringBoot 日志文件:日志的作用?为什么要写日志?

    日志、日志,日志就是记录发生了什么。为啥要记录发生了什么呢?想象⼀下,如果程序报错了,不让你打开控制台看⽇志,那么你能找到报错的原因吗?因此我们需要记录程序的行为,通过这些行为能让我们更好的发现和定位错误所在位置。 除了发现和定位问题之外,还可

    2024年02月11日
    浏览(14)
  • SpringBoot复习:(34)@EnableWebMvc注解为什么让@WebMvcAutoconfiguration失效?

    SpringBoot复习:(34)@EnableWebMvc注解为什么让@WebMvcAutoconfiguration失效?

    它导入了DelegatingWebMvcConfiguration 它会把容器中的类型为WebMvcConfigurer的bean注入到类型为WebMvcConfigurerComposite的成员变量configurers中。 可以看到它继承了WebMvcConfigurerSupport类 而WebMvcConfigureAutoConfiguration类定义如下 可以看到一个@ConditionalOnMissingBean(WebMvcConfigurationSupport.class)注解。 所

    2024年02月13日
    浏览(8)
  • 深度剖析SpringBoot自动配置原理,为什么SpringBoot能为我们做那么多东西

    深度剖析SpringBoot自动配置原理,为什么SpringBoot能为我们做那么多东西

    本文基于 spring-boot-2.2.6.RELEASE 版本的源码进行说明,不同版本的源码可能会有一些区别。 要清楚SpringBoot自动配置原理,就要明白 @SpringBootApplication 注解的组成,此注解主要是这三个注解组成: @SpringBootConfiguration , @EnableAutoConfiguration , @ComponentScan 。 下面是源码: @SpringBo

    2024年02月13日
    浏览(11)
  • SpringBoot数据源——为什么平时默认线程池是Hikari

    本文主要对DataSourceAutoConfiguration类进行讲解,然后对这个类的注解做一个解释,所以直接打开这个类,开始看…… ps:我用的版本是2.3.0.RELEASE 目录 DataSourceAutoConfiguration类注解 @Configuration(proxyBeanMethods = false) @ConditionalOnClass({ DataSource.class, EmbeddedDatabaseType.class }) @ConditionalOnMis

    2024年02月06日
    浏览(30)
  • MSQL系列(十二) Mysql实战-为什么索引要建立在被驱动表上

    MSQL系列(十二) Mysql实战-为什么索引要建立在被驱动表上

    Mysql实战-为什么索引要建立在被驱动表上 前面我们讲解了B+Tree的索引结构,也详细讲解下 left Join的底层驱动表 选择原理,那么今天我们来看看到底如何用以及如何建立索引和索引优化 开始之前我们先提一个问题, 为什么索引要建立在被驱动表上 ? 1.建表及测试数据 我们先

    2024年02月08日
    浏览(21)
  • 拆解Spring boot:Springboot为什么如此丝滑而简单?源码剖析解读自动装配

    拆解Spring boot:Springboot为什么如此丝滑而简单?源码剖析解读自动装配

    🎉🎉欢迎光临,终于等到你啦🎉🎉 🏅我是苏泽,一位对技术充满热情的探索者和分享者。🚀🚀 🌟持续更新的专栏 《Spring 狂野之旅:从入门到入魔》 🚀 本专栏带你从Spring入门到入魔   这是苏泽的个人主页可以看到我其他的内容哦👇👇 努力的苏泽 http://suzee.blog.csdn

    2024年03月23日
    浏览(10)
  • java的springboot框架中使用logback日志框架使用RabbitHandler注解为什么获取不到消费的traceId信息?

    当使用 Logback 日志框架和 RabbitMQ 的 @RabbitHandler 注解时,如果无法获取消费的 traceId 信息,可能是因为在处理 RabbitMQ 消息时,没有正确地将 traceId 传递到日志中。 为了将 traceId 传递到日志中,你可以利用 MDC(Mapped Diagnostic Context)机制。MDC 是一个线程绑定的上下文容器,允许

    2024年02月09日
    浏览(15)
  • 字节二面:为什么SpringBoot的 jar 可以直接运行?我说因为内嵌了Tomcat容器,他让我出门左转。。

    在传统的Java应用程序开发和部署场景中,开发者往往需要经历一系列复杂的步骤才能将应用成功部署到生产环境。例如,对于基于Servlet规范的Java Web应用,开发完成后通常会被打包成WAR格式,然后部署到像Apache Tomcat、Jetty这样的Web容器中。这一过程中,不仅要管理应用本身的

    2024年04月08日
    浏览(11)
  • 为什么我在Linux部署的Springboot服务,部署成功之后,使用netstat -ntlp | grep java 命令查看对应服务监听的端口,只看到有tcp6的监听,没有tcp的监听?

    这种情况可能是由于 Spring Boot 默认配置使用了 IPv6 地址而没有使用 IPv4 地址。在较新的 Linux 发行版上,IPv6 通常是默认开启的。实际上,如果你的服务正在监听 IPv6 的通配地址 :: ,那么它将同时监听 IPv4(0.0.0.0)和 IPv6(::)的所有地址。换句话说,仅看到 tcp6 监听并不意味

    2024年02月06日
    浏览(9)
  • Netty为什么高效,为什么这么受欢迎?

    Netty为什么高效,为什么这么受欢迎?

    上篇文章通过 Java NIO 的处理流程与 Netty 的总体流程比较,并结合 Netty 的源码,可以更加清晰地理解Netty。本文将结合源码详细解析Netty的高效和强大功能的设计原理,学习 Netty 是如何实现其卓越的性能和功能特性,也希望可以在日后工作中利用到 Netty 的设计思想。 我们先看

    2024年02月12日
    浏览(21)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包