1、Spring Boot的基础

欢迎各位大佬拍砖

在这里,我也来凑热闹写个关于Spring Boot的系列文章
我们要讨论Spring Boot,将首先需要了解Spring对Spring Boot的支持:
Java配置是Spring4.x推荐的配置方式,完全可以替代xml配置。它是通过@Configuration和@Bean这2个注解实现的。

  • @Configuration作用于类上,相当于一个xml配置文件
  • @Bean作用于类上,相当于xml配置文件中的。通过该注解默认为把方法名作为bean的id

Spring Boot的引入

如果要引入Spring Boot有2种方式,这2种方式都是写在pom.xml中的

  • 通过继承Spring Boot提供的GAV
<parent>
    <groupId>org.springframework.bootgroupId>
    <artifactId>spring-boot-starter-parentartifactId>
    <version>1.5.6.RELEASEversion>
parent>
  • 通过dependencyManagement 标签引入
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.bootgroupId>
                <artifactId>spring-boot-starter-parentartifactId>
                <version>1.5.6.RELEASEversion>
                <scope>importscope>
                <type>pomtype>
        dependency>
    dependencies>
dependencyManagement>

Spring Boot的入口

Spring Boot的入口是一个标注了@SpringBootApplication的类,这个类一般情况下是有个main()方法。通过查看源码我们知道,@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),查看org.springframework.boot.SpringApplication的源码可以看到下面的代码

public static ConfigurableApplicationContext run(Object source, String... args) {
    return run(new Object[] { source }, args);
}

也就是说run()会将第一个参数作为源进行加载。

除了了使用SpringApplication.run()这个静态方法来启动Spring Boot外,还可以使用

SpringApplication application = new SpringApplication();
        Set set = new HashSet<>();
        set.add(OrderApplication.class);
        application.setSources(set);
        application.run(args); 
  

这种方式来启动Spring Boot。这种方式可以指定多个源。

你可能感兴趣的:(Spring,Boot)