1、入门java
1.简介web
Spring Boot是一个简化Spring开发的框架。用来监护spring应用开发,约定大于配置,去繁就简,just run 就能建立一个独立的,产品级的应用。spring
咱们在使用Spring Boot时只须要配置相应的Spring Boot就能够用全部的Spring组件,简单的说,spring boot就是整合了不少优秀的框架,不用咱们本身手动的去写一堆xml配置而后进行配置。从本质上来讲,Spring Boot就是Spring,它作了那些没有它你也会去作的Spring Bean配置。数据库
2.优势json
3.单体应用与微服务api
单体应用是把全部的应用模块都写在一个应用中,致使项目越写越大,模块之间的耦合度也会愈来愈高。微服务是一种架构风格,用微服务能够将应用的模块单独部署,对不一样的模块进行不一样的管理操做,不一样的模块生成小型服务,每一个功能元素最后均可以成为一个能够独立替换、独立升级的功能单元,各个小型服务之间经过http进行通讯。数组
4.Spring Boot的核心特色tomcat
·微服务:springboot
使用Spring Boot能够生成独立的微服务功能单元服务器
·自动配置:
针对不少Spring应用程序常见的应用功能,Spring Boot能自动提供相关配置
·起步依赖:
告诉Spring Boot须要什么功能,它就能引入须要的库。
·命令行界面:
这是Spring Boot的可选特性,借此你只需写代码就能完成完整的应用程序,无需传统项目构建。
·Actuator:
让你可以深刻运行中的Spring Boot应用程序。
5.简单案例:使用maven建立HelloWorld项目
第一步:首先要配置Spring Boot 依赖
<parent><groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.9.RELEASE</version> </parent>Spring Boot的版本仲裁中心;之后咱们导入依赖默认是不须要写版本。(没有在dependencies里面管理的依赖天然须要声明版本号) <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies>
spring-boot-starter-web:
spring-boot-starter:spring-boot场景启动器。帮咱们导入了web模块正常运行所依赖的组件。
Spring Boot将全部的功能场景都抽取出来,作成一个个的starters(启动器),只须要在项目里面引入这些starter 相关场景的全部依赖都会导入进来。要用什么功能就导入什么场景的启动器
·第二步:新建包结构以下图
·第三步:编辑相对应的类代码
·HelloController.java
@RestController//标注是一个Controller类 而且支持json数据格式输出public class HelloController { //经过 http://localhost:8080/sayHello访问该方法 @RequestMapping("/sayHello") public String hello(){ return "hello world"; } }
·MainTest.java
@SpringBootApplication//表明springboot的启动类 用来标注主程序类 说明是一个springboot应用public class MainTest { public static void main(String[] args) { //将springboot应用驱动起来 SpringApplication.run(MainTest.class); } }
[生辰八字起名字][1]
·第四步:运行main方法
运行main方法,等到自动部署服务器完成,而后经过地址就能够访问到相应的数据。
6.案例解析---相应的问题
·为何只配置一个Spring Boot依赖:
·入口类的@SpringBootApplication注解:
·AutoConfigurationPackage:
自动扫描问题@ SpringBootApplication标记的主类,在主类所在包或者所在的子包下面找相应的控制类,而后根据相应的注解自动配置相应的项目所需的bean
7.如何快速新建Spring Boot项目
注意建立Spring Boot时注意网络链接的问题,保持网络畅通。点击New File,选择Project选择Spring Initializr,加载完成后查看相应的JDK版本是否合适,确保后点击next
设置项目的GroupID和Artifact。选择相应的语言和要生成的jar包或者war包以及JDK版本
勾选建立项目所须要的依赖,好比数据库,web等依赖,这里咱们简单的介绍,不作具体的详解,就选择一个web依赖
选择完毕后,点击finish完成新建项目等待项目新建完成。
建立完毕后,保持建立的结构是这个形式便可。
建立项目完毕后,根据上面的案例简单的建立一个项目测试一下,测试经过便可。
8.Spring Boot的配置文件
使用Spring Boot配置文件首先须要有JavaBean类,而后才能在相应的配置文件中为javabean中的属性赋值
想要向JavaBean类中赋值,须要在javabean的类中添加相应的注解@Component和@ConfigurationProperties(prefix = "person")。@Component将类添加进容器,@ConfigurationProperties配置文件中的数据注入到类中
· Dog.java
public class Dog {private String name; private String age;}
· Person.java
/**
**/
@Component@ConfigurationProperties(prefix = "person") public class Person { private String name; private Integer age; private Boolean sex; private Date birthday; private List<String> list; private Map<String,Object> map;private Dog dog;}
·配置文件:
配置文件名是固定的 application.properties 或application.yml
·配置文件的做用:
修改SpringBoot自动配置的默认值;SpringBoot在底层都给咱们自动配置好。
·application.properties详解
示例:
在application.properties中配置相应的属性以后,从新运行项目,发现服务器的端口启动号变成了9999,证实该段代码能够修改默认的8080端口。
· application.properties
person.age=80 person.birthday=2019/02/5 person.list=a,b,c person.name=旺财 person.sex=false person.map.v1=k1 person.map.v2=k2 person.dog.name=jjj person.dog.age=6
注意:在使用application.properties文件向配置文件可能会出现乱码,注意改变编码格式为UTF-8
·application.yml详解
·1.YAML文件详解
(1) YAML文件定义:
YAML(YAML Ain’t Market Language)语言文件,以数据为中心,比json、XML等文件更加适合作配置文件
(2) YAML文件的基本语法:
(3) YAML的值的写法:
(4) YAML支持三种数据格式:对象,数组,基本数据类型
·2.YAML的经常使用写法示例
· application.xml
person:name: 张三 age: 20 sex: false birthday: 2019/01/11 list: - a - b map: -k1: v1 -k2: v2 -dog: {name: ww,age: 12} dog: name: ww age: 2
相应的配置文件和类编写完毕后,编辑测试类,运行,测试经过。
9.Spring Boot中的特殊注解
这里就讲解几个经常使用的注解吧,毕竟时间有限,你们能够到网上查一下,具体的注解
@SpringBootApplication注解分析
@SpringBootApplication是一个复合注解,包括@ComponentScan,@SpringBootConfiguration,@EnableAutoConfiguration。
1.@SpringBootConfiguration继承自@Configuration,两者功能也一致,标注当前类是配置类,并会将当前类内声明的一个或多个以@Bean注解标记的方法的实例归入到srping容器中,而且实例名就是方法名。
2.@EnableAutoConfiguration的做用启动自动的配置。
3.@EnableAutoConfiguration注解的意思就是Springboot根据你添加的jar包来配置你项目的默认配置,好比根据spring-boot-starter-web,来判断你的项目是否须要添加了webmvc和tomcat,就会自动的帮你配置web项目中所须要的默认配置。在下面博客会具体分析这个注解,快速入门的demo实际没有用到该注解。
4.@ComponentScan,扫描当前包及其子包下被@Component,@Controller,@Service,@Repository注解标记的类并归入到spring容器中进行管理。是之前的<context:component-scan>(之前使用在xml中使用的标签,用来扫描包配置的平行支持)。因此本demo中的User为什么会被spring容器管理
@ResponseBody
表示该方法的返回结果直接写入HTTP response body中,通常在异步获取数据时使用,用于构建RESTful的api。在使用@RequestMapping后,返回值一般解析为跳转路径,加上@esponsebody后返回结果不会被解析为跳转路径,而是直接写入HTTP response body中。好比异步获取json数据,加上@Responsebody后,会直接返回json数据。该注解通常会配合@RequestMapping一块儿使用
@Controller
用于定义控制器类,在spring项目中由控制器负责将用户发来的URL请求转发到对应的服务接口(service层),通常这个注解在类中,一般方法须要配合注解@RequestMapping
@RestController
用于标注控制层组件(如struts中的action),@ResponseBody和@Controller的合集。
@Service
通常用于修饰service层的组件
@Repository
使用@Repository注解能够确保DAO或者repositories提供异常转译,这个注解修饰的DAO或者repositories类会被ComponetScan发现并配置,同时也不须要为它们提供XML配置项。
@Bean
用@Bean标注方法等价于XML中配置的bean。
@Value
注入Spring boot application.properties配置的属性的值。