环境:SpringBoot 2.1.9.RELEASE、JDK 1.8、IDEA 2019.1.3
这个系列主要讲解 SpringBoot 2.x 版本的使用以及附带一些原理解析。
首先 SpringBoot 最大的特点就是自动配置,也就是说,以前我们需要通过Sring的XML文件配置的很多东西,现在不需要了,SpringBoot 会对其进行默认配置,当然,你也可以通过配置文件或者注解的形式去进行配置。这样一来,是能够极大的提升构建应用的效率,同时也可以让开发者告别复杂的配置文件。
首先我们需要来试水一下,通过SpringBoot 来搭建一个简单的Web应用。
新建Maven工程,IDEA 会提示你进入SpringBoot 的 Starter 勾选栏目,选择一个Web模块即可,生成后的 pom.xml 的依赖如下:
org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-test test 到这里为止,我们就可以开始进行测试了,上面的依赖中 web 模块集成了SpringMVC,因此我们可以直接新建Controller:@RestController
public class WebController {
private static final Logger logger = LoggerFactory.getLogger(WebController.class);
@GetMapping(“test”)
public Object test() {
return new HashMap(){{
put(“code”,200);
put(“message”,“请求成功!”);
}};
}
}
接着 Run 一下主函数:
@SpringBootApplication
public class Demo1Application {
public static void main(String[] args) {
SpringApplication.run(Demo1Application.class, args);
}
}
这里要提一下,SpringBoot 工程的结构如下:
注意,在 Resources 路径下,有一个 application.yml 文件,这个文件是SpringBoot 的配置文件,绝大部分的配置都可以通过这个配置文件来配置。
启动端口在未配置的情况下,默认为8080,接着我们访问一下:http://localhost:8080/test ,效果如下:
看到了吧?对于 SpringBoot 来说,想要搭建一个Web 应用是非常简单的事,主要就是因为依赖中的各种 Stater,原理在于自动配置,这些Starter 从另一个角度来说可以看作是插件,插拔式的设计可以让我们更灵活的去根据自己的需求去选择不同的插件。
上面有提到过,在未配置端口的情况下,默认是8080,这里要解释一下,首先,SpringBoot是支持 Jar 包形式的,因为其本身内置了Tomcat ,会自动对其进行默认配置,这里我们看一下 AbstractConfigurableWebServerFactory 这个抽象类,它的默认端口就是 8080:
那么问题来了,这个类是抽象类,那么子类呢?我们来看看其的直接子类TomcatServletWebServerFactory :
OK,同时我们知道 SpringBoot 是支持自动配置的,那么上面这个类是个构建Tomcat 实例的工厂,并且可以配置Tomcat 的属性,如下这个方法就是获取Tomcat 实例的方法:
OK,那么我们完全可以利用 SpringBoot 的特性来对其做一些配置,比如我们设置端口为8888,只需要在主函数下新写一个方法,方法上添加@Bean 注解,表示该方法返回的对象会作为容器中的Bean存在,返回TomcatServletWebServerFactory 这个对象即可,并且其为一个Bean :
然后再重新启动应用看看启动端口:
当然,你也可以在这里面做更多的配置。
这篇文章讲完了,主要是先让大家体验一把 SpringBoot 的开发效率,下面的文章会开始讲解各种整合以及使用。