Spring Boot多模块包扫描问题

Spring Boot多模块包扫描问题

1.@SpringBootApplication


@SpringBootApplication(scanBasePackages = "cn.mypackage1","cn.mypackage1")
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(DeviceApplication.class, args);
    }

}

使用@SpringBootApplication的scanBasePackages属性,配置scanBasePackages扫描多个包及子包内的bean

注意

@SpringBootApplicationscan的BasePackages属性不配置的话会默认扫描本类包内及子类包内的bean,如果配置了BasePackages则不会扫描本类包内及子类包内的bean

2.@ComponentScan

@ComponentScan(basePackages = "cn.mypackage1","cn.mypackage1")
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(DeviceApplication.class, args);
    }

}

这个注解的使用方法和SpringBootApplication基本一致

3.@Import

@Import(LogAspect.class)
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(DeviceApplication.class, args);
    }

}

如果希望引入包里的某一个bean,而不想引入该包下的全部bean,可以使用@Import注解

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Import({SchedulingConfiguration.class})
@Documented
public @interface EnableScheduling {
}

例如,springboot启动定时器也是使用了Import注解


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