@EnableAutoConfiguration 标签使用
@EnableAutoConfiguration 这个注解的作用是:
从classpath中搜索所有META-INF/spring.factories配置文件然后,将其中org.springframework.boot.autoconfigure.EnableAutoConfiguration key对应的配置项加载到spring容器
下面介绍一下这个标签的用法,这个标签是 包含在 SpringBootApplication 这个注解中的。
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(
excludeFilters = {@Filter(
type = FilterType.CUSTOM,
classes = {TypeExcludeFilter.class}
), @Filter(
type = FilterType.CUSTOM,
classes = {AutoConfigurationExcludeFilter.class}
)}
)
public @interface SpringBootApplication {
1.首先 我们定一个 Demo类。
package com.example.demo; public class Demo { public String hello(){
return ("hello world");
}
}
2.定义一个配置类。
package com.example.demo; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnJava;
import org.springframework.boot.system.JavaVersion;
import org.springframework.context.annotation.Bean; //@ConditionalOnBean(name = "operaSinger1")
//@ConditionalOnJava(range = ConditionalOnJava.Range.EQUAL_OR_NEWER,value = JavaVersion.EIGHT)
public class DemoAutoConfigure1 { @Bean
private Demo demo(){
return new Demo();
}
}
这里我们产生一个Demo类的实例,并注入到容器中,一般这个类的名字使用AutoConfigure 结束,试验过其实也不一定。
3.配置到 spring.factories 文件中。
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.example.demo.DemoAutoConfigure1
4.在代码中使用Demo实例。
@RestController
public class DemoController { @Autowired
private Demo demo; @GetMapping("/demo")
public String demo(){
return demo.hello();
}
}
如果正常 这个实例是可用的。
我们也可以在这个配置类上增加一些条件注解比如:
@ConditionalOnJava(range = ConditionalOnJava.Range.EQUAL_OR_NEWER,value = JavaVersion.NINE)
比如比如使用java的版本,我当前使用的是java8 ,执行后抛出错误如下:
The injection point has the following annotations:
- @org.springframework.beans.factory.annotation.Autowired(required=true) The following candidates were found but could not be injected:
- Bean method 'demo' in 'DemoAutoConfigure1' not loaded because @ConditionalOnJava (9 or newer) found 1.8
@EnableAutoConfiguration 标签使用的更多相关文章
- 【Spring Boot源码分析】@EnableAutoConfiguration注解(一)@AutoConfigurationImportSelector注解的处理
Java及Spring Boot新手,首次尝试源码分析,欢迎指正! 一.概述 @EnableAutoConfiguration注解是Spring Boot中配置自动装载的总开关.本文将从@Enable ...
- a标签点击跳转失效--IE6、7的奇葩bug
一般运用a标签包含img去实现点击图片跳转的功能,这是前端经常要用到的东西. 今天遇到个神奇的bug:如果在img上再包裹一层div,而且div设置了width和height,则图片区域点击时,无任何 ...
- IE6、7下html标签间存在空白符,导致渲染后占用多余空白位置的原因及解决方法
直接上图:原因:该div包含的内容是靠后台进行print操作,输出的.如果没有输出任何内容,浏览器会默认给该空白区域添加空白符.在IE6.7下,浏览器解析渲染时,会认为空白符也是占位置的,默认其具有字 ...
- 百度MIP页规范详解 —— canonical标签
百度MIP的规范要求必须添加强制性标签canonical,不然MIP校验工具会报错: 强制性标签<link rel="/^(canonical)$/"> 缺失或错误 这 ...
- 【CSS进阶】伪元素的妙用--单标签之美
最近在研读 <CSS SECRET>(CSS揭秘)这本大作,对 CSS 有了更深层次的理解,折腾了下面这个项目: CSS3奇思妙想 -- Demo (请用 Chrome 浏览器打开,非常值 ...
- TODO:Laravel 使用blade标签布局页面
TODO:Laravel 使用blade标签布局页面 本文主要介绍Laravel的标签使用,统一布局页面.主要用到到标签有@yield,@ stack,@extends,@section,@stop, ...
- 最新 去掉 Chrome 新标签页的8个缩略图
chrome的新标签页的8个缩略图实在让人不爽,网上找了一些去掉这个略缩图的方法,其中很多已经失效.不过其中一个插件虽然按照原来的方法已经不能用了,但是稍微变通一下仍然是可以用的(本方法于2017.1 ...
- css-父标签中的子标签默认位置
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...
- xpath提取多个标签下的text
title: xpath提取多个标签下的text author: 青南 date: 2015-01-17 16:01:07 categories: [Python] tags: [xpath,Pyth ...
- 多个Img标签之间的间隙处理方法
1.多个标签写在一行 <img src="/i/eg_tulip.jpg" alt="郁金香" height="100px"/> ...
随机推荐
- 全网最适合入门的面向对象编程教程:50 Python函数方法与接口-接口和抽象基类
全网最适合入门的面向对象编程教程:50 Python 函数方法与接口-接口和抽象基类 摘要: 在 Python 中,接口和抽象基类(Abstract Base Classes, ABCs)都用于定义类 ...
- 多表查询 —— 内连接&外连接&子查询
连接查询 内连接 1.查询语法 -- 隐式内连接 select 字段列表 from 表1, 表2... where 条件; -- 显式内连接 select 字段列表 from 表1 [INNER] j ...
- namenode rpc 请求队列调优
当 datanode 上新写完一个块,默认会立即汇报给 namenode.在一个大规模 Hadoop 集群上,每时每刻都在写数据,datanode 上随时都会有写完数据块然后汇报给 namenode ...
- .net 到底行不行!2000 人在线的客服系统真实屏录演示(附技术详解) 📹
业余时间用 .net 写了一个免费的在线客服系统:升讯威在线客服与营销系统. 时常有朋友问我性能方面的问题,正好有一个真实客户,在线的访客数量达到了 2000 人.在争得客户同意后,我录了一个视频. ...
- [TK] 选课 hzoj-tg#279
该题目是一道树上背包问题,题目的全部思路已写在 树上背包问题 中. 该题目代码只供辅助理解. struct edge{ int to,w; }; vector<edge> e[1001]; ...
- vue 的常用指令以及作用 ·
1. v-model 多用于表单元素实现双向数据绑定(同 angular 中的 ng-model) 2. v-for 格式: v-for="字段名 in(of) 数组 json" ...
- 说一下tcp三次握手
1. 客户端发送syn请求连接 : 2. 服务器检验syn,然后发送syn和ack确认连接: 3. 客户端接收ack和syn,然后发送ack建立连接 :
- ajax异步请求数据还没有返回,页面时空白的如何处理
使用骨架屏,给用户一种正在解析数据的感觉 : element-ui的骨架屏 :https://element.eleme.cn/#/zh-CN/component/skeleton
- Python之爬虫-全民k歌
import re import os import requests from aip import AipSpeech from pydub import AudioSegment APP_ID ...
- KubeSphere 核心架构浅析
作者简介:万宏明,KubeSphere 核心贡献者,专注于云原生安全领域. KubeSphere 是在 Kubernetes 之上构建的面向云原生应用的容器混合云管理系统.支持多云与多集群管理,提供全 ...