一、什么是Springboot
1、Springboot 是由Pivotal团队提供的全新框架,为平台带来另一种开发体验,简化对已有技术的使用。
2、使用特定的方式(继承starter,约定大于配置)
3、基于Spring进行设计封装,继承了spring框架的优秀基因,是一些基本功能库的集合,maven或者gradle项目导入相应的已依赖即可使用,无需自行管理依赖库的版本。
二、为什么使用
1、简化了spring项目的配置,使得jar依赖以及应用编译和配置更加简单
2、更加轻量化,只需要简单的启动类即可生成一个WEB项目,并且内置了tomcat,构建的jar包可通过java -jar运行
3、更加接近云原生服务或者契合微服务的概念
4、集成丰富的功能或者组件
三、Springboot的特性
1、无需手动管理依赖jar包的版本
2、独立运行的Spring项目
3、约定俗称摒弃XML配置
4、外部化配置
5、嵌入式Servlet容器,支持tomcat\jetty
6、开启devTool自动化监控、运维
7、自定义配置
四、Springboot的核心注解
SpringBootApplication
申明让Springboot 自动给程序进行必要的配置,这个配置等同于
@SpringBootConfiguration: `@Configuration` 表示配置类
@EnableAutoConfiguration :Springboot 自动配置,根据引入的jar包自动寻找配置
@ComponentScan: 扫描发现Spring的bean,包括结合@AutoWired注解自动注入属性
1、@ResponseBody
该注解用于修饰函数或者类,会使结果直接填充到http的响应体,一般配合@RequestMapping使用
例子:
@RequestMapping(value = "upload",method = RequestMethod.POST)
@ResponseBody
public String upload(@RequestParam("file")MultipartFile file){
2、@RequestMapping
该注解用于修饰函数或者类,表示该类是一个接口类或者方法是一个接口方法
例子:
@RequestMapping(value = "core")
public class FileController {
3、@Controller
用于定义控制器类,在Spring项目中有控制器负责将用户请求的url转发到对应的实现接口
4、@RequestBody
用于将请求的body体映射到具体的实现类
例子:
@RequestMapping(value = "user",method = RequestMethod.POST)
public ResponseUtil addUser(@RequestBody User user){
5、@Bean
等价于XML中配置的bean
6@Value
注入Springboot Applictaion配置文件的属性的值
7、配置相关
@ConfigurationProperties(prefix = "ftp")
/**
* 这是属性文件路径
*/
@PropertySource("classpath:conf/ftp.properties")
/**
* @author zhang
* @category
*/
public class FtpServer {
五、Springboot的发布
1、项目以jar包发布,默认方式
2、项目以war包发布,需要排除容器依赖
六、Springboot的actuator
1、监控Springboot的接口和环境变量
七、SpringBoot的不足
1、高度封装
2、必须熟悉约定
3、需要集成更多的组件补充自己