SpringBoot入门培训_第1页
SpringBoot入门培训_第2页
SpringBoot入门培训_第3页
SpringBoot入门培训_第4页
SpringBoot入门培训_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、SpringBoot,入门培训,主要内容,一,springBoot,的简介,二,springBoot,注解,三,springBoot,应用讲解,四,springBoot,的发布,五,springBoot,总结,1,springBoot,背景,多年以来,Spring IO,平台饱受非议的一点就是大量的,XML,配置以及复杂的依赖管理,在,2013,年的,SpringOne 2GX,会议上,Pivotal,的,CTO Adrian Colyer,回应了这些批评,并,且特别提到该平台将来的目标之一就是实现免,XML,配置的开发体验,Boot,所实现的功能超,出了这个任务的描述,开发人员不仅不再需要编

2、写,XML,而且在一些场景中甚至不需要编,写繁琐的,import,语句。在对外公开的,beta,版本刚刚发布之时,Boot,描述了如何使用该框架,在,140,个字符内实现可运行的,web,应用,从而获得了极大的关注度,该样例发表在,tweet,上,2,什么是,springBoot,1,Spring Boot,是由,Pivotal,团队提供的全新框架,Spring Boot,并不是要成为,Spring IO,平台里面众多,Foundation,层项目的替代者,Spring Boot,的目标不,在于为已解决的问题域提供新的解决方案,而是为平台带来另一种开发体验,从而,简化对这些已有技术的使用,2,

3、该框架使用了特定的方式,继承,starter,约定优先于配置,来进行配置,从而使开,发人员不再需要定义样板化的配置。通过这种方式,Boot,致力于在蓬勃发展的快速,应用开发领域,rapid application development,成为领导者,3,Spring Boot,是基于,Spring4,进行设计,承了原有,Spring,框架的优秀基因。它并,不是一个框架,从根本上将,它就是一些库的集合,maven,或者,gradle,项目导入相,应依赖即可使用,Spring Boot,而且无需自行管理这些库的版本,2,为什么使用,springBoot,1,Spring Boot,是为简化,Spr

4、ing,项目配置而生,使用它使得,jar,依赖管理以及应用编,译和部署更为简单,Spring Boot,提供自动化配置,使用,Spring Boot,你只需编写,必要的代码和配置必须的属性,2,使用,Spring Boot,只需,20,行左右的代码即可生成一个基本的,Spring Web,应用,并且内置了,tomcat,构建的,fat Jar,包通过,java -jar,就可以直接运行,3,如下特性使得,Spring Boot,非常契合微服务的概念,可以结合,Spring Boot,与,Spring Cloud,和,Docker,技术来构建微服务并部署到云端,一个可执行,jar,即为一个独立服

5、务,很容易加载到容器,每个服务可以在自己的容器(例如,docker,中运行,通过一个脚本就可以实现配置与部署,很适合云端部署,并且自动扩展,3,springBoot,有哪些特性,1,无需手动管理依赖,jar,包的版本,Spring-boot,的,jar,包已对一些功能性,jar,包进行了集成,示例如下,spring,boot-starter,核心,Spring Boot starter,包括自动配置支持,日志和,YAML,spring,boot-starter-actuator,生产准备的特性,用于帮你监控和,管理应用,spring,boot-starter-web,对全栈,web,开发的支持

6、,包括,Tomcat,和,spring,webmvc,spring,boot-starter-aop,对面向切面编程的支持,包括,spring-aop,和,AspectJ,spring,boot-starter-jdbc,对,JDBC,数据库的支持,spring,boot-starter-security,对,spring-security,的支持,3,springBoot,有哪些特性,1,无需手动管理依赖,jar,包的版本,Spring-boot,的,jar,包已对一些功能性,jar,包进行了集成,示例如下,spring,boot-starter,核心,Spring Boot starter

7、,包括自动配置支持,日志和,YAML,spring,boot-starter-actuator,生产准备的特性,用于帮你监控和,管理应用,spring,boot-starter-web,对全栈,web,开发的支持,包括,Tomcat,和,spring,webmvc,spring,boot-starter-aop,对面向切面编程的支持,包括,spring-aop,和,AspectJ,spring,boot-starter-jdbc,对,JDBC,数据库的支持,spring,boot-starter-security,对,spring-security,的支持,3,springBoot,有哪些特性

8、,1,无需手动管理依赖,jar,包的版本,spring,boot-starter-amqp,通过,spring-rabbit,来支持,AMQP,协议,Advanced Message Queuing Protocol,spring,boot-starter-ws,支持,Spring Web Services,spring,boot-starter-redis,支持,Redis,键值存储数据库,包括,spring-redis,spring-boot-starter-test,支持常规的测试依赖,包括,JUnit,Hamcrest,Mockito,以及,spring-test,模块,3,sprin

9、gBoot,有哪些特性,2,独立运行的,Spring,项目,Spring Boot,默认将应用打包成一个可执行的,jar,包文件,构建成功后使用,java -jar,命令即,可运行应用。或者在应用项目的主程序中运行,main,函数即可,不需要依赖,tomcat,jetty,等外部的应用服务器,其中内置的,servlet Container,此外,你仍然可以部署,Spring Boot,项目到任何兼容,Servlet3.0,的容器,Name,Servlet Version,Java Version,Tomcat 8,3.1,Java 7,Tomcat 7,3.0,Java 6,Jetty 9.3

10、,3.1,Java 8,Jetty 9.2,3.1,Java 7,Jetty 8,3.0,Java 6,3,springBoot,有哪些特性,3,自动配置,无需,xml,Spring Boot,尝试根据你添加的,jar,依赖自动配置你的应用。例如,如果,HSQLDB,在类路,径中,并且你没有手动配置任何,db,连接,bean,则,Spring Boot,会自动配置一个内存,db,使用,EnableAutoConfiguration,或者,SpringBootApplication,注解,配,合,Configuration,注解类,即可达到自动配置的目的,Spring Boot,的这种自动配置是

11、非侵入式的,你可以定义自己的配置或,bean,来替代自,动配置的内容,3,springBoot,有哪些特性,4,外部化配置,Spring Boot,可以使用,properties,文件,YAML,文件,环境变量,命令行参数等来外部化,配置。属性值可以使用,Value,注解直接注入到,bean,中,并通过,Spring,的,Environment,抽象或经过,ConfigurationProperties,注解绑定到结构化对象来访问。实例如下,Component,ConfigurationProperties(prefix=spring.datasource,public class Appli

12、cationUtil,private String name,private String url,3,springBoot,有哪些特性,5,嵌入式,servlet,容器,Spring Boot,的,web,模块内置嵌入的,Tomcat, Jetty, Undertow,来构建自包含的,Servlet,容器,web,应用打包成可执行,jar,包时,相应的,servlet,容器也会被嵌入到应用,jar,中。并且,servlets, filters,和,listeners,都可以通过声明为,bean,来被容器注册,servlet,容器还可以通,过外部化配置来相关定制属性,如,server.port

13、, server.session.persistence,等,application.yml,配置,server,的端口号和,session,超时时间,需要注意的是,使用,yml,时,属性名的值和冒号中间必须有空格,如下,server,port: 8888,session-timeout: 60,3,springBoot,有哪些特性,6,开启,devtools,特性,devtools,的热部署和自动重启,要想在,Eclipse,中使用,Devtools,的重启功能,需要将自动编译功能打开。每次保存文,件并自动编译后,devtools,会检测到,classpath,内容的修改,并触发应用重启。重

14、启,时实际只重新加载了一部分类,因此速度会非常快。详细原理会在后面教程里介绍,devtools,的,livereload,开启,devtools,特性的应用在启动时会启动一个,livereload,的,server,在浏览器(如,chrome,Firefox,安装,livereload,插件后,该插件会监测到,livereload server,的更新,并自动刷新页面,主要内容,一,springBoot,的简介,二,springBoot,注解,三,springBoot,应用讲解,四,springBoot,的发布,五,springBoot,总结,3,springBoot,注解,1,SpringB

15、ootApplication,申明让,spring boot,自动给程序进行必要的配置,这个配置等同于,Configuration,EnableAutoConfiguration,和,ComponentScan,三个配置,3,springBoot,注解,2,ResponseBody,该注解修饰的函数,会将结果直接填充到,HTTP,的响应体中,一般用于构建,RESTful,的,api,该注解一般会配合,RequestMapping,一起使用,示例代码,RequestMapping(/test,ResponseBody,public String test(,returnok,3,springBo

16、ot,注解,3,Controller,用于定义控制器类,在,spring,项目中由控制器负责将用户发来的,URL,请求转发到,对应的服务接口,service,层),一般这个注解在类中,通常方法需要配合注解,RequestMapping,4,RestController,ResponseBody,和,Controller,的合集,3,springBoot,注解,5,EnableAutoConfiguration,Spring Boot,自动配置,auto-configuration,:尝试根据你添加的,jar,依赖自动配置,你的,Spring,应用。例如,如果你的,classpath,下存在,H

17、SQLDB,并且你没有手动配置任,何数据库连接,beans,那么我们将自动配置一个内存型,in-memory,数据库,你可以将,EnableAutoConfiguration,或者,SpringBootApplication,注解添加到一个,Configuration,类上来选择自动配置。如果发现应用了你不想要的特定自动配置类,你可以使用,EnableAutoConfiguration,注解的排除属性来禁用它们,3,springBoot,注解,6,ComponentScan,表示将该类自动发现(扫描)并注册为,Bean,可以自动收集所有的,Spring,组件,包括,Configuration,

18、类。我们经常使用,ComponentScan,注解搜索,beans,并结合,Autowired,注解导入。如果没有配置的话,Spring Boot,会扫描启动类所在包下以及,子包下的使用了,Service,Repository,等注解的类,3,springBoot,注解,7,Configuration,相当于传统的,xml,配置文件,如果有些第三方库需要用到,xml,文件,建议仍然通,过,Configuration,类作为项目的配置主类,可以使用,ImportResource,注解加载,xml,配置文件,Configuration,EnableAutoConfiguration,public

19、class RedisConfig,Bean(name=jedisPoolConfig,ConfigurationProperties(prefix=spring.redis,public JedisPoolConfig getRedisConfig(,return new JedisPoolConfig(,3,springBoot,注解,8,PropertySource,如果需要有自定义的属性文件需要加载,可以使用该注解进行注入,并用,Value,配合使用,Component,PropertySource(value = classpath:perties,public

20、class ConfigUtil,Value($hos.id,private String hosId,Value($,private String hosName,3,springBoot,注解,9,ImportResource,用来加载,xml,配置文件,10,Bean,用,Bean,标注方法等价于,XML,中配置的,bean,11,Value,注入,Spring boot perties,配置的属性的值,Value(value = #message,private String message,3,springBoot,注解,12,Envir

21、onment,org.springframework.core.env.Environment,环境类,spring3.1,以后开始引入。比如,JDK,环境,Servlet,环境,Spring,环境等等;每个环境都有自己的配置数据,如,System.getProperties(,System.getenv(,等可以拿到,JDK,环境数据,ServletContext.getInitParameter(,可以拿到,Servlet,环境配置数据等等;也就是说,Spring,抽,象了一个,Environment,来表示环境配置,在,springBoot,中使用直接用,Resource,注入,即可获得

22、系统配置文件,perties/yml,的属性值,如果是自定义的配置文件,则需要预先通过,PropertySource,等其他注解注入后,才能获取。获取通过,getProperty(,方法获取,主要内容,一,springBoot,的简介,二,springBoot,注解,三,springBoot,应用讲解,四,springBoot,的发布,五,springBoot,总结,3,springBoot,应用讲解,1,与,MyBatis,的集成,org.mybatis.spring.boot,mybatis-spring-boot-starter,1.1.1,2,与,Redi

23、s,的集成,org.springframework.boot,spring-boot-starter-redis,3,Junit,进行单元测试,org.springframework.boot,spring-boot-starter-test,主要内容,一,springBoot,的简介,二,springBoot,注解,三,springBoot,应用讲解,四,springBoot,的发布,五,springBoot,总结,3,springBoot,的发布,1,将,springBoot,项目打包成,jar,可以使用,maven,将项目打包成,jar,文件,并使用,java,jar,命令运行主,mai

24、n,方法,将项,目运行起来,3,springBoot,的发布,2,将,springBoot,项目打包成,war,1.pom,文件的命令将,jar,修改为,war,2,入口类实现,SpringBootServletInitializer,方法,重写方法,Override,protected SpringApplicationBuilder,configure(SpringApplicationBuilder application),return application.sources(Application.class,3,这里指定打包的时候不再需要,tomcat,相关的包,org.springframework.boot,spring-boot-starter-tomcat,主

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论