@SpringBootApplication中的注解

news2024/11/16 21:56:31
  • @Target(ElementType.TYPE):指示适用注释类型的上下文(即注解的作用目标)这里是接口、类、枚举、注解

  • @Retention(RetentionPolicy.RUNTIME):指示具有注释类型的注释要保留多长时间,这里注解是将被JVM

留,所以在运行时被JVM或其他使用反射机制的代码所读取和使用

  • @Documented 指示默认情况下,带有类型的注释将由javadoc和类似工具记录

  • @Inherited 指示自动继承注释类型(即子类可以继承父类)

接下来的三个注解是@SpringBootApplication的核心

  • @SpringBootConfiguration

官方解释:指示一个类提供Spring Boot应用程序@Configuration。可以用作Spring的标准@Configuration注释的替代,以便可以自动找到配置(例如在测试中)。

应用程序应该只包含一个@SpringBootConfiguration,大多数惯用的SpringBoot应用程序将从 @SpringBootApplication继承它。(简单理解:@SpringBootConfiguration他其实就是标识一个配置类,在spring中@Configuration来标识一个注释类,而在springboot中就用@SpringBootConfiguration作为了替代 点进它的源码发现 它有@Configuration注解,可以理解就是继承了@Configuration)

  • @EnableAutoConfiguration: 自动配置,尝试猜测和配置您可能需要的bean

image.png

@import 导入的一个或多个@Configuration类,允许导入@Configuration类,ImportSelector和importbeandefinitionregistry实现,以及常规组件类,类似于AnnotationConfigApplicationContext.register,应该使用@Autowired注入来访问在导入的@Configuration类中声明的@Bean定义 (通俗理解就是把符合条件的类加载到IOC容器中)

  • @ComponentScan

可以指定basepackagclasses或basePackages来定义要扫描的特定类或者包,假设不指定,从声明该注释的类的包中进行扫描()

一般我们的启动类都是放在和服务层,控制层同一层级(即同一个包下),只要在启动类加了@SpringBootApplication注解,其中的@ComponentScan注解默认会扫描该注释的类同一个包下的所有,如图:则会扫描resume包下的所有

image.png

进一步?若存在多模块的调用,比如为了减少代码的冗余,我新建一个模块是放一些公共使用的类,例如统一拦截处理controller层的抛出的异常,对controller层返回的数据做统一处理,若每写一个模块就要写一次这个代码 就会重复,那单独成一个公共模块 应该怎么实现呢? @SpringBootApplication注解中的@ComponentScan只扫描他所在包的所有,那就需要把@ComponentScan单独的进行注解,此时外面的注解就会覆盖@SpringBootApplication注解中的@ComponentScan 把@ComponentScan单独出来 就会灵活许多

如下图:wxresume模块向使用publicapi模块的UnifiedAdivice统一处理controller层返回的数据,则是就需要在启动wxresume模块时 把publicapi模块中的Response包下的类扫描进去

image.png

如何扫描进去?在wxresume模块的启动类中加@ComponentScan注解 如图下:

@EnableEurekaClient

@MapperScan(“com.flscode.resume.mapper”)

@ComponentScan({“com.flscode.publicapi.Response”,“com.flscode.resume”})

@SpringBootApplication

public class WxresumeApplication {

public static void main(String[] args) {

SpringApplication.run(WxresumeApplication.class,args);

}

}

复制代码

static void main(String[] args) {

SpringApplication.run(WxresumeApplication.class,args);

}

}

复制代码

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

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

相关文章

无法安装64位版本的office,因为在您的PC上找到以下32位程序

无法安装64位版本的office,因为在您的PC上找到以下32位程序: 请卸载所有32位office程序,然后重试安装64位office。如果想要安装32位office,请运行32位安装程序。 那为什么会出现这种情况呢? 首先,我们要知道我们的电脑是32位的还…

9个发展您的B2B业务的LinkedIn营销策略

没有比在 LinkedIn 上与其他公司建立联系更好的地方了。您可以与数以百万计的品牌和专业人士建立联系并发展您的业务。 您可以尝试多种不同的 B2B LinkedIn营销策略,以便与您的受众建立联系并将他们转变为您的客户。 事实上,根据公司自己的研究&#x…

Vue3.2中的setup语法糖(易懂)

简介 在vue3中删除了vue2中的data函数,因此,vue3.0要在template中使用某些变量就必须在最后return出来,多次声明变量,不太方便。而在vue3.2版本之后,新增了setup语法糖。 直接在script标签中添加setup属性就可以直接使…

Arduino开发实例-DIY电能表

DIY电能表 在本文中,将展示如何制作一个基于 Arduino 的功率和电能表。应用使用 INA219 电流传感器测量电流、功率和能耗,并将其显示在 OLED 显示屏上。 可以在 OLED 显示屏上查看您的电压、电流、功率和能量数据。 1、INA219介绍 INA219 电流传感器是一款支持 I2C 的基于…

Unity手机游戏发热发烫优化指南与技巧

Unity手机游戏发热发烫优化指南与技巧 很多小伙伴做完游戏后,发布到Android,运行,游戏很流畅,也不卡顿,但是跑一会游戏,手机就发热,发烫。客户提出需求,能否让它不发烫? 本文从以下3方面来分析手机发烫的问题&#x…

如何用一颗芯片实现5V转正负12V

有时在一些运算放大电路中我们需要同时有正电源和负电源, 但是我们输入一般只有一个正电源,比如我们输入的电源是5V,但是需要将5V转换成正负12V 5V转12V的话我们可以用BOOST电路进行升压,电路图如下 而5V转-12V的话一般有负压电荷…

osgEarth示例分析——osgearth_tracks

前言 osgearth_tracks示例,演示了所有图标沿着路径进行移动(路径是不可见的)。 执行效果 执行命令:osgearth_tracksd.exe earth_image\world.earth 右下角的控制面板功能: Declutter 是否开启 【清理器】 功能。 即当两个图标靠近时&…

HTML期末学生大作业-使用HTML+CSS技术仿传智博客网站

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

今日财富杂志今日财富杂志社今日财富编辑部2022年第21期目录

经济纵横 资产证券化税收政策的国际比较与启示 李依莎; 1-3 中小企业知识产权保护的困境 程诗鸿; 4-6 县级政府在优化营商环境中的作用 李晓春; 7-9《今日财富》投稿:cnqikantg126.com 地域文化背景下论房地产经济发展的区域差异 周莹; 10-12 国…

这把联网智能门锁体验感A+

如果来一次古人与今人的谈话,那一定离不开的话题就是“智能设备”。智能手机、智能电脑、智能手表更新换代如此之快,联网智能门锁亦是如此。对于用户而言,使用智能设备最重要的就是“体验感”了,小编为大家强势推荐中科易安QY-170…

开源多波束前视声呐目标识别数据集

鉴于水下实验的高成本,高专业性,高复杂度的情况,开源水下数据集一直较为稀少。拥有数据的研究机构基本上也只限于自身使用。虎鲸开源计划致力于构建一个开放的实验平台,实验场地、硬件、软件、数据均在开源开放的范畴内。虎鲸开源…

Spring Cloud(十四):微服务灰度发布 --- Discovery

灰度发布微服务全链路灰度全链路灰度设计思路 标签路由节点打标流量染色分布式链路追踪 ThreadLocal流量治理平台 Nacos 配置中心 全链路灰度实现Discovery使用 一、父pom引入Discovery二、Gateway 引入 — 网关 discovery-plugin-strategy-starter-gateway三、微服务 引入 — …

[附源码]JAVA毕业设计论文管理系统(系统+LW)

[附源码]JAVA毕业设计论文管理系统(系统LW) 环境项配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术:…

Allegro如何使用快捷键快速切换层面操作指导

Allegro如何使用快捷键快速切换层面操作指导 Allegro可以用快捷键快速切换层面,比如在command下方输入数字1,可以自动打开top层 具体操作如下 打开系统属性,选择环境变量 找到home的环境变量的路径是哪里 找到路径下的pcbenv文件夹 找到env文件 用记事本打开env文件…

自学软件测试,学到什么程度可以出去找工作?

其实初级测试学的东西并不多,如果脱产学习的话2~3个月差不多就能简单入门。 另外不要担心,初级测试对于Python/Java编程,自动化测试,性能测试这些都是初步的了解和学习。如果说要深度掌握,那确实是还需要很多时间。 …

【pen200-lab】10.11.1.10

pen200-lab 学习笔记 【pen200-lab】10.11.1.10 🔥系列专栏:pen200-lab 🎉欢迎关注🔎点赞👍收藏⭐️留言📝 📆首发时间:🌴2022年12月5日🌴 🍭作者水平很有限,如果发现错误,还望告知,感谢! 文章目录 pen200-lab 学习笔记信息收集拓展信息收集 只开放了…

61张图,图解Spring事务,拆解底层源码

下面我会简单介绍一下 Spring 事务的基础知识,以及使用方法,然后直接对源码进行拆解。 不 BB,上文章目录。 ​1. 项目准备 需要搭建环境的同学,代码详见:https://github.com/lml200701158/program_demo/tree/main/spr…

09-18-k8s-二进制方式搭建

09-k8s-二进制方式搭建: 1、创建多台虚拟机,安装Linux操作系统 (1)一台或多台机器,操作系统 CentOS7.x-86_x64 (2)硬件配置:2GB 或更多 RAM,2 个 CPU 或更多 CPU&…

大数据_数据中台_数据汇聚联通

目录 一、数据采集、汇聚的方法和工具 1、线上行为采集 2、线下行为采集 3、互联网数据采集 4、内部数据汇聚 二、数据交换产品 1、数据源管理 2、离线数据交换 3、实时数据交换 三、数据存储的选择 1、在线与离线 2、OLTP与OLAP 3、存储技术 构建企业级的数据中台…

Java swing(GUI) mysql实现的仓库进销存管理系统源码+运行教程

今天给大家介绍下由Java swing mysql实现的一款仓库库存管理系统,该系统实现了基本的仓库进退货管理、用户管理等操作,主要涉及的知识点有:Java swing awt界面编程、数据库的基本操作(增删改查),多线程等&a…