欢迎光临
我们一直在努力

springboot启动类的三个注解

SpringBoot启动类的三大注解是什么?

在SpringBoot中,我们可以通过添加一些注解来简化项目的配置和开发,最常用的三个注解分别是@SpringBootApplication、@EnableAutoConfiguration和@ComponentScan,下面我们将详细介绍这三个注解的作用及其使用方法。

@SpringBootApplication注解

1、作用:@SpringBootApplication是SpringBoot的核心注解,它表示这是一个SpringBoot应用程序的启动类,当一个类上添加了这个注解后,SpringBoot会自动完成以下配置:

启用基本的自动配置;

设置应用名称;

注册默认的异常处理;

开启组件扫描。

2、使用方法:在启动类上添加@SpringBootApplication注解即可。

示例代码:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class DemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}

@EnableAutoConfiguration注解

1、作用:@EnableAutoConfiguration是SpringBoot的一个核心注解,它用于开启自动配置功能,当一个类上添加了这个注解后,SpringBoot会根据项目中的依赖关系自动配置相应的Bean,如果项目中引入了Web依赖,那么SpringBoot会自动配置Tomcat、DispatcherServlet等组件。

2、使用方法:在启动类上添加@EnableAutoConfiguration注解即可,通常情况下,我们不需要显式地指定要启用哪些自动配置,因为SpringBoot会自动识别并加载相关的配置类,但在某些特殊场景下,我们可以通过指定exclude属性来排除不需要的自动配置。

示例代码:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.context.annotation.ComponentScan;
@EnableAutoConfiguration
@ComponentScan(exclude = {"org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration"})
public class DemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}

@ComponentScan注解

1、作用:@ComponentScan是Spring框架的一个核心注解,它用于开启组件扫描功能,当一个类上添加了这个注解后,SpringBoot会自动扫描当前包及其子包下的所有类,并将这些类注册为Bean,这样,我们就可以在其他地方通过依赖注入的方式使用这些Bean了。

2、使用方法:在启动类或者配置类上添加@ComponentScan注解即可,通常情况下,我们会在启动类上添加这个注解,以便让SpringBoot自动扫描并注册所有的Bean,如果需要对扫描范围进行限制,可以通过指定basePackages属性来实现,我们还可以使用includeFilters和excludeFilters属性来过滤需要扫描的类。

示例代码:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.FilterType;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import java.util.function.Function;
@EnableAutoConfiguration
@ComponentScan(basePackages = "com.example", includeFilters = @Filter(type = FilterType.ASSIGNABLE_TYPE, classes = Controller.class), excludeFilters = @Filter(type = FilterType.ASSIGNABLE_TYPE, classes = WebMvcConfigurer.class))
public class DemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}

相关问题与解答:

1、@SpringBootApplication注解是否可以替换为@Configuration、@EnableAutoConfiguration和@ComponentScan这三项注解?答:不能直接替换,因为@SpringBootApplication注解已经包含了@Configuration、@EnableAutoConfiguration和@ComponentScan这三项注解的功能,所以无需再单独添加这三项注解,如果你想要自定义某个Bean的创建过程,可以在启动类上单独添加@Configuration注解。

赞(0) 打赏
未经允许不得转载:九八云安全 » springboot启动类的三个注解

评论 抢沙发