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.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.6.RELEASE</version>
</parent>
  • 通过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>

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<Object> set = new HashSet<>();
        set.add(OrderApplication.class);
        application.setSources(set);
        application.run(args);

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值