开发者学堂课程【SpringBoot 实战教程: 启用自动配置注解】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/651/detail/10770
启用自动配置注解
1、在入门的程序中用到 controller,用到 controller 就会想到配置 springmac 的相关配置,比如处理机映射器,处理机适配器,视图解析器以及核心控制器,但是任何的配置都没有写,照样可以访问 controller,那么起作用的就是这个注解@EnableAutoConfiguration,它的作用是启动自动配置。springboot 可以自动配置,也就是所有 springmac 相关的配置都由 springboot 进行。
@EnableAutoConfiguration//启用自动配置
@Controller
public class IndexController {
@RequestMapping("/")
@ResponseBody
public String first ()
{
return "Hello World!" ;
/ /入口
public static void main (String[ ] args) {
SpringApplication. run (IndexController.class, args) ;
}
2、在访问 controller 时同样需要 tomcat,tomcat 也是 springboot 进行自动配置。
3、@EnableAutoConfiguration 注解是什么原理呢?就是 pom 文件中所依赖的jar包进行自动配置。
@EnableAutoConfiguration:启用自动配置,该注解会使 SpringBoot 根据项目依赖的 jar 包自动配置项目的配置项。例如:添加了 spring-boot-starter-web 的依赖,项目中也就会引入 SpringMVC 的依赖,Spring Boot 就会自动配置 Tomcat 和 SpringMVC。
4、这个依赖的是 spring-boot-starter-web 包,相关的 jar 包有 spring 和 springmac,tomcat 等等相关的包,所以 springboot 的注解@EnableAutoConfiguration 根据 jar 包进行相应的自动配置。
5、springboot 支持哪些自动配置?可以从依赖里面的 spring-boot-autoconfigure-1.5.6.release.jar,
org.springframework.boot.autoconfigure.data.cassandra
org.springframework.boot.autoconfigure.data.couchbase
org.springframework.boot.autoconfigure.data.elasticsearch
org.springfr amework.boot.autoconfigure.data.jpa
org.springframework.boot.autoconfigure.data.ldap
org.springframework.boot.autoconfigure.data.mongo
org.springframework.boot.autoconfigure.data.neo4j
org.springframework.boot.autoconfigure.data.redis
org.springframework.boot.autoconfigure.data.rest
org.springframework.boot.autoconfigure.data.solr
org.springframework.boot.autoconfigure.data.web
以及模版引擎都可以做自动配置,但是有些情况下不需要配置,这时就需要关闭自动配置,如何关闭?比如关闭 redis 自动配置,找到 redis 所在的 class,在这个注解的里面有一个属性叫 exclude 排除,它把谁排除,被排除的就不会自动配置。但是 exclude 是 class 类型,所以要找到要排除的配置项对应的 class,通常叫 AutoConfiguration,点击 redisAutoConfiguration.class,这个作用是关闭自动配置,这就是注解在程序中的作用。
//exclude={RedisAutoConf iguration.class}:关闭自动配置
@EnableAutoConfiguration (exclude={RedisAutoConf iguration.class})//启用自动配置
@Controller
public class IndexController {
@RequestMapping("/")
@Re sponseBody
public String first ()
{
return"Hello World! ";
}
/ /入口
public static void main (String[] args) {
SpringApplication. run (IndexController .class, args) ;
}