本节主要:

1:解析spring boot入口和@SpringBootApplication源码详解

SpringBootApplication包含:

@SpringBootConfiguration

@ComponentScan

@EnableAutoConfiguration

本文是《凯哥陪你学系列-框架学习之spring boot框架学习》中第二篇 spring boot核心(1)

声明:本文系凯哥Java(www.kaigejava.com)原创,未经允许,禁止转载!

一:spring boot 入口和注解解析

回顾上篇中,我们讲到第一个spring boot应用中入口:

请点击此处输入图片描述

说明:

spring boot的项目一般都会有*Application的入口类,入口类中会有main方法。这是一个标准的java应用程序的入口方法。

@controller:这个注解是spring的。声明是一个controller类。

@springBootApplication:这个是springboot的注解。

请看这个类的源码:

请点击此处输入图片描述

从源码中,我们可以看到这个注解其实是一组组合注解。

先来看@springbootConfiguration这个注解。

请点击此处输入图片描述

从其源码中,我们可以看到该注解使用了@configuration注解。所以在使用@springbootConfiguration注解的时候,可以不使用@configuration注解。

其实在springboot项目中给推荐使用springbootConfiguration来替代@configuration注解的。

回来接着看springbootApplication注解,其包含了@componentScan注解。

@componentScan源码如下:

请点击此处输入图片描述

@conponentScan:这个注解默认扫描@springbootapplication所在类的同级目录以及他的子目录。

从componentscan源码注释中我们可以看要:

请点击此处输入图片描述

@EnableAutoConfiguration注解讲解:

查看该注解源码及注释:

请点击此处输入图片描述

该注解启用自动配置。从源码的注释中我们可以知道,该注释会使spirng boot根据项目中依赖的jar包自动配置项目的配置项。

例如:我们在pom.xml中配置了spring-boot-starter-web的依赖,项目中也就会引入SpringMVC的依赖,Spring Boot就会自动配置tomcat和SpringMVC。spring boot自动配置后如下图:

请点击此处输入图片描述

延伸:

通过上面的了解,我们得知,spring boot会根据项目中jar包依赖,自动做出配置,spring boot支持的自动配置如下(非常多的。下图并非全部):

请点击此处输入图片描述

从上图中我们可以看到很多我们熟悉的已经被自动配置了。

如:

批处理框架 spring batch。

cache缓存

spring cloud

数据处理的 spring jpa

mongodb、neo4j、redi、solr等

如果我们想,不需要spring boot自动配置,想关闭某一项的自动配置,又该如何设置呢?

欢迎继续学习下一篇。在下一篇中我们将做出解答。

本系列其他文章:

spring boot框架学习学前掌握之重要注解(1)-spring的java配置方式

spring boot框架学习学前掌握之重要注解(2)-通过java的配置方式进行配置spring

spring boot框架学习学前掌握之重要注解(3)-通过注解方式读取外部资源配置文件

spring boot框架学习学前掌握之重要注解(4)-通过注解方式读取外部资源配置文件2

spring boot框架学习1-认识spring boot和快速入门

spring boot框架学习2-spring boot核心(1)

欢迎关注凯哥公众号:凯哥Java

欢迎访问凯哥个人网站:www.kaigejava.com

本文出处:http://www.kaigejava.com/article/detail/49

转载于:https://blog.51cto.com/kaigejava/1976351

spring boot框架学习2-spring boot核心(1)相关推荐

  1. Spring Boot 框架学习笔记(二)(配置文件与数据注入 yaml基本语法 JSR303数据验证 多环境切换 )

    Spring Boot 框架学习笔记(二) 六.appliaction.properties配置与数据注入 6.1 `@Value`注解 测试注入数据 读取输入流 6.2 读取配置文件数据注入 单文件 ...

  2. spring boot框架学习学前掌握之重要注解(2)-通过java的配置方式进行配置spring

    本节主要内容: 1:通过代码演示实现零XML配置spring 2:使用重点注解理解 声明: 本文是<凯哥陪你学系列-框架学习之spring boot框架学习>中spring boot框架学 ...

  3. Spring Boot 框架学习笔记(五)( SpringSecurity安全框架 )

    Spring Boot 框架学习笔记(五) SpringSecurity安全框架 概述 作用 开发示例: 1. 新建项目 2. 引入依赖 3. 编写`SecurityConfig`类,实现认证,授权, ...

  4. Java Spring MVC框架 VIII 之 Spring MVC拦截器

    Java Spring MVC框架 VIII 之 Spring MVC拦截器 Spring MVC拦截器 1.拦截器简介 拦截器是SpringMvc框架提供的功能 它可以在控制器方法运行之前或运行之后 ...

  5. 【Spring源码学习】Spring Bean的销毁

    [Spring源码学习]Spring Bean的销毁 一.注册bean销毁的类 1.registerDisposableBeanIfNecessary() 2.DisposableBeanAdapte ...

  6. spring框架学习 - 使用 Spring 的面向切面编程 补充1

    接上一篇博客:https://blog.csdn.net/qq_43605444/article/details/122050740?spm=1001.2014.3001.5502 6.选择要使用的 ...

  7. SMM框架学习日志——Spring详述

    1.Spring5 1.1 简介 Spring makes programming Java quicker, easier, and safer for everybody. Spring's fo ...

  8. spring框架学习 - 使用 Spring 的面向切面编程

    接上一篇博客:https://blog.csdn.net/qq_43605444/article/details/122029896?spm=1001.2014.3001.5502 七.使用 Spri ...

  9. 框架学习之Spring 第五节 SSH整合开发[Spring2.5+Hibernate3.3+Struts2]

    1.首先整合Spring和Hibernate ①引入jar包: hibernate核心安装包下的: hibernate3.jar lib\required\*.jar lib\optional\ehc ...

最新文章

  1. Java开源搜索引擎
  2. C++学习之:复制和粘贴文件/文件夹
  3. 编译安装PHP 时遇到问题解决方法.
  4. 为你的移动页面寻找一丝新意——手机互动网页项目总结(上)
  5. 关系型数据库 (数据库类型)
  6. vs创建html页面提示未找到,VS2015 打开html 提示 未能完成操作 解决办法
  7. LeetCode 684. Redundant Connection
  8. 单片机c语言必背代码_【典藏】深度剖析单片机程序的运行(C程序版)
  9. 执行全文索引时出现权限不足的解决方法
  10. linux --- 基础指令
  11. mysql 清空表的两种方法
  12. 上海新阳半导体收到ASML-1400光刻机 将用于研发193nm ArF光刻胶
  13. unity3d自己写角色移动脚本
  14. php 网页加背景音乐,网站背景音乐实现方法_HTML/Xhtml_网页制作
  15. 多边形的凹凸性判断及python实现
  16. Windows中删除文件时提示没有权限怎么办?
  17. Springboot 整合百度地图 API
  18. ES06# Filebeat采集原理与监控指标梳理
  19. Golang 获取月初和月底日期
  20. 一套好用的MES系统,到底要具备哪些特质?

热门文章

  1. Java™ 教程(原子变量)
  2. 谈谈原子变量与锁的性能比较
  3. gradle入门(1-7)eclipse和gradle集成插件的安装和使用
  4. 查询系统--基于Solr4.9.0实现
  5. Swift游戏实战-跑酷熊猫 12 与平台的碰撞
  6. [120_移动开发Android]007_android开发之SAX操作XML文件
  7. Servlet多线程机制
  8. 微软中文论坛2010新年Party手记
  9. IPv6網絡開發范例
  10. 搜索引擎只能抓取html文件,为什么有些明明存在的网页不能被搜索到?