springboot启动类的三个注解

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

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

springboot启动类的三个注解

@SpringBootApplication注解

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

启用基本的自动配置;

设置应用名称;

注册默认的异常处理;

开启组件扫描。

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

springboot启动类的三个注解

示例代码:

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属性来过滤需要扫描的类。

springboot启动类的三个注解

示例代码:

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注解。

原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/229094.html

(0)
K-seoK-seoSEO优化员
上一篇 2024年1月19日 04:12
下一篇 2024年1月19日 04:14

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

免备案 高防CDN 无视CC/DDOS攻击 限时秒杀,10元即可体验  (专业解决各类攻击)>>点击进入