`
youyu4
  • 浏览: 442663 次
社区版块
存档分类
最新评论

Spring-boot汇总

 
阅读更多

Spring-boot汇总

 

 

       Spring-boot的目的是帮助开发者快速搭建Spring框架,帮助开发者快速启动web容器,Spring-boot继承了原有Spring框架的优秀基因,Spring-boot化简了使用Spring的过程。

 

 

核心功能

 

1. 从大量XML配置改成JavaConfig,看起来更清晰,因为分开了一个个类,不需要配置web.xml,javaConfig时,要将信息注入到bean,如:拦截器、过滤器、DispatcherServlet配置

 

2. 内嵌Tomcat(默认)和Jetty,只要有JDK就能启动web服务

 

3. 提供starter简化Maven配置,只要用了spring-boot-starter-web,就能自动加入很多依赖包,如:webmvc、core、tomcat、annotation

 

4. 开发支持热部署,spring loaded

 

5. 只有一个全局的application.properties文件,这里放整个项目的总体配置

 

6. 日志记录默认使用logback,可以根据配置文件激活不同的loging.level,logback可以有自己的xml,用于配置激活,还有log的格式化,还有日志文件大小,压缩打包。

 

 

 

 

Spring-boot 自动配置原理

 

       这里还是要看@SpringBootApplication这个注释,他里面实现是一个组合注释,其核心是由@EnableAutoConfiguration提供,里面有个SpringFactoriesLoader.loadFactoryNames方法,扫描spring.factories中要自动配置哪些类。

 

       所以,在pom中选择spring-boot-starter-web,是挺重要的,加入这个依赖,就相当于加入了很多spring的常用依赖。

 

 

 

 

Spring-boot-starter的工作原理

 

1. Spring-boot启动时,扫描所有依赖的jar包,寻找包含spring.factories文件的jar

2. 根据spring.factories配置,加载自动加载的类

3. 根据 @Conditional注解的条件,进行自动配置并将Bean注入Spring Context

 

 

 

 

自定义Spring-boot-starter注意事项

 

1. springboot默认scan的包名是其main类所在的包名。如果引入的starter包名不一样,需要自己添加scan。

@ComponentScan(basePackages = {"com.xixicat.demo","com.xixicat.sms"})

 

 

2. 对于starter中有feign的,需要额外指定

@EnableFeignClients(basePackages = {"com.xixicat.sms"})

 

 

3. 对于exclude一些autoConfig

@EnableAutoConfiguration(exclude = {MetricFilterAutoConfiguration.class})

 

 

 

 

 

对Spring-boot的认识

 

       spring Boot是一个开源框架,它可用于创建可执行的Spring应用程序,采用了习惯优于配置的方法。此框架的神奇之处在于@EnableAutoConfiguration注解,此注释自动载入应用程序所需的所有Bean——这依赖于Spring Boot在类路径中的查找。

 

 

@Enable*注释

 

@Enable*注释并不是新发明的注释,早在Spring 3框架就引入了这些注释,用这些注释替代XML配置文件。

 

  • @EnableTransactionManagement:它能够声明事务管理
  • @EnableWebMvc:它能启用Spring MVC
  • @EnableScheduling:它可以初始化一个调度器。 

 

 

属性映射

 

下面看MongoProperties类,它是一个Spring Boot属性映射的例子:

 

@ConfigurationProperties(prefix = "spring.data.mongodb")
public class MongoProperties {

    private String host;
    private int port = DBPort.PORT;
    private String uri = "mongodb://localhost/test";
    private String database;

    // ... getters/ setters omitted
}

 

 @ConfigurationProperties注释将POJO关联到指定前缀的每一个属性。例如,spring.data.mongodb.port属性将映射到这个类的端口属性。 

 

强烈建议Spring Boot开发者使用这种方式来删除与配置属性相关的瓶颈代码。

 

 

 

@Conditional注释

 

Spring Boot的强大之处在于使用了Spring 4框架的新特性:@Conditional注释,此注释使得只有在特定条件满足时才启用一些配置。 

 

在Spring Boot的org.springframework.boot.autoconfigure.condition包中说明了使用@Conditional注释能给我们带来什么,下面对这些注释做一个概述:

 

  • @ConditionalOnBean
  • @ConditionalOnClass
  • @ConditionalOnExpression
  • @ConditionalOnMissingBean
  • @ConditionalOnMissingClass
  • @ConditionalOnNotWebApplication
  • @ConditionalOnResource
  • @ConditionalOnWebApplication

 

 

应用程序上下文初始化器

 

       spring.factories还提供了第二种可能性,即定义应用程序的初始化。这使得我们可以在应用程序载入前操纵Spring的应用程序上下文ApplicationContext。 

 

       特别是,可以在上下文创建监听器,使用ConfigurableApplicationContext类的addApplicationListener()方法。 

 

       AutoConfigurationReportLoggingInitializer监听到系统事件时,比如上下文刷新或应用程序启动故障之类的事件,Spring Boot可以执行一些工作。这有助于我们以调试模式启动应用程序时创建自动配置的报告。 

 

      要以调试模式启动应用程序,可以使用-Ddebug标识,或者在application.properties文件这添加属性debug= true。

 

 

 

 

学习

http://tengj.top/2017/04/24/springboot0/

分享到:
评论

相关推荐

    spring-boot-reference.pdf

    根据提供的文件内容,我们得知该文档是关于Spring Boot 2.0.3版本的参考手册,涵盖了从安装、开发到生产环境的各个方面,是一份集成了Spring Boot多项特性的指导性文档。由于文件内容未提供完整的部分,以下是对文档...

    微服务架构:Spring-Cloud汇总.pdf

    Spring Cloud基于Spring Boot,使得创建和配置微服务变得简单易行。Spring Boot是一个快速开发框架,用于简化Spring应用程序的初始设置和常规配置。 在Spring Cloud项目中,Eureka是一个重要的组件,用于服务注册与...

    spring-boot-demo:Spring Boot的基础教程,由浅入深,一步一步学习Spring Boot,最后学到的不单单是基础!Spring Cloud基础教程请看:https:github.comroncoospring-cloud-demo

    Spring Boot演示:| Spring Cloud演示:| 本项目为Spring Boot的基础教程 教程视频: 教程视频: 教程视频: 项目文档 spring-boot-demo 项目说明 原始码只供学习使用,更多请看视频 技术交流 QQ3群:738785494 ...

    event-driven-spring-boot:示例应用程序,用于演示在Spring Boot中处理域事件的各种方式

    Spring Boot的事件驱动应用程序 该项目试图捕获在处理事件驱动的Spring Boot应用程序时具有的各种选项。 正在使用的以下Spring技术: Sprint Boot 春云流兔 Spring Data JPA 这些示例包含各种不同的建模和处理事件...

    Spring Boot 学习笔记完整教程.pdf

    ### Spring Boot 学习笔记知识点 #### 1. Spring Boot 简介 Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。它使用了特定的方式来配置Spring,使得开发者...

    spring-boot-demo

    Spring Boot系列个人学习写的demo汇总,请大家多多指教纸上得来终觉浅,绝知此事要躬行以前总是喜欢看别人的代码, 看别人的开源项目,发现了有用了就弄个star,想着以后用上了就过来搬走,自己除了工作上写代码,...

    spring-boot-demo:Spring Boot和Spring Cloud和Spring Security演示案例(Spring学习示例实战项目)

    SpringBoot + SpringCloud + SpringSecurity学习过程中的二进制汇总,沉淀记录下学习历程 1.知识点图谱 所有博文集中发布在个人博客网站: 大致规划的内容包括以下章节,希望能用半年到一年(严重超期)的时间完成....

    基于 SpringBoot + ShardingSphere(Sharding-JDBC) 的水平分表测试项目+源代码+文档说明

    - **压测汇总表** - **分片:** 单库多表,通过 Sharding-JDBC 水平分表后操作 - **不分片:** 单库单表,通过 JDBC 操作 ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才...

    SpringBoot框架汇总

    3. **起步依赖(Starter POMs)**:SpringBoot提供了各种起步依赖,如`spring-boot-starter-web`、`spring-boot-starter-data-jpa`等,只需引入相应的依赖,即可快速构建不同类型的项目。 4. **运行方式**:...

    spring-mongo整合文档

    - Spring框架:需集成Spring Boot或Spring框架的相应版本。 **3. 帮助资源** - **社区论坛**:Spring Data MongoDB拥有活跃的社区论坛,是获取帮助和交流经验的好去处。 - **专业支持**:对于企业级项目,还可以...

    Spring Boot面试题汇总.pdf

    Spring Boot 是一个由 Pivotal 团队创建的开源框架,它是基于 Spring Framework 的一个子项目,旨在简化 Spring 应用程序的初始搭建以及开发过程。Spring Boot 的设计目标是提供一个“开箱即用”的体验,使得开发者...

    spring boot jar

    spring boot 所有jar包汇总

    Spring Boot开发指南:资源汇总与最新进展

    内容概要:本文全面介绍了Spring Boot这一流行开源框架,从官方文档、教程、社区资源到实战项目和书籍推荐,详细解析了Spring Boot的核心特性及其最新进展。官方文档提供了快速入门、核心特性、自动配置、命令行界面...

    Spring Boot 开发资源汇总及应用指南

    内容概要:本文档列举了多个有助于理解和掌握 Spring Boot 使用方法的资源,包括但不限于官方文档、在线教程、专业书籍、社区支持以及一些优质的博客和文章链接。涵盖的内容详实,旨在为各个水平的学习者提供系统的...

    Spring Boot-配置全局的异常捕获

    汇总目录链接:Spring Boot开发常用技术博客目录 本文只是配置一个简单的全局的异常捕获,如有需要可以根据实际情况开发其它异常和自定义的异常。 web页面跳转 项目结构如下: MyExceptionHandler.java import ...

    demo-spring-react-github:一个演示版spring-react-minimal的版本,添加了GitHub OAuth

    Spring Boot后端 React前端 使用Google的Auth0身份验证 特权级别“未登录”,来宾,成员和管理员,其中 来宾表示您已登录,但使用非ucsb电子邮件地址 成员表示您已使用ucsb电子邮件地址登录 admin表示您位于...

    Azure-Spring-Cloud-Samples:Azure Spring Cloud的示例项目

    在Azure Spring Cloud中运行Spring Boot应用程序需要零代码更改 您可以在找到有关Azure Spring Cloud的更多详细信息。 注意:Azure Spring Cloud在预览中。 您需要在提交请求才能访问该服务。 该请求将根据具体情况...

    microservices-blog:基于微服务架构的博客

    基于spring-security的身份验证服务(spring-boot) Java文章管理服务(spring-boot) Java中用于管理注释的服务(spring-boot) 由提供支持的聊天服务 网关是客户端和不同服务(NodeJs + REST API)之间的唯一...

    spring boot+spring mvc+mybatis+thymeleaf整合开发学生成绩信息管理系统

    项目描述 学生成绩管理系统,有三...spring boot+spring mvc+mybatis+layui+jquery+thymeleaf http://localhost:8080/Sys/loginView 管理员账号 admin admin 老师登录 2020031920 111111 学生账号登录 20200319 111111

Global site tag (gtag.js) - Google Analytics