-
Spring Boot的引入
Spring Boot的引入有兩種方式:
a、使用<parent></parent>元素進行繼承引入。如:<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.6.RELEASE</version> </parent>
b、通過<dependencyManagement>元素添加
<dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.6.RELEASE</version> <scope>import</scope> <type>pom</type> </dependency> </dependencies> </dependencyManagement>
上面的2種方式都可以使一個工程變爲Spring Boot工程。
- Spring Boot的入口
Spring Boot的入口是一個標註了@SpringBootApplication的類。@SpringBootApplication是一個組合註解:@Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented @Inherited @SpringBootConfiguration @EnableAutoConfiguration @ComponentScan(excludeFilters = { @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class), @Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) }) public @interface SpringBootApplication { Class<?>[] exclude() default {}; String[] excludeName() default {}; String[] scanBasePackages() default {}; Class<?>[] scanBasePackageClasses() default {}; }
- Spring Boot的入口
@ComponentScan標註了掃描路徑(默認是含有@SpringBootApplication的路徑)
@SpringBootConfiguration是一個繼承了@Configuration的註解類,也就說標註了@SpringBootConfiguration的類可以當做一個配置類。@SpringBootConfiguration的效果和@Configuration是一樣的,唯一不同的是前者是Spring Boot提供的註解,後者是Spring提供的註解。
@EnableAutoConfiguration會在後面講解
除了要在入口類標註@SpringBootApplication註解外,一般還需要一個main方法:
@SpringBootApplication
public class OrderApplication {
public static void main(String[] args) {
SpringApplication.run(OrderApplication.class, args);
}
}
查看SpringApplication.run(OrderApplication.class, args);的源碼可以看到下面的代碼:
public static ConfigurableApplicationContext run(Object source, String... args) {
return run(new Object[] { source }, args);
}
也就是說run()會將第一個參數作爲源進行加載。
除了了使用SpringApplication.run()這個靜態方法來啓動Spring Boot外,還可以使用
SpringApplication application = new SpringApplication();
Set<Object> set = new HashSet<>();
set.add(OrderApplication.class);
application.setSources(set);
application.run(args);
這種方式來啓動Spring Boot。這種方式可以指定多個源。