@Configuration标记得类加载方式
我们都知道
SpringBoot默认会扫描启动类同包以及子包下的注解
但是如果@Configuration标记的类不在启动类的包下怎么办呢?
我们来看看@Configuration两种起作用的方法 :
- 把被标记的类所在包的路径纳入scanBasePackages,这样就进入了Spring的扫描范围。
- 在spring.factories中用org.springframework.boot.autoconfigure.EnableAutoConfiguration=类的全路径名,这样在项目启动的时候SpringFactoriesLoader会初始化spring.factories(包括引入的jar包中的)中配置的类。
其中使用第2种方式——在spring.factories配置的好处就是,如果我们想开发一个jar把供其他人使用,那么我们就在自己工程的spring.factories中配置@Configuration类,这样只要其他人在他们项目的POM中加入了我们开发的jar包作为依赖,在他们项目启动的时候就会初始化我们开发的工程中的类。