1、Spring Boot的基礎

  1. 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工程。

    1. 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 {};
      }

@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。這種方式可以指定多個源。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章