SpringBoot如何扫描与主启动类非同包也非子包下的类
当我们的主启动类与其他的类不是同一个包或者子包下时,如何解决SpringBoot的扫描呢?此时,直接加上扫描注解@Component能够起作用吗?其实,这个时候就不起作用了
这里就做一个简单的测试,结构如下
StudentController类
package com.controller;
import org.springframework.stereotype.Component;
@Component
public class StudentController {
public StudentController() {
System.out.println("我是构造方法");
}
}
一般有两种解决办法
方法一:使用@Bean注解扫描,交给spring进行管理
//主启动类
@SpringBootApplication
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class,args);
}
/**
* 方法一:使用@Bean注解,交给spring进行管理
* @return
*/
@Bean
public StudentController studentController(){
return new StudentController();
}
}
方法二:使用@inport(类名.class)注解,将这个类导入
@SpringBootApplication
@Import(StudentController.class)
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class,args);
}
}
此时也可以实现扫描的效果