@Enable*注解
SpringBoot中提供了很多Enable开头的注解,这些注解都是用于动态启动某些功能的。而其底层原理是使用Import注解导入一些配置类,实现Bean的动态加载。
思考:SpringBoot工程是否可以直接获取jar包中定义的Bean?
答:不可以
下面是代码演示
首先我们来创建个工程
我们在第一个工程里写这三行代码
然后我们再来创建个工程
然后在里面写个User类
接着再给它写个配置类
再去springboot-enable这个模块里导入springboot-enable-other的坐标
运行后可发现会报错
这是因为springboot不能直接获取其他工程里定义的bean。
@ComponentScan 扫描范围:当前引导类所在包及子包
如果我们想要获取其他工程里的bean
第一种解决办法
使用@ComponentScan扫描com.itheima.config包
运行后可发现User被加载进来了
第二种方式:使用@Import注解加载类。这些类都会被Spring创建,并放入IoC容器中
第三种方式:对Import注解进行封装
首先来创建个注解
里面的内容是
换成我们刚才定义的注解也能加载Bean