关于springboot如何开启自动配置

SpringBoot开启自动配置理解

在了解spring boot如何开启自动配置时,应先了解什么是spring boot?

1.spring boot
  • spring boot是一个简化了spring中多框架中所需大量繁琐的配置文件,服务于框架,且服务范围是简化配置文件的框架
  • spring boot特点:配置文件更简单,应用部署更简单(spring boot内置服务器,并装备启动类代码),可快速开启一个web容器进行开发
  • spring boot核心功能:
 - 1.可独立运行spring项目,以jar包形式独立运行
 - 2.内嵌Servlet容器:spring boot可选择内嵌tomcat,jetty或undertow,无序以war包形式部署项目
 - 3.简化maven配置:spring提供推荐基础pom文件来简化maven配置
 - 4.自动配置spring:spring boot会根据项目依赖来自动配置spring框架,极大减少了项目需要使用的配置
 - 5.提供生产就绪性功能:提供可以直接在生产环境中使用的功能,如性能指标,应用信息和应用健康检查
 - 6.无代码生成和xml自动配置:spring boot不生成代码,不需要任何xml配置即可实现spring所有配置
2.spring boot开启自动配置

由spring boot原理可知,运行项目需要的tomcat等都被spring boot集成,且简化了maven配置,并不需要xml文件进行配置。而spring项目中,xml文件 用来进行配置是必不可少的,因此,spring boot虽然看不到xml文件,实际上是内部底层进行了处理,原理上仍然是利用了xml文件的作用。

下面就来看看spring boot是如何实现自动配置的吧~

2.1@SpringBootApplication注解
  • 首先看看具体应用及源码:
@SpringBootApplication
public class App {
   
    public static void main(String[] args) {
   
        SpringApplication.run(App.class, args);
    }
}

由以上代码可知,App作为一个项目的启动(入口)类,此方法其实是spring boot启动的一种常用方式,即直接使用main方法运行。而,main方法中使用SpringApplication.run()来启动整个应用。需要注意的是:这个启动类使用@SpringBootApplication注解声明,而此注解是SpringBoot的核心注解。

  • @SpringBootApplication作用:标注这是一个spring boot应用,而被标注的类则是项目的主程序
  • @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 {
   
    @AliasFor(
        annotation = EnableAutoConfiguration.class
    )
    Class<?>[] exclude() default {
   };

    @AliasFor
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值