(图片来源于网络,侵删!!!)

l  @RestController

因为我们例子是写一个web应用,因此写的这个注解,这个注解相当于同时添加@Controller和@ResponseBody注解

l  @SpringBootApplication

由于大量项目都会在主要的配置类上添加@Configuration,@EnableAutoConfiguration,@ComponentScan三个注解。

因此Spring Boot提供了@SpringBootApplication注解,该注解可以替代上面三个注解(使用Spring注解继承实现)。

l  @EnableAutoConfiguration

Spring Boot运行是由注解@EnableAutoConfiguration提供的,SpringBoot建议只有一个带有该注解的类。添加完该注解之后,Spring Boot会自动根据你jar包的依赖来自动配置项目。

这里的关键功能是@Import注解。@AutoConfigurationImportSelector使用SpringFactoriesLoader.loadFactoryNames方法来扫描具有MEAT-INF/spring.factories文件的jar包(注意:1.5版本以前使用EnableAutoConfigurationImportSelector类,1.5以后这个类废弃了,本次示例用的是1.8,使用的是AutoConfigurationImportSelector类)

(上述过程均可在源码中看到,感兴趣的读者可以按照上述顺序对源码进行查询学习,此处不再一一说明。)

下面是spring-boot-autoconfigure-2.1.3.RELEASE.jar下的MEAT-INF中的spring.factories文件的部分内容。

Spring Boot框架的自动配置的更多相关文章

  1. Spring Boot之实现自动配置

    GITHUB地址:https://github.com/zhangboqing/springboot-learning 一.Spring Boot自动配置原理 自动配置功能是由@SpringBootA ...

  2. 4、Spring Boot 2.x 自动配置原理

    1.4 Spring Boot 自动配置原理 简介 spring boot自动配置功能可以根据不同情况来决定spring配置应该用哪个,不应该用哪个,举个例子: Spring的JdbcTemplate ...

  3. Spring Boot面试杀手锏————自动配置原理

    转:https://blog.csdn.net/u014745069/article/details/83820511 引言不论在工作中,亦或是求职面试,Spring Boot已经成为我们必知必会的技 ...

  4. 学记:为spring boot写一个自动配置

    spring boot遵循"约定优于配置"的原则,使用annotation对一些常规的配置项做默认配置,减少或不使用xml配置,让你的项目快速运行起来.spring boot的神奇 ...

  5. Spring Boot 框架学习 (一)配置并运行Spring Boot 框架

    下载开发工具: 下载完成打开以后,第一步检查环境 查看jdk是否配置: 接着一定要注意,maven通常情况下它是没有给你配置的,要自行配置: 右键新建: 然后依赖选择web.跟Mybatis就行了. ...

  6. SpringBoot 源码解析 (五)----- Spring Boot的核心能力 - 自动配置源码解析

    在上一篇博客中分析了springBoot启动流程,大体的轮廓只是冰山一角.今天就来看一下springBoot的亮点功能:自动化装配功能. 先从@SpringBootApplication开始.在启动流 ...

  7. Spring Boot框架 - application.properties配置

    阅读此文章之前,需要参考 https://www.cnblogs.com/mysummary/p/12238242.html 创建Spring Boot项目 建成后目录如下 一.在com.demo.s ...

  8. 初识Spring Boot框架(二)之DIY一个Spring Boot的自动配置

    在上篇博客初识Spring Boot框架中我们初步见识了SpringBoot的方便之处,很多小伙伴可能也会好奇这个Spring Boot是怎么实现自动配置的,那么今天我就带小伙伴我们自己来实现一个简单 ...

  9. Spring Boot 框架下使用MyBatis访问数据库之基于XML配置的方式

    MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.MyBatis 可以使用简单的 XML ...

随机推荐

  1. git(二) 分支管理

    概念 分支就是科幻电影里面的平行宇宙,当你正在电脑前努力学习Git的时候,另一个你正在另一个平行宇宙里努力学习SVN. 如果两个平行宇宙互不干扰,那对现在的你也没啥影响.不过,在某个时间点,两个平行宇 ...

  2. Cross-Validation & Nested Cross-Validation

    分享stackexchange的一篇问答:https://stats.stackexchange.com/questions/11602/training-with-the-full-dataset- ...

  3. 软件测试第一次试验JUnit

    一.Junit, hamcrest以及eclemma的安装 对于Junit和hamcrest的安装,我并没有从下载Junit和hamcrest相关的jar包然后通过build path导入到项目中,而 ...

  4. kafka已生产消息查看

    在测试过程中有用到kafka,由于开发说我往kafka里面生产了消息,通知了对方要消费....看到这块一头雾水 kafka主要2个功能生产和消费 ##查询topic列表 ./kafka-topics. ...

  5. 七、Linux的权限命令

    1. 文件权限 r:对文件是指可读取内容 对目录是可以ls w:对文件是指可修改文件内容,对目录 是指可以在其中创建或删除子节点(目录或文件) x:对文件是指是否可以运行这个文件,对目录是指是否可以c ...

  6. chrome 无头浏览器的使用

    在linux服务器上安装chrome : ubuntu: 下载页面https://www.chrome64bit.com/index.php/google-chrome-64-bit-for-linu ...

  7. H5横向滚动提示

    <marquee>啦啦啦,Hello World</marquee>

  8. Struts中的匹配规则

    <constant name="struts.action.extension" value="action,do,htm"/> 表示之后后缀名为a ...

  9. STL空间配置器、vector、list、deque、map复习

    本文写于2017-03-03,从老账号迁移到本账号,原文地址:https://www.cnblogs.com/huangweiyang/p/6440830.html STL的六大组件:容器.算法.迭代 ...

  10. 查询数据库游标使用情况以及sql

    ----查询游标使用情况以及游标最大数---- SELECT MAX(A.VALUE) AS HIGHEST_OPEN_CUR, P.VALUE AS MAX_OPEN_CUR FROM V$SESS ...