转自:https://blog.youkuaiyun.com/claram/article/details/75125749
1、@SpringBootApplication注解
被 @Configuration、@EnableAutoConfiguration、@ComponentScan 注解所修饰,换言之 Springboot 提供了统一的注解来替代以上三个注解,简化程序的配置;
①@Configuration
一般与 @Bean 注解配合使用,用 @Configuration 注解类等价与 XML 中配置 beans;
用 @Bean 注解方法等价于 XML 中配置 bean;
举例:
<beans>
<bean id = "userService" class="com.user.UserService">
<property name="userDAO" ref = "userDAO"></property>
</bean>
<bean id = "userDAO" class="com.user.UserDAO"></bean>
</beans>
就等价于
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class Config {
@Bean
public UserService getUserService(){
UserService userService = new UserService();
userService.setUserDAO(null);
return userService;
}
@Bean
public UserDAO getUserDAO(){
return new UserDAO();
}
}
②@EnableAutoConfiguration
启用 Spring 应用程序上下文的自动配置,试图猜测和配置您可能需要的bean。
自动配置类通常采用基于你的 classpath 和已经定义的 beans 对象进行应用。
被 @EnableAutoConfiguration 注解的类所在的包有特定的意义,并且作为默认配置使用。
例如,当扫描 @Entity类的时候它将本使用。
通常推荐将 @EnableAutoConfiguration 配置在 root 包下,这样所有的子包、类都可以被查找到。
③@ComponentScan
为 @Configuration注解的类配置组件扫描指令。同时提供与 Spring XML’s 元素并行的支持。
无论是 basePackageClasses() 或是 basePackages() (或其 alias 值)都可以定义指定的包进行扫描。
如果指定的包没有被定义,则将从声明该注解的类所在的包进行扫描。
通俗的讲,@ComponentScan 注解会自动扫描指定包下的全部标有 @Component注解 的类,并注册成bean,当然包括 @Component 下的子注解@Service、@Repository、@Controller。@ComponentScan 注解没有类似 的属性。
2、@MapperScan
@MapperScan("com.xxx.**.**.dao"),扫描定义路径下的包
https://blog.youkuaiyun.com/cml_blog/article/details/65658654