一、什么是SpringBoot
springboot是用来简化Spring应用的初始搭建以及开发过程的全新框架。通俗的说就是它对spring及其它第三方库进行很多默认配置,从而让你轻松上手一个项目,并且只要少量的spring配置。
二、为什么用SpringBoot
天下合久必分,分久必合。将大项目拆分成一个个微服务带来便利的同时也会产生一系列新的问题。springboot的简单、快速、方便对搭建微服务项目来说,无疑具有着无穷的吸引力。
使用springboot有什么好处:
- 为所有Spring开发从根本上提供简单、快速、方便的入门体验。
- 既提供传统的war部署启动的Java应用程序,还支持使用
java -jar去启动打包后的jar
。 - 提供大型项目一系列非功能性功能,例如嵌入式服务器,安全性,度量标准,运行状况检查和外部化配置。
- 绝对没有代码生成,也不需要XML配置(不代表不能延用XML的方式)。
三、怎么用Springboot
- 要求和支持
Spring Boot 1系列需要Java 7和Spring Framework 4.3.19.RELEASE以及Maven 3.2+或更高版本。
Spring Boot 2系列需要Java 8和Spring Framework 5.0.9.RELEASE以及Maven 3.2+或更高版本。
- 构建Maven项目
利用IDEA创建项目
初始目录结构
引入springboot父工程依赖以及web依赖
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.2.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
- 编写代码
maven默认编译src/main/java下java文件,在新建包路径com.miven.springboot.start下新建Example.java
package com.miven.springboot.start;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.context.annotation.ComponentScan;
/**
* Created by mingzhi.xie on 2018/9/27.
*/
@ComponentScan // 开启组件扫描
@EnableAutoConfiguration // 开启自动配置
/**
* @EnableAutoConfiguration
* 这个注释告诉Spring Boot根据你添加的jar依赖关系“猜测”你想要如何配置Spring
* 如我们在pom.xml中添加了spring-boot-starter-web依赖
* 它就会假定我们正在开发Web应用程序并相应地设置Spring
* 虽然springboot很会“猜测”,但是总有猜不中我们心思的时候,比如我们的web项目需要支持跨域访问
* 自然而然我们就需要做相应的配置
*/
public class Example {
public static void main(String[] args) {
SpringApplication.run(Example.class,args);
}
}
在同级包下新建包config,新建Myconfig.java
package com.miven.springboot.start.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;
/**
* Created by mingzhi.xie on 2018/9/27.
*
* 跨域资源共享
*/
@Configuration
public class MyConfig {
@Bean
public CorsFilter corsFilter() {
CorsConfiguration corsConfiguration = new CorsConfiguration();
corsConfiguration.addAllowedOrigin("*"); // 指定授权访问的域
corsConfiguration.addAllowedMethod("*"); // 授权请求的方法
corsConfiguration.addAllowedHeader("*"); // 授权请求的头
corsConfiguration.addExposedHeader(""); // 授权响应的头
corsConfiguration.setAllowCredentials(true); // 凭证
UrlBasedCorsConfigurationSource urlBasedCorsConfigurationSource = new UrlBasedCorsConfigurationSource();
urlBasedCorsConfigurationSource.registerCorsConfiguration("/**", corsConfiguration);
return new CorsFilter(urlBasedCorsConfigurationSource);
}
}
既然是web工程,那就让我们编写个web测试接口,新建包component,新建HomeService.java
package com.miven.springboot.start.component;
import org.springframework.stereotype.Service;
/**
* Created by mingzhi.xie on 2018/9/27.
*/
@Service
public class HomeService {
public String getHome() {
return "Hello World!";
}
}
新建HomeController.java
package com.miven.springboot.start.component;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* Created by mingzhi.xie on 2018/9/27.
*/
@RestController
public class HomeController {
@Autowired
private HomeService homeService;
@RequestMapping("/")
String home() {
return homeService.getHome();
}
}
- 启动测试
启动main方法,访问接口
细心的同学已经发现,我们的启动画面中有个START的banner。在resources下新建一个banner.txt,里面写上你的艺术字就可替代默认banner。
最终目录结构
四、总结
使用spring boot可以非常方便、快速搭建项目,使我们不用关心框架之间的兼容性,适用版本等各种问题,我们想使用任何东西,仅仅添加一个配置就可以,所以使用sping boot非常适合构建微服务。