4.4使用@Enable*注释去切换配置
多数情况下,Spring Boot都是自动去评估路径和探测配置的信息,然后快速获取简单应用。但是,有时候,我们想提供配置类,但是要求不需要Spring Boot去自动发现这个配置是否包含,也就是说,我们想自己判断这个配置的有用性。
这样的话,我们将修改注释而不是spring.factories的路径。
4.4.1代码实现
1.首先,我们需要注释掉count-starter/src/main/resource/spring.factories文件下的配置。
#org.springframework.boot.autoconfigure.EnableAutoConfiguration =\ |
2.接着,我们需要创建注释。我们将会创建一份新的文件,名称是EnableDbCounting.jaa在路径src/main/java/org/owen/bookpubstarter/dbcount下面。
@Target(ElementType.TYPE) |
3.我们将创建好的标签@EnableDbCounting注释加入到BookPubApplication类中,并且移除掉dbCountRunner(…)方法。
@SpringBootApplication |
4.启动项目。
4.4.2代码说明
执行程序,你将会看到所有打印的总数信息都是0,尽管StartupRunner打印了Number of books:1。具体信息如下:
o.t.b.dbcount.DbCountRunner : AuthorRepository has 0 entries o.t.b.dbcount.DbCountRunner : BookRepository has 0 entries o.t.b.dbcount.DbCountRunner : PublisherRepository has 0 entries o.t.b.dbcount.DbCountRunner : ReviewerRepository has 0 entries org.test.bookpub.StartupRunner : Welcome to the Book Catalog System! org.test.bookpub.StartupRunner : Number of books: 1 |
这是因为Spring Boot是随机执行CommandLineRunner,当我们改为了配置@EnableDbCounting注释时,它会有BookPubApplication类之前获取进程。因为数据的初始化是在StartupRunner.run(…)的方法中,但是程序的启动是先去调用DbCountRunner.run(…)的方法,所以打印的信息是0.
如果我们想要按照顺序来执行,我们可以加入@Order的注释。让我们在StartupRunner类上面加入@Order(Ordered.LOWEST_PRECEDENCE-15).因为加入了LOWESR_PRECENDENCE会确保StartupRunner会被执行之后才执行DbCountRunner.加入之后启动我们的程序,这个时候看到的就不是0的信息了。
在spring.factories文件中没有了包含的配置信息,Spring Boot并不知道DbCountAutoConfiguration类需要包含在应用的上下文中。在默认的情况下,Spring Boot在启动时,只会去扫描org.owen.bookpub.*下的配置信息。然而,org.owen.bookpub和org.owen.bokpubstarter.dbcount的包路径是不一样的,所以后者是不被扫描的。但是我们新创建了注释,@EnableDbCounting注释中引入了@Import(DbCountAutoConfiguration.class),这样的话就会让Spring Boot去包含DbCountAutoConfiguration作为应用的一部分。
通过使用注释,spring.factories和确切的bean注释,我人可以灵活地自定义配置Spring Boot的starters在我们的项目中。
4.4使用@Enable*注释去切换配置相关推荐
- jenkins页面中英文切换配置
jenkins中英文切换配置 Jenkins--英文切换成中文 更新了一下jenkins的war包, 结果启动后成英文的了,后来百度出解决方案: 原文地址:https://blog.csdn.net/ ...
- 开发规范-java代码注释及IDEA配置代码注释模板
引(阿里巴巴开发规范-注释规约) [强制]类.类属性.类方法的注释必须使用 Javadoc 规范,使用/*内容/格式,不得使用 // xxx 方式. 说明:在 IDE 编辑窗口中,Javadoc 方式 ...
- ctrl+/加注释,去注释_关于以下内容的注释:2014年Google I / O上的“绩效文化”
ctrl+/加注释,去注释 At Google I/O 2014, Lara Swanson and Paul Lewis discussed performance culture. Since i ...
- plsql批量注释快捷键_PLSQL常用配置之窗口/版面保存、SQL格式化/美化、SQL注释\去掉注释等快捷键配置、登陆历史修改配置...
http://blog.csdn.net/hyeidolon/article/details/8251791 PLSQL常用配置之窗口/版面保存.SQL格式化/美化.SQL注释\去掉注释等快捷键配置. ...
- Spring Boot + Mybatis 配合 AOP 和注解实现动态数据源切换配置
Spring Boot + Mybatis 配合 AOP 和注解实现动态数据源切换配置 前言: 1. 数据库准备: 2. 环境准备: 3.代码部分 4. 测试: 5.等等 6.配合注解实现 7 .测试 ...
- 我的Windows Terminal 配置(带注释,附配置文件下载)
Windows Terminal 配置(带注释,附配置文件下载,更新于2020.5.3) 前言 详细配置(更新于2020.05.03) 前言 windows terminal的确是好用之极的终端工具, ...
- aop中joinpoint_Spring AOP示例教程–方面,建议,切入点,JoinPoint,注释,XML配置...
aop中joinpoint Spring Framework is developed on two core concepts – Dependency Injection and Aspect O ...
- linux环境中英文切换配置以及乱码问题
问题 这几天玩实验室的服务器,默认语言是中文的,有时候是挺不方便的,比如遇见一个比较复杂的问题,提示的信息是中文的,但是百度里根本没有好的资料,只能google,但是难道让我google搜中午么. 因 ...
- 锐捷——接口光电切换配置
配置步骤: Ruijie>enable //进入特权模式 Ruijie(config)#interface gigabitEthernet 0/0 //进入到接口 Ruijie(config-G ...
- anaconda在ubuntu19.10下面安装python3.6和python2.7+更换国内源+一键切换配置
#-------------------国外下载Anaconda3--------------------------------------------------- 下载链接是: https:// ...
最新文章
- R计算数组的累计加和(Cumulative Sums)
- java的初始化顺序
- Java集合查找Map,java:使用hashmap或其他一些java集合创建查找...
- 1704班3组—高级软件测试作业—如何计算团队成员贡献分
- python PIL图像处理
- CUBA 7.2 –有什么新功能?
- text/html与text/plain的区别
- android tcp 最优窗口,Android 面试必备 - 计算机网络基本知识(TCP,UDP,Http,https)...
- vue使用js-cookie写入获取不到_Vue 面向对象 - 实战 - 内容管理系统(五)
- 设计素材psd分层模板|临摹搞定促销海报版式!
- 企业Linux安全机制遭遇信任危机 SELinux成骇客帮凶?
- 广西龙脊梯田景区发生山体崩塌
- [WinForm]dataGridView导出到EXCEL
- 阿里最新分享Redis全套学习笔记PDF版,图文并茂,太详细了
- 前端页面预览word_html页面在线预览word
- python处理一段话,使他只存在英文,和数字
- 客户关系管理系统(Customer Relationship Management)
- 11发布自己的镜像(阿里云)
- OpenOCD failed tor read memory at $addr 错误
- Bigemap中如何添加其他在线地图源