1.2 入门案例详解
1、pom.xml讲解
在上一节中的 quick start 案例中,我们在pom.xml文件中添加了如下内容:
<!-- 继承 SpringBoot的默认配置 --> <parent > <groupId> org.springframework.boot </groupId> <artifactId> spring-boot-starter-parent </artifactId> <version> 1.3.0.RELEASE </version> </parent > <!-- 添加 web 应用的依赖 --> <dependencies > <dependency> <groupId> org.springframework.boot </groupId > <artifactId> spring-boot-starter-web </artifactId> </dependency> </dependencies >
spring-boot-starter-parent
和spring-boot-starter-web
都称之为starter
, starter的作用主要是简化 Maven项目 pom.xml文件的配置。
其中spring-boot-starter-parent是一种特殊的 starter,其是所有其他的 starter的父类,其提供了很多很多 maven的默认配置,并且包含了一个 dependency-managemen部分,意味着我们在子项目中添加 maven依赖时,可以省略 version标签。
而其他的 starter提供了事实上的依赖。例如上一节中,我们要搭建一个QuickStart的 web应用,所以我们提供一个 web starter: spring-boot-starter-web。
2、Applcation.java 详解
@RestController @EnableAutoConfiguration public class Application { @RequestMapping( "/" ) public String hello(){ return "Hello SpringBoot" ; } public static void main(String[] args) { SpringApplication. run(Application. class, args ); } }
在这个例子中,关于 @RestController和@RequestMapping ("/" ),不是SpringBoot 中的内容,是SpringMVC中的内容,因此不做介绍。
@EnableAutoConfiguration
注解和SpringApplication
是 SpringBoot中提供的新的API:
1)其中@EnableAutoConfiguration 注解的作用是让 SpringBoot来“猜测” 如何配置 Spring。猜测的依据很简单,就是根据依赖的 jar包。因为在我们的依赖中,包含了 Tomcat和SpringMvc ,因此SpringBoot的自动配置机制就会认为这是一个 web应用。
2)在main 方法中有一个 SpringApplication类,通过调用其run方法 ,我们开始启动程序。在程序启动后, SpringBoot首先自动配置“猜测 ”到这是一个 web应用,因此会启动 tomcat,让用户通过 url来访问。