什么是SpringBoot
Spring Boot是由Pivotal团队提供的全新快速开发框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。能够帮助我们快速的整合第三方框架,所以spring boot其实不是什么新的框架,它默认配置了很多框架的使用方式。
为什么要使用SpringBoot
传统项目的缺点:配置web.xml,繁琐的配置文件,jar包冲突,打包方式打成war包放入tomcat的webapps目录下执行
SpringBoot项目:没有web.xml,只需要很少的配置导入很少的jar包,完全采用注解化,内嵌http服务器(Tomcat和Jetty),默认是Tomcat服务器,最终以Java程序进行执行(底层通过maven依赖继承,使用注解启动mvc来代替web.xml)
SpringBoot与SpringMVC的关系
SpringBoot的web组件整合了SpringMVC,但是SpringBoot启动SpringMVC的时候没有传统的配置文件,
SpringMVC在3.0之后支持注解启动,SpringBoot使用注解启动
创建第一个SpringBoot项目
-
创建一个maven工程 packaging选择jar类型,因为springboot内置tomcat不需要打war包
- pom.xml中引入依赖
<parent> <!-- 整合第三方常用框架信息,解决jar包版本冲突 后续的依赖引用不用再写版本号 --> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.0.RELEASE</version> </parent>
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
spring-boot-starter-web 是SpringBoot的Web支持模块,引入之后会自动引入SpringMVC及其依赖的jar包(原理使用maven依赖继承【maven子项目会继承父项目的依赖】,相当于把第三方常用maven依赖信息,在parent项目中封装好,提供依赖信息关联整合的jar包)
-
编写controller
@RestController public class HelloWorldController { @RequestMapping("/") public String index() { return "Hello World"; } }
@RestController的意思就是controller里面的方法都以json格式输出,不用再写什么jackjson配置的了!
-
编写启动类,启动主程序,打开浏览器访问http://localhost:8080,就可以看到效果了,对比传统项目,简直哔了狗!
@EnableAutoConfiguration @ComponentScan("com.aisino") public class Application { public static void main(String[] args) { //整个程序的入口,启动SpringBoot项目 SpringApplication.run(Application.class, args); } }
@EnableAutoConfiguration:作用在于让 Spring Boot 根据应用所声明的依赖来对 Spring 框架进行自动配置
这个注解告诉Spring Boot根据添加的jar依赖猜测你想如何配置Spring。由于spring-boot-starter-web添加了Tomcat和Spring MVC,所以auto-configuration将假定你正在开发一个web应用并相应地对Spring进行设置。默认的扫描范围是当前类 @ComponentScan扫包范围
启动类也可以使用注解@SpringBootApplication 被 @Configuration、@EnableAutoConfiguration、@ComponentScan 注解所修饰,换言之Springboot 提供了统一的注解来替代以上三个注解
扫包范围:在启动类上加上@SpringBootApplication注解,当前包下或者子包下所有的类都可以扫到。SpringBoot访问静态资源
SpringBoot访问静态资源
在我们开发Web应用的时候,需要引用大量的js、css、图片等静态资源。
默认配置
Spring Boot默认提供静态资源目录位置需置于classpath下,目录名需符合如下规则:
/static
/public
/resources
/META-INF/resources
举例:我们可以在src/main/resources/目录下创建static,在该位置放置一个图片文件。启动程序后,尝试访问http://localhost:8080/D.jpg。如能显示图片,配置成功。
总结
使用spring boot可以非常方便、快速搭建项目,使我们不用关心框架之间的兼容性,适用版本等各种问题,我们想使用任何东西,仅仅添加一个配置就可以,所以使用sping boot非常适合构建微服务。