简介
SpringBoot是Pivotal团队提供的全新框架,其设计目的来简化Spring应用的初始搭建以及开发过程。
对比之前的框架
笔者之前也学习应用过很多框架,包括Spring,SpringMVC,MyBatis等等.......
拿SpringMVC来举例,在SpingMVC中配置了处理请求的时候,会遇到静态资源无法访问的问题,这是因为我们对于getSeverletMappings中的设置是控制所有的路由,那么这问题就来了,我们对于访问静态资源这个事情,并不会经手Tomcat,而是经过SpringMVC,他会直接拦截我们的请求,而拦截后springMVC会发现我们并没有对应的mapping,就会访问不到,所以我们应该让静态资源的访问直接走Tomcat,而不是springMVC、所以我们为了解决这个问题要进行注册。
而对于上面这个复杂的前端结构,就需要注册很多东西。
SpringMVC的解决方案如下:
package com.config;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
@Configuration
public class SpringMVCSupport extends WebMvcConfigurationSupport {
@Override
protected void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/html/**").addResourceLocations("/html/");
registry.addResourceHandler("/JavaScript/**").addResourceLocations("/JavaScript/");
registry.addResourceHandler("/css/**").addResourceLocations("/css/");
registry.addResourceHandler("/vue/**").addResourceLocations("/vue/");
registry.addResourceHandler("/element-ui/**").addResourceLocations("/element-ui/");
registry.addResourceHandler("/axios/**").addResourceLocations("/axios/");
registry.addResourceHandler("/ECharts/**").addResourceLocations("/ECharts/");
}
}
我们这样可以放行所有不该由SpringMVC处理的请求,但是这样做非常繁琐,接下来我们就来进入SpringBoot的学习。
创建一个SpringBoot
我们首先创建一个项目,然后在项目结构中加入Maven,然后选择Spring Initializr,接下来我们选择版本这里我们选择java 8,因为本人是JDK 8,当然有高版本的也可以选择高版本的SpringBoot版本。
做一个实验小Demo
注意,我们刚创建完SpringBoot项目可能会出现Java目录不是蓝色而是灰色的!!!!噫?难道SpringBoot比较独特的设置吗?
我们右键创建一个Class试试,咦?为什么没有创建类这个选项????
原来是我们用idea创建其后会自动把依赖包导入,这也是为什么SpringBoot创立时必须要联网操作,这需要一定的时间,所以此时无法识别文件。
右下角可以看到进度。
package com.control;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/book")
public class SpringBootDemo {
@GetMapping
public String send() {
System.out.println("This is SpringBoot!!!!");
return "This is SpringBoot";
}
}
我们采用Rest,运行一下,发出请求,检查控制台和页面,发现成功了。