一、概念:
SpringBoot项目主启动类的main方法有一个@SpringBootApplication注解,我们可以点进去看一下发现这个注解其实是一个复合注解,包含了@SpringBootConfiguration、@ComponentScan、@EnableAutoConfiguration等注解。而SpringBoot 自动配置主要通过 @EnableAutoConfiguration这个注解实现的,我们可以点进去看一下这个注解发现也是复合注解,这里一个个看一下。
作用
- 可以在启动项目的时候将指定jar中的类注册到BeanFactory中
- 便于组件的引用,只需要和引用自身项目被Spring代理的对象一样即可
二、使用方式
1.创建要被引用的类
public class AuduSercice {
public String doSay(String str) {
return str;
}
}
2.创建spring.factories文件(需要在META-INF目录下)
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.cc.study.AuduSercice
刚刚的类路径填写近去,多个用逗号分开即可
3.打包后,第三方项目引用
- pom文件引用依赖
<dependency>
<groupId>org.example</groupId>
<artifactId>cc-study</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
-使用@Resource引用即可
@Service("trainingMyExamBizService")
public class TrainingMyExamBizServiceImpl implements TrainingMyExamBizService {
@Resource
private AuduSercice auduSercice;
}
4.其他方式
- 通过Import注解的方式引入
@Import(AuduSercice.class)
@Service("trainingMyExamBizService")
@Import(AuduSercice.class)
public class TrainingMyExamBizServiceImpl implements TrainingMyExamBizService {
@Resource
private AuduSercice auduSercice;
}
- 通过ComponentScan注解方式(该方式 类头必须添加注解)
@ComponentScan(value = {"com.cc.*"})
*** 该方式类头必须添加注解 \color{#FF0000}{该方式 类头必须添加注解} 该方式类头必须添加注解 ***
@Configuration
public class AuduSercice {
public String doSay(String str) {
return str;
}
}