Spring Boot 总结

Spring Boot具有以下几个重要特点:

  1. 简化配置:Spring Boot采用自动化配置的方式,根据classpath中的依赖和配置文件的内容,自动配置应用程序的各个组件,极大地减少了繁琐的配置工作。

  2. 内嵌式容器:Spring Boot内置了多种嵌入式服务器,如Tomcat、Jetty和Undertow,无需单独安装和配置服务器,简化了部署和测试的过程。

  3. 起步依赖:Spring Boot提供了一系列起步依赖,通过引入不同的起步依赖,可以快速集成各种技术和框架,如Web开发、数据库访问、消息队列等,避免了手动管理复杂的依赖关系。

  4. 外部化配置:Spring Boot支持多种方式进行配置,如使用properties文件、YAML文件、环境变量等,统一的规则和优先级处理不同来源的配置信息,使得配置更加灵活和易于管理。

  5. 监控和管理:Spring Boot提供了丰富的监控和管理功能,如健康检查、指标收集、应用程序信息展示等,可通过集成其他开源工具和第三方库实现更强大的功能。

总之约定大于配置因为注解用的多,Spring Boot通过简化配置、内嵌式容器、起步依赖、外部化配置以及监控和管理等特点,极大地提高了Java应用程序的开发效率和部署运行的便捷性。它的出现让开发人员能够更专注于业务逻辑的实现,而无需过多关注繁琐的框架配置和环境搭建。他已经帮我们封装好了,直接用就行。

Spring Boot是一个旨在简化Java应用程序开发的框架,它提供了自动化配置和约定优于配置的原则,大大减少了繁琐的配置工作。然而,对于一些复杂的应用程序或者需要高性能的场景,我们可能需要进一步优化Spring Boot应用程序的启动流程。下面是一些优化策略供参考:

  1. 减少自动装配的组件:尽量避免过多的自动配置组件加载,可以通过exclude和excludeName属性来排除不需要的自动配置类。只加载必要的组件可以加快启动速度。

  2. 使用懒加载:Spring Boot支持将Bean设置为懒加载,在需要使用时才进行实例化和初始化。可以通过@Lazy注解或者在配置文件中设置spring.main.lazy-initialization=true来启用懒加载特性,减少不必要的组件初始化时间。

  3. 精简依赖:在引入依赖时,尽量只引入需要的依赖项,避免引入无用的依赖。可以使用Maven或Gradle的依赖分析工具来检查和排除无用的依赖。

  4. 启用编译优化:在Maven或Gradle构建配置中,可以启用一些编译优化参数,如启用编译器优化、删除无用的类和方法等。这些优化可以提高应用程序的运行效率。

  5. 启用缓存和预热:在生产环境中,可以启用缓存来减少启动时间。可以使用缓存框架(如Ehcache、Redis)来缓存自动配置结果或者其他耗时的初始化过程。另外,可以通过预热,在应用程序启动之前提前初始化一些关键组件,加速启动过程。

  6. 使用命令行参数:Spring Boot支持通过命令行参数来覆盖默认的配置值,可以根据实际需要调整相关的配置参数。通过合理使用命令行参数,可以更灵活地控制应用程序的启动过程。

  7. 异步初始化:对于一些耗时的初始化操作,可以考虑使用异步初始化来提高启动性能。可以使用@PostConstruct注解配合@Async注解,将初始化操作放到异步线程执行,不阻塞主线程的启动过程。

大概流程

  1. SpringApplication类的run()方法是Spring Boot应用程序的启动方法,它负责加载配置、初始化上下文并启动内嵌的Web服务器

  2. 要设置应用程序的类型,可以使用SpringApplication类的setWebApplicationType(WebApplicationType webApplicationType)方法。该方法接受一个WebApplicationType枚举作为参数,用于指定应用程序的类型。WebApplicationType枚举定义了三种应用程序类型:NONE:表示非Web应用程序。适用于不使用任何Web框架的纯Java应用程序。SERVLET:表示基于Servlet的Web应用程序。适用于使用Servlet容器(如Tomcat、Jetty等)运行的Web应用程序。REACTIVE:表示响应式Web应用程序。适用于使用响应式编程模型(如Spring WebFlux)构建的Web应用程序。

    SpringApplication application = new SpringApplication(MyApplication.class);
    application.setWebApplicationType(WebApplicationType.SERVLET);
    
  3. 要设置初始化器(Initializer)来在应用程序启动时执行特定的初始化逻辑,可以使用SpringApplication类的addInitializers()方法。该方法接受一个或多个ApplicationContextInitializer类型的参数,用于添加需要执行的初始化器。

    SpringApplication application = new SpringApplication(MyApplication.class);
    application.addInitializers(new MyInitializer());
    

  4. 要设置监听器(Listener)来监控应用程序的生命周期事件或其他特定事件,用于添加需要监听的监听器。

    SpringApplication application = new SpringApplication(MyApplication.class);
    application.addListeners(new MyListener());
    
  5. 最后走主启动类,都打包在一起运行。

总结:

Spring Boot它去做了就算没有Spring Boot我们自己也会去写的一些文件配置。只要用注解就行了它已经帮我们封装好了,它会帮我们去自动化配置,"约定优于配置"。去繁从简,基于spring框架的项目,使用Spring Boot我们可以不用或者只要很少的Spring配置,也不怎么会遇到配置文件报错的时候,它可以快速搭建项目,项目可以独立运行,不用依赖外部容器,提供运行时监听,极大提高效率。低耦合,高内聚。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值