@Configuration @EnableAutoConfiguration @ComponentScan 三个注解的记录
打开@SpringBootApplication 的源码发现它里面配置了@Configuration @EnableAutoConfiguration @ComponentScan 这个这三个注解
- @Configuration
这个注解就相当于用xml搭建spring服务时候的<beans>这个注解 而经常与它配合使用的@bean注解就想到与<bean>注解
import com.test.TestService;
@Configuration
public class Test{
//TestService 是我们假设的一个service类
@bean
public TestService getTestService(){
return new TestService();
}
上面这段代码就相当于
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context" xmlns:jdbc="http://www.springframework.org/schema/jdbc"
xmlns:jee="http://www.springframework.org/schema/jee" xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:util="http://www.springframework.org/schema/util" xmlns:task="http://www.springframework.org/schema/task" xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-4.0.xsd
http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-4.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.0.xsd
http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-4.0.xsd" default-lazy-init="false">
<bean id="testService" class="com.test.TestService"></bean>
</beans>
- @EnableAutoConfiguration
这个注解就会根据你引入的依赖猜想你需要的配置,然后去自动配置。 - @ComponentScan
这个注解就是定义你需要扫描的路径,然后把路径下的配置了@Component(或者@Controller, @Service, @Repository)的放到spring容器里面,可以供其他类引用