开发者学堂课程【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) ;
}