SpringBoot 默认包的结构

如果在controller下的MainApplication主程序所在包及其下面的所有子包里面的组件都会被默认扫描进来

但是如果建立在主程序上,比如说在atguigu下建立WorldController类,那么就会扫描不到,运行时会报错
在这里插入图片描述
在这里插入图片描述
解决方法:
方法一:在主程序@SpringBootApplication注解里修改一下我们要扫描的基础包

package com.atguigu.boot;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

/**
 * @author LunarYouI
 * @create 2021-03-18 15:57
 */

/**
 * 主程序类
 *
 * @SpringBootApplication:这是一个SpringBoot应用
 */
@SpringBootApplication(scanBasePackages = "com.atguigu")
public class MainApplication {
    public static void main(String[] args) {
        SpringApplication.run(MainApplication.class,args);
    }
}

在这里插入图片描述
方法二:点击@SpringBootApplication 你会发现这个注解是一个合成注解
在这里插入图片描述
然后将其中三个拿出来,放入主程序里面,再到@ComponentScan中修改扫描的基础包

package com.atguigu.boot;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.SpringBootConfiguration;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;

/**
 * @author LunarYouI
 * @create 2021-03-18 15:57
 */

/**
 * 主程序类
 *
 * @SpringBootApplication:这是一个SpringBoot应用
 */

//@SpringBootApplication(scanBasePackages = "com.atguigu")

@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan("com.atguigu")

//@SpringBootApplication
public class MainApplication {
    public static void main(String[] args) {
        SpringApplication.run(MainApplication.class,args);
    }
}

在这里插入图片描述


版权声明:本文为qq_46100517原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。