盘古BPM体验地址    盘古BPM交流群盘古BPM交流群号:963222735

spring boot @SpringBootApplication、自动装配、组合注解

分享牛 6194℃

摘要:本文重点讲解spring boot中的 @SpringBootApplication注解、spring boot 自动装配、spring boot组合注解使用以及说明

@SpringBootApplication注解说明

@SpringBootApplication注解的定义如下所示:

package org.springframework.boot.autoconfigure;
import java.lang.annotation.Annotation;
import java.lang.annotation.Documented;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
@Target({java.lang.annotation.ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@Configuration
@EnableAutoConfiguration
@ComponentScan
public @interface SpringBootApplication
{
Class<?>[] exclude() default {};
String[] excludeName() default {};
}

@SpringBootApplication是spring boot框架中的核心注解,通过上面的代码可以看出他是一个组合注解。组合的注解有:@Configuration、@EnableAutoConfiguration、@ComponentScan。因此如果我们不直接使用@SpringBootApplication注解,则可以直接使用@Configuration、@EnableAutoConfiguration、@ComponentScan三个注解。

直接使用@SpringBootApplication注解

比如直接使用@SpringBootApplication注解如下所示:

@RestController
@SpringBootApplication
public class Application {
@RequestMapping("/")
String index() {
return "xxxxxxxxxxxxx";
}
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}

使用组合注解代替@SpringBootApplication注解

或者直接使用组合注解如下所示:

@RestController
@Configuration
@EnableAutoConfiguration
@ComponentScan
public class Application {
@RequestMapping("/")
String index() {
return "xxxxxxxxxxxxx";
}
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}

上述的两个代码是等价的。只是直接使用@SpringBootApplication比较简洁方便。

组合注解说明

@EnableAutoConfiguration注解:让spring boot框架根据类路径下面的jar包依赖为当前的项目工程自动注入依赖的类,说白了就是自动配置。

比如,我们项目引入了spring-boot-starter-web模块,则spring boot框架会自动添加tomcat以及spring mvc的依赖。并对tomcat以及spring mvc自动装配。

spring boot会自动扫描@SpringBootApplication所在类的同级包以及子包。

关闭自动配置

通过上面的讲解可以知道,要想关闭spring boot 中的自动配置只需要使用spring boot中@SpringBootApplication中的exclude参数即可,如下所示:

@SpringBootApplication(exclude={DataSourceAutoConfiguration.class})


转载请注明:分享牛 » spring boot @SpringBootApplication、自动装配、组合注解