Spring Boot中的@SpringBootConfiguration注释

Spring Boot中 @SpringBootConfiguration注释是一个类级别的注释,它指示此类提供了应用程序配置。

通常,具有main()方法的类最适合此注释。

我们通常使用@SpringBootApplication批注,该批注会自动继承@SpringBootConfiguration批注。

注释用法:

当我们使用@SpringBootConfiguration标记一个类时,这意味着该类提供了@Bean定义方法。 Spring容器处理配置类以为我们的应用实例化和配置bean。

让我们看一下这个注释的用法示例:

@SpringBootConfiguration
public class DemoApp {public static void main(String[] args) {SpringApplication.run(DemoApp.class, args);}@Beanpublic Course course() {return new Course();}@Beanpublic Student student() {return new Student();}
}

根据Spring文档, @ SpringBootConfiguration只是Spring标准@Configuration批注的替代方法。 两者之间的唯一区别是@SpringBootConfiguration允许自动找到配置。

这在编写测试时特别有用。

如前所述, @SpringBootApplication批注包括@SpringBootConfiguration批注:

@Target(value=TYPE)
@Retention(value=RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(excludeFilters={@ComponentScan.Filter(type=CUSTOM,classes=TypeExcludeFilter.class)})
public @interface <span class="memberNameLabel">SpringBootApplication</span>

我们最通常只使用@SpringBootApplication ,后者又包含了另一个。

请注意,建议在我们的应用程序中仅使用一个@SpringBootConfiguration@SpringBootApplication批注。

在为我们的Spring Boot应用程序编写测试用例时,我们遇到的常见异常之一是:

Unable to find a @SpringBootConfiguration, 
you need to use @ContextConfiguration or @SpringBootTest(classes=...)with your test java.lang.IllegalStateException

造成这种情况的主要原因通常是,像@DataJpaTest之类的测试注释以及其他一些注释首先在当前包中寻找@SpringBootConfiguration注释。 万一它在当前包中丢失了,他们开始查找包层次结构,直到找到此注释。

确保您的测试类与使用@SpringBootApplication标记的类位于同一包中,或者至少位于包层次结构中较低的类中:

sample-app+--pom.xml+--src+--main+--com+--programmergirl+--Application.java+--test+--com+--programmergirl+--test+--SampleJpaTest.java

这样可以解决此问题。

结论:

在这个迷你教程中,我们讨论了@SpringBootConfiguration批注。 我们还看到,@SpringBootApplication包括对@SpringBootConfiguration的定义。

并且,我们将标准的Spring @Configuration@SpringBootConfiguration进行了比较

我们还有另一篇关于Spring核心注释的文章,可以帮助您学习Spring应用程序中使用的一些常见注释。 如果您愿意,请随时进行探索。

翻译自: https://www.javacodegeeks.com/2019/09/springbootconfiguration-annotation-spring-boot.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/341354.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第18次csp认证 201912-1 报数(C++)

题目 分析 需要跳过的包括&#xff1a;7的倍数和包括7的数。跳过的同时n要加一&#xff08;总的报n个数&#xff0c;跳过的不算&#xff09;。声明一个全局数组count[4]方法1&#xff1a;i1开始到n&#xff0c;把输入的i转化为字符串&#xff0c;然后在字符串里找’7’或者7的…

C++ vector求均值和方差

1 定义 &#xff08;1&#xff09;均值 &#xff08;2&#xff09;方差 &#xff08;3&#xff09;标准差 2 代码实现 //std::vector< double> 或者 std::vector< int> 类型变量求均值和方差 #include <numeric> #include <iostream> #include <m…

第18次csp认证 201912-2 回收站选址(C++)

题目 分析 每一个垃圾堆放处都可能是回收站&#xff0c;所以两轮循环&#xff0c;找出所有可以成为回收站的坐标。再两轮循环&#xff0c;确定所有回收站的得分最后输出每种得分的回收站个数 AC代码 #include <iostream> #include<string> using namespace std;…

Python——列表中存放字典遇到的问题

Python——列表中存放字典遇到的问题 使用列表、字典之间的相互嵌套可以很容易的实现json数据格式&#xff0c;但是昨天在往列表中装入字典时遇到了问题&#xff1a; 直接使用append方法将字典添加到列表中&#xff0c;如果需要更改字典中的数据&#xff0c;那么列表中的内容也…

jpa 返回数据转换_如何使用JPA类型转换器加密数据

jpa 返回数据转换几天前&#xff0c;我读了Bear Giles关于2012年使用JPA监听器进行数据库加密的有趣文章。他讨论了对加密解决方案的要求&#xff0c;并提供了JPA监听器的代码示例。 他的主要要求是&#xff1a; 提供不影响应用程序的透明加密&#xff0c; 能够在部署时添加加…

pat 乙级 1036 跟奥巴马一起编程(C++)

题目 美国总统奥巴马不仅呼吁所有人都学习编程&#xff0c;甚至以身作则编写代码&#xff0c;成为美国历史上首位编写计算机代码的总统。2014 年底&#xff0c;为庆祝“计算机科学教育周”正式启动&#xff0c;奥巴马编写了很简单的计算机代码&#xff1a;在屏幕上画一个正方形…

使用Jmeter的Websocket:获取性能数字

问题&#xff1a; 我最近遇到了一个问题&#xff0c;该问题需要针对多个用户测试SockJs / Stomp Spring Websocket代理的性能。 由于WebSocket本质上是异步的&#xff0c;因此它比常规的http / https请求-响应测试更加棘手。 解&#xff1a; 好了&#xff0c;无需解释为什么Jm…

NS3官方参考资料manual和tutorial

https://www.nsnam.org/releases/ns-3-33/documentation/

pat 乙级 1037 在霍格沃茨找零钱(C++)

题目 如果你是哈利波特迷&#xff0c;你会知道魔法世界有它自己的货币系统 —— 就如海格告诉哈利的&#xff1a;“十七个银西可(Sickle)兑一个加隆(Galleon)&#xff0c;二十九个纳特(Knut)兑一个西可&#xff0c;很容易。”现在&#xff0c;给定哈利应付的价钱 P 和他实付的…

Sublime删除所有包含特定值的行

1、选中包含的字符 2、全部选中包含这个字符&#xff1a; ALTF3 3、全选整行&#xff1a; 台式机&#xff1a;Shiftend 笔记本&#xff1a;ShiftFnend 4、删除所有数据&#xff1a; DELETE 5、删除所有空白行&#xff1a; 使用快捷方式直接删除空行&#xff0c;前提是进行如下…

PAT乙级 1038 统计同成绩学生 C++)

题目 本题要求读入 N 名学生的成绩&#xff0c;将获得某一给定分数的学生人数输出。 输入格式&#xff1a; 输入在第 1 行给出不超过 10​5的正整数 N&#xff0c;即学生总人数。随后一行给出 N 名学生的百分制整数成绩&#xff0c;中间以空格分隔。最后一行给出要查询的分数…

Excel完成将多行多列数据转化为一列

想要把Excel的数据用Word转成一行。那么第一步当然是将excel中的数据先复制下啦&#xff0c;复制好了之后打开word&#xff0c;然后进行粘贴&#xff0c;注意这里要选择“只保留文本”哦。 接下来我们要用鼠标选中每一行的两个数据中间保留的空格&#xff0c;就像小编这样哦…

Kogito,ergo规则—第2部分:规则的全面执行模型

这是第二后 一系列更新的Kogito主动性和我们的努力&#xff0c;使Drools的云。 在这篇文章中&#xff0c;我们将深入研究规则单元的细节&#xff0c;并向您展示为什么我们对它们感到兴奋。 规则的全包执行模型 如果您一直在仔细检查Drools手册&#xff0c;以在每个最新发行版中…

pat 乙级 1041 考试座位号(C++)

题目 每个 PAT 考生在参加考试时都会被分配两个座位号&#xff0c;一个是试机座位&#xff0c;一个是考试座位。正常情况下&#xff0c;考生在入场时先得到试机座位号码&#xff0c;入座进入试机状态后&#xff0c;系统会显示该考生的考试座位号码&#xff0c;考试时考生需要换…

Ubuntu16U盘没有不能新建粘贴文件[sdf] Write cache: disabled, read cache: enabled, doesn‘t support DPO or FUA

Ubuntu16.04U盘变为只读&#xff0c;不可写入 之前博客记录了Ubantu18下U盘只读的问题&#xff0c;Ubuntu16错误与18不同&#xff0c;故在此记录 1首先参考了这个方法 可是没有解决。。。 https://blog.csdn.net/slj_win/article/details/50349976 但是起码知道了 排错&#x…

1042 字符统计(PAT乙级、C++)(超详细)

题目 请编写程序&#xff0c;找出一段给定文字中出现最频繁的那个英文字母。 输入格式&#xff1a; 输入在一行中给出一个长度不超过 1000 的字符串。字符串由 ASCII 码表中任意可见字符及空格组成&#xff0c;至少包含 1 个英文字母&#xff0c;以回车结束&#xff08;回车…

NS3可视化问题及解决办法

NS Bindings相关问题: 1 NS3编译遇到的Python相关的问题解决办法 ./waf configure --with-pybindgen存放路径 Linux系统在使用时&#xff0c;难免碰到更新忍不住升级软件包&#xff0c;升级软件包有时会带来开发环境的变化&#xff0c;环境的变化就会导致一些编译环境由于版…

使用Angular,Ionic 4和Spring Boot构建移动应用

朋友不允许朋友写用户身份验证。 厌倦了管理自己的用户&#xff1f; 立即尝试Okta的API和Java SDK。 在几分钟之内即可对任何应用程序中的用户进行身份验证&#xff0c;管理和保护。 我是Ionic的忠实粉丝。 几年前&#xff0c;我基于AngularJS开始使用它。 作为开发人员&#…

1039 到底买不买(pat乙级、C++)

题目 小红想买些珠子做一串自己喜欢的珠串。卖珠子的摊主有很多串五颜六色的珠串&#xff0c;但是不肯把任何一串拆散了卖。于是小红要你帮忙判断一下&#xff0c;某串珠子里是否包含了全部自己想要的珠子&#xff1f;如果是&#xff0c;那么告诉她有多少多余的珠子&#xff1…

ns3中调试程序------命令行、gdb和logging系统

1、在调试代码时候&#xff0c;一直没有弄明白NS_LOG中的各种函数是如何使用的&#xff0c;甚至现在运行程序只知道&#xff0c;./waf –run&#xff0c;至于输出调试信息&#xff0c;现在真的是没有弄明白&#xff0c;不利于代码的理解和调试。 2、通过命令行&#xff0c;改变…