关键词:
一、Spring Boot所解决的问题
Java开发十分笨重:繁多的配置、低下的开发效率、复杂的部署流程以头疼的第三方技术集成。
Spring Boot的理念:习惯优于配置——项目中存在大量的配置,此外还内置一个习惯性配置,免除了繁冗的手动配置,这样让基于Spring框架的项目快速运行起来。
总结
优点:
(1)快速构建项目;
(2)对主流开发框架的无配置集成;
(3)项目可独立运行,无需依赖waibuServlet容器(因为内部有集成?)
(4)提供运行时的应用监控;
(5)极大提高开发、部署效率;
(6)与云计算天然集成;
缺点:
(1)文档资料少;
(2)若你不喜欢Spring,那也很无奈。
二、快速入门
2.1 Spring Boot的环境搭建(均在Maven的pom.xml中添加)
(1)设置Spring Boot的parent(实际上,这是一个依赖组合)
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.0.RELEASE</version> </parent>
(2)导入Spring Boot的web支持
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
(3)添加Spring Boot的插件
<plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins>
**提示:以上的标签元素注意要放在正确的父元素下
2.2 Spring Boot的核心注解
@SpringBootApplication,用来开启自动配置(相当于一键部署)。
2.3 启动Spring Boot项目的方式
(1)run Java Aplication
(2)通过Spring Boot的Maven插件运行(在搭建环境时配置好的插件,貌似是Maven Build,具体如下图)
四、Spring Boot的核心
一个基于Spring Boot的Hello程序:
@SpringBootApplication @Controller @SpringBootConfiguration public class App { public static void main( String[] args ) { ApplicationContext ctx= SpringApplication.run(App.class,"-Ddebug=true"); String[] beanNames=ctx.getBeanDefinitionNames(); Arrays.sort(beanNames); for(String beanName:beanNames){ System.out.println(beanName); } } @RequestMapping("hello") @ResponseBody public String hello(){ return "Share Biguo"; } }
4.1 入口类和@SpringBootApplication
Spring Boot的项目一般都会有Application的入口类(入口类中会有main方法),这是一个标准的Java应用程序的入口方法。
@SpringBootApplication,是Spring Boot的核心注解,实际上,它是一个组合注解(即一个顶多个),就是这个注解的定义处,头上有多个注解。
(1)@SpringBootConfiguration
这是SpringBoot项目的配置注解,也是一个组合注解(不用想,肯定包含了@Configuration(Spring的配置注解)),所以在Spring Boot的项目中,推荐使用@SpringBootConfiguration替代@Configuration。
(2)@EnableAutoConfiguration
启用自动配置,该注解会使Spring Boot根据项目中依赖的jar包自动配置项目的配置项。(根据你的现有的配置自动添加其他你必需的配置,jar包,tomcat等)
(3)@ComponentScan
默认扫描@SpringBootApplication注解所在类的同级目录(就是类所在的Package)以及子目录。
4.2 关闭一些不需要的自动配置
因为Spring Boot自动配置后,添加的jar包等资源十分庞大,其中有很多我们并不需要。
比如我们想关闭某一项的自动配置,例如,不需要Spring Boot自动帮我配置Redis,想手动配置:
@Controller @SpringBootApplication(exclude={RedisAutoCnfiguration.class}) @Configuration public class HelloApplicaiton{ //*** }
其它配置类似,相关的配置类是可以在相关的jar包中查看的。
4.3 自定义Banner(ch06 16min)
www.patorjk.com
4.4 全局配置文件
Spring Boot使用一个全局的配置文件application.properties或者是application.yml,在resources目录下或者类路径的/config下。一般放到rsources下。
在这个配置文件中,可以自定义一些配置:例如修改工程的访问端口;前端控制器的映射url等.
总之非常非常多,涉及到了Spring的各个方面.
4.5 Starter pom
Spring Boot为我们提供了简化企业级开发绝大多数场景的Starter pom, 只要使用了应用场景所需要的Starter pom, 相关的技术配置将会消除,就可以得到Spring Boot为我们提供的自动配置的Bean。
查看官方提供的pom, 了解每种pom的应用场景。
随着SpringBoot的发展, 也有越来越多的第三方在组织提供Starter pom。
4.6 XML配置
Spring Boot试图全面用Java配置(注解) 来取代XML配置,但在实际项目中, 有一些特殊的要求必须使用xml配置。
这时我们可以使用Spring的注解@ImportResource 来加载xml配置。
@ImportResource({"classpath:some-context.xml","classpath:another-context.xml"})
4.7 日志
Spring Boot对各种日志框架都做了支持,可以通过在全局配置文件application.properties中改动,来修改默认的日志配置。
五、Spring Boot自动配置的原理
Spring Boot在进行SpringApplicaiton对象的实例化时会加载META-INF/Spring.factories(好像很多jar包中都有这个文件夹和文件)文件,将该配置文件中的配置加载到Spring容器。
5.1 Maven下载源码
通过dependency:sources命令,下载该项目中所有的依赖的包的源码。
通过源码学习Spring Boot的处理流程(我还没理解)。
5.2 条件注解@ConditionalOnXXX
@ConditionalOnBean:当容器里有指定的Bean的条件下
@ConditionalOnClass:当类路径下有指定的类的条件下
很多很多!
springboot系列
https://my.oschina.net/xiedeshou?tab=newest&catalogId=5936801SpringBoot|第零章:前言SpringBoot|第一章:第一个SpringBoot应用SpringBoot|第二章:lombok介绍及简单使用SpringBoot|第三章:springboot配置详解SpringBoot|第四章:日志配置SpringBoot|第 查看详情
springboot学习——springboot简介
最近工作中需要使用到SpringBoot,但是以前工作中没有用到过SpringBoot,所以需要学习下SpringBoot。本系列笔记是笔者学习SpringBoot的笔记,有错误和不足之处,请不吝指教。 话不多说,直接进入... 查看详情
springboot制作个人博客目录
前端框架构建SpringBoot制作个人博客-首页SpringBoot制作个人博客-详情页SpringBoot制作个人博客-分类页SpringBoot制作个人博客-标签页SpringBoot制作个人博客-归档页SpringBoot制作个人博客-关于我页SpringBoot制作个人博客-博客管理列表页Spri... 查看详情
springboot.06.springboot日志管理(代码片段)
SpringBoot.06.SpringBoot日志管理SpringBoot日志介绍概念日志的级别日志的分类SpringBoot日志基本使用1.新建Module2.项目配置3.配置日志SpringBoot日志切割1.application.yml2.application-dev.yml3.logback-dev.xml4.测试SpringBoot日志介绍概念在SpringBoot框架中... 查看详情
springboot.06.springboot日志管理(代码片段)
SpringBoot.06.SpringBoot日志管理SpringBoot日志介绍概念日志的级别日志的分类SpringBoot日志基本使用1.新建Module2.项目配置3.配置日志SpringBoot日志切割1.application.yml2.application-dev.yml3.logback-dev.xml4.测试SpringBoot日志介绍概念在SpringBoot框架中... 查看详情
springboot报错,springboot注解
目录SpringBoot注解SpringBoot注解一、注解(annotations)列表@SpringBootApplication:?包含了@ComponentScan、@Configuration和@EnableAutoConfiguration注解。其中@ComponentScan让SpringBoot扫描到Configuration类并把它加入到程序上下文。@Configuration: 查看详情
springboot微服务框架概述
SpringBoot微服务框架2.SpringBoot微服务框架的特点3.SpringBoot应用场景4.SpringBoot的第一个应用5.Springboot引导类的main方法有什么作用?6.SpringBoot的场景启动器7.@SpringBootApplication探究8.如何配置SpringBoot的配置文件?1.SpringBoot概述SpringBoot是... 查看详情
springboot介绍
SpringBoot集成教程SpringBoot介绍SpringBoot开发环境搭建(Eclipse)SpringBootHelloWorld(restful接口)例子springboot连接Mysqlspringboot配置druid连接池连接mysqlspringboot集成mybatis(1)springboot集成mybatis(2)–使用pagehelper实现分页springboot集 查看详情
springboot源码分析----springboot自动配置
前言springboot项目将模块化设计发挥到及至,需要什么模块,只需导入这个模块对应的stater即可,当然,用户根据业务需要自定义相关的stater,关于自定义stater在后续章节将一一解说,学习springboot,首要了解springboot的自动配置原... 查看详情
springboot
目录 简介 application.properties Maven搭建SpringBoot SpringBoot&Thymeleaf ErrorPageIDE搭建SpringBoot简介SpringBoot是微服务框架,SpringBoot框架,它的作用很简单,就是帮我们自动配置。SpringBoot框架的核心就是自动配置,只要... 查看详情
springboot入门到精通-springboot集成ssm开发项目(代码片段)
SpringBoot入门到精通系列SpringBoot入门到精通-Spring的注解编程(一)SpringBoot入门到精通-SpringBoot入门(二)SpringBoot入门到精通-Spring的基本使用(三)SpringBoot入门到精通-SpringBoot集成SSM(四)前言上一篇文章我们讲的是SpringBoot的基本用法,... 查看详情
springboot制作个人博客目录
前端框架构建SpringBoot制作个人博客-首页SpringBoot制作个人博客-详情页SpringBoot制作个人博客-分类页SpringBoot制作个人博客-标签页SpringBoot制作个人博客-归档页SpringBoot制作个人博客-关于我页SpringBoot制作个人博客-博客管理列表页Spri... 查看详情
springboot入门到精通-springboot入门(代码片段)
SpringBoot入门到精通系列SpringBoot入门到精通-Spring的注解编程(一)SpringBoot入门到精通-SpringBoot入门(二)SpringBoot入门到精通-Spring的基本使用(三)SpringBoot入门到精通-SpringBoot集成SSM(四)前言经过上面的学习,我们已经掌握的Spring的注... 查看详情
springboot入门
一、SpringBoot久闻SpringBoot大名,这两天终于得空,学习了一把,发觉SpringBoot确实好用,那SpringBoot到底是什么,又是怎么好用呢?什么是SpringBoot目前ssm框架还是比较常用的,其中的ss指的无非就是Spring和SpringMVC,我们可以简单的... 查看详情
springboot狂神说-springboot笔记
链接。 查看详情
springboot-入门-springboot简介(代码片段)
SpringBoot简介什么是SpringBoot?SpringBoot是用来简化基于Spring应用的初始搭建以及开发过程的高度集成框架。该框架包含很多默认配置,为不同的Spring模块提供了许多依赖项,大大简化了开发者重复的配置工作。因此,SpringBoot在快... 查看详情
springboot入门到精通-springboot自动配置原理(代码片段)
SpringBoot源码解析SpringBoot入门到精通-Spring的注解编程(一)SpringBoot入门到精通-SpringBoot入门(二)SpringBoot入门到精通-Spring的基本使用(三)SpringBoot入门到精通-SpringBoot集成SSM(四)SpringBoot入门到精通-SpringBoot自动配置原理(五)SpringBoot入门... 查看详情
springboot2:springboot2.0新特性
SpringBoot2(一):SpringBoot2.0新特性SpringBoot依赖于Spring,而SpringCloud又依赖于SpringBoot,因此SpringBoot2.0的发布正式整合了Spring5.0的很多特性,同样后面SpringCloud最新版本的发布也需要整合最新的SpringBoot2.0内容。一、新版本特性1,基于J... 查看详情