文档章节

springboot备忘

v1-alpha
 v1-alpha
发布于 2016/08/28 15:29
字数 562
阅读 371
收藏 0

springboot,alpha简称sb

预备——spring注解配置

@configuration

注解配置类,ConfigurationClassPostProcessor里解析其他注解,context:annotation-config/会注册在这个postProcessor.
用ConfigurationClassParser处理了@PropertySource, @ComponentScan, @Import, @ImportResource, @Bean.

@EnableAutoConfiguration

@Import(EnableAutoConfigurationImportSelector.class)
EnableAutoConfigurationImportSelector:使用SpringFactoriesLoader加载META-INF/spring.factories里的EnableAutoConfiguration对应的类。然后再用@AutoConfigureBefore和@AutoConfigueAfter排序
AutoConfiguration里面大部分是用@Conditional@configuration来注解注入相关组件

@ComponentScan

@PropertySource @PropertySources

@Import @ImportResource

@Conditional

在解析@Import和@Bean时用到

工作机制

@RestController

=> 这个不属于sb,乱入
=> @RestController加了@Controller,@ResponseBody注解
=> 在RequestResponseBodyMethodProcessor的supportsReturnType多加了判断方法所在class的注解是否注解了@ResponseBody

@SpringBootApplication

相当于
@Configuration:
@EnableAutoConfiguration:
@ComponentScan:

SpringApplication

将一个典型的Spring应用启动的流程“模版化”,并有很多扩展点来做特殊处理。和AbstractApplicationContext.refresh()一样各种准备和扩展点。

各种场景下的自动配置一站式插拔模块

来自SpringBoot揭秘
sb从两个主要层面影响Spring社区的开发者们:
1)基于Spring框架的“约定优先于配置(COC)”理念以及最佳实践之路;
2)提供了针对日常企业应用研发各种场景的spring-boot-starter自动配置依赖模块,如此之多“开箱即用”的依赖模块,使得开发各种场景的Spring应用更加快速和高效。

sb的行为可以进行干预的配置方式:优先级从高到低
1)命令行参数Command Line Args;
2)系统环境变量Environment Variables;
3)位于文件系统中的配置文件;
4)位于classpath中的配置文件;
5)固化到代码中的配置。

sb默认的配置文件是application.properties,在ConfigFileApplicationListener里加载和关联到spring容器里。

spring-boot-starter-loggin

sb的日志使用commons loggin,在org.springframework.boot.logging.LoggingApplicationListener里初始化的,并适配并初始化各种日志框架。 等级配置:logging.level.root=trace

spring-boot-starter-web

spring boot应用启动原理分析 http://blog.csdn.net/hengyunabc/article/details/50120001

学习参考

1)osc码云上的:http://git.oschina.net/didispace/SpringBoot-Learning
2)官方文档:http://docs.spring.io/spring-boot/docs/1.4.0.BUILD-SNAPSHOT/reference/htmlsingle/
3)《SpringBoot揭秘》
4)Spring Boot自动配置的
5) Spring Boot的自动化配置原理

© 著作权归作者所有

v1-alpha

v1-alpha

粉丝 6
博文 63
码字总数 74140
作品 0
厦门
程序员
私信 提问
恒宇少年/spring-boot-chapter

简书整套文档以及源码解析 专题 专题名称 专题描述 001 Spring Boot 核心技术 讲解SpringBoot一些企业级层面的核心组件 002 Spring Cloud 核心技术 对Spring Cloud核心技术全面讲解 003 Quer...

恒宇少年
2018/04/19
0
0
SpringBootBucket 2.0.4 发布,代号“傲娇的小二晶”

SpringBootBucket 自从1.0.0版本发布后就有好多人喜欢,目前码云上面star数量接近1.2k。上个月还收到了红薯签名的1000 star奖杯,这个我自己也觉得很惊讶。 由于SpringBoot 1.x官方将终止维护...

一刀
2018/09/16
1K
4
springboot情操陶冶-初识springboot

前言:springboot由于其轻便和去配置化等的特性已经被广泛应用,基于时代潮流以及不被鄙视,笔者于是开辟此篇开始认识springboot 前话 springboot是基于spring而开发的轻量级框架,所以在学习...

南柯问天
2018/07/24
0
0
springboot 详解 (六)servlet & scheduled & listener

---------------------------------------------------------------------------------------------------------------- springboot 详解 (一) helloworld 下载demo springboot 详解 (二)......

curiousby
2016/11/17
0
0
SpringBootBucket 1.0.0 发布,SprintBoot 全家桶

Spring Boot 现在已经成为Java 开发领域的一颗璀璨明珠,它本身是包容万象的,可以跟各种技术集成。 本项目对目前Web开发中常用的各个技术,通过和SpringBoot的集成,并且对各种技术通过“一...

一刀
2018/03/05
7.3K
17

没有更多内容

加载失败,请刷新页面

加载更多

面向对象方面的一些东东

<!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta http-equiv="X-UA-Compatible" cont......

流年那么伤
27分钟前
2
0
git 过滤文件夹和文件(IDEA)

最近使用git版本管理工具遇到一件很烦的事情,commit时总会把.idea、.*.iml和target文件添加进来,实际开发中,这些是需要过滤掉的。在.gitnore文件添加了过滤不起作用。下面介绍一种成功过滤...

uug
35分钟前
2
0
Spark Streaming 实时统计商户当日累计PV流量

一、问题 对实时流量日志过滤筛选商户流量,对每个商户的流量进行累计,统计商户实时累计流量。 当时间超过24时时,重新统计当日商户的实时累计流量。 二、实现步骤 1、采用Spark Streaming...

boonya
40分钟前
2
0
如果Task与Event 创建了记录类型后,不出现在Lightning的Activities中

如果在Lightning的Activities没出现这两个Button,但是在页面布局的Lightning 按钮区也存在,全局操作的记录类型就需要选择一个,否则不会出现

在山的那边
49分钟前
2
0
ddd中的子域和界限上下文

我们先来说说子域是什么?子域在我的理解是在一个庞大的系统中可以明显感知的不同的区块,如果在电商模块中,商品目录,订单,物流,库存,发票等等都可以感知他们明显的不同,可以认为是子域...

算法之名
58分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部