项目启动时获取所有指定注解的类

手把手拆解DGX GB200 NVL72:1个机柜如何塞进72块GPU?详解NVLink Switch铜缆背板设计 本文深度解析英伟达DGX GB200 NVL72系统如何通过NVLink Switch铜缆背板设计,在标准42U机柜中集成72块B200 GPU,实现1800GB/s的超高带宽。文章详细介绍了模块化架构、铜缆互连技术、液冷散热方案和高密度供电系统等核心创新,为AI算力需求提供突破性解决方案。 阅读详情
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import org.springframework.stereotype.Component;

@Component
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface JobConfig{
    String[] name();
}
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.core.env.Environment;

import java.util.Iterator;
import java.util.Map;

@Component
@Configuration
public class ScanTest  implements ApplicationContextAware{

    private Environment environment;

	// 项目启动时会执行此方法 实现了ApplicationContextAware接口
    public void setApplicationContext(ApplicationContext ctx) throws BeansException {
        this.environment = ctx.getEnvironment();
        Map<String, Object> beanMap = ctx.getBeansWithAnnotation(JobConfig.class);
        Iterator iterator = beanMap.values().iterator();

        while (iterator.hasNext()) {
            Object confBean = iterator.next();
            Class<?> clz = confBean.getClass();
            JobConfig conf = this.findJobConfigAnnot(clz);
            String jobClass = clz.getName();
            if (jobClass.contains("$$EnhancerBySpringCGLIB")) {
                jobClass = jobClass.substring(0, jobClass.indexOf("$$EnhancerBySpringCGLIB"));
            }

            String[] jobNames = conf.name();
            if (jobNames == null) {
                throw new IllegalArgumentException("ElasticJobConf job name error. jobClass:" + jobClass);
            }
            System.out.println("扫描到:"+conf.name());
        }
    }

    public JobConfig findJobConfigAnnot(Class<?> clz) {
        JobConfig JobConfig = clz.getAnnotation(JobConfig.class);
        // 判断代理类
        if (JobConfig == null && clz.getSimpleName().contains("SpringCGLIB")) {
            Class tmpClass = clz.getSuperclass();
            for (int i = 0; i < 3; tmpClass = tmpClass.getSuperclass()) {
                JobConfig = (JobConfig) tmpClass.getAnnotation(JobConfig.class);
                if (JobConfig != null) {
                    return JobConfig;
                }
                ++i;
            }
        }

        return JobConfig;
    }
}

基于STM32L4XX的环境光传感器(AS7343-DLGMN)应用程序设计 define AS7343_STATUS_SPECTRAL_INT (1 << 3) /* 光谱数据就绪 */#define AS7343_SYS_CFG_SPECTRAL_EN (1 << 1) /* 光谱测量使能 */#define AS7343_SYS_CFG_ALS_EN (1 << 0) /* ALS使能 */#define AS7343_SYS_CFG_INT_EN (1 << 4) /* 中断使能 *//* 切换通道组 (0=组1 F1-F6, 1=组2 F7-F12) */ 阅读详情

相关推荐

模电(十四)差分放大电路

目录 差分放大电路 双端输入双端输出 Q点分析 抑制共模信号 放大差模信号 双端输入单端输出 Q点分析 差模信号分析 共模信号分析 单端输入双端输出 单端输入单端输出 四种接法比较 具有恒流源的差分放大电路 差分放大电路的改进 差分放大电路 采用引入支流负反馈,温度补偿来克服零点漂移(温度变化,直流电源波动,元器件老化产生的输入电压为零,输出电压不为零的...

weixin_43674847的博客 2万+

java 反射 方法注解_Java利用反射如何查找使用指定注解的类详解

前言最近有些空,想自己写个跟spring里的注解一样的注解来用,然后希望能找到使用了自己写了注解的类,下面来介绍一下实现方法声明,下面代码是没看过spring源码写的,基本上都是网上找的博客,整理的定义注解Controller.java@Target({ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @i...

weixin_39718286的博客 329

模电学习笔记(十二)——跨阻放大器

模电学习笔记(十二) 跨阻放大器 跨组运算放大器是将电流信号转换成为电压信号,电流到电压增益基于反馈电阻。 设计目标: 输入 输出 带宽 电源 0A 100uA 0V 7V 20kHz 15V -15V 1.计算R1的值(增益电阻器) 2.计算C1的值满足电路带宽 ...

tang11081023的博客 2万+

Spring常用注解(快速查找),深入分析

这个月马上就又要过去了,还在找工作的小伙伴要做好准备了,小编整理了大厂java程序员面试涉及到的绝大部分面试题及答案,希望能帮助到大家一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!

m0_63102527的博客 765

别再只会用Kriging了!用Python+GeoPandas手把手实现IDW插值(附完整代码与可视化)

本文详细介绍了如何使用Python和GeoPandas实现反距离加权插值(IDW),包括核心算法、参数调优和可视化技巧。通过完整代码示例,帮助读者掌握这一空间数据分析技术,适用于环境监测、气象预报等多个领域,提升数据处理效率和灵活性。

weixin_30872157的博客 227

Bentley二次开发教程28-交互窗口-案例实战2-EC属性赋值工具

该工具会根据用户输入的路径获取Schema文件的路径,然后通过路径读取对应的Schema文件并在树状图中显示EC类,当用户选择树状图上的节点时,此时会触发事件,根据EC属性添加用户自定义控件用于显示EC属性并可对其进行赋值操作。完成后选取元素,点击界面上的应用,此时元素会被赋予指定EC类,同时修改的EC属性值也会被同步赋予。该工具涉及到的WinForm控件有:TextBox,Button,TreeView,Panel,UserControl(用户自定义控件)。

不见不散的博客 1475

扫描项目中所有包含某注解的方法及获取其URI

springboot扫描所有包含某注解的方法及获取其URI获取到包含某注解的所有类获取类集合里所有包含自定义注解的方法名获取所有包含某注解的方法及获取其URI使用ApplicationRunner以在容器启动完成的时候获取列表 获取到包含某注解的所有类 首先先要获取到applicationContext 只要类 implements ApplicationContextAware就会自动注入到类里的applicationContext 话不多说直接上代码 @Component @Slf4j public c

qq_38222237的博客 4156

保姆级教程:在RK3568开发板上手把手配置RMII百兆以太网DTS节点

本文提供了一份详细的RK3568开发板RMII百兆以太网DTS节点配置教程,涵盖基础概念解析、关键参数设置、实际操作步骤及常见问题排查。通过手把手指导,帮助开发者快速完成RK3568开发板的以太网配置,特别适合嵌入式系统开发者参考。

weixin_33686714的博客 137

获取带有指定注解的所有类对象

获取带有指定注解的所有类对象 最近在项目上需要实现一个功能:项目启动的时候需要获取带有指定注解的所有类的类对象,通过类对象去操作类中的方法和属性 一开始也想到了使用反射,自己写的代码有点多,不好扩展,网上一搜,发现有Reflections反射框架,使用起来非常简单 1.引入maven依赖 <dependency> <groupId>org.reflections</groupId> <artifactId>reflections</art

qq_36816062的博客 4935

车辆TBOX科普 第69次 TBOX行业发展趋势与就业前景深度解析

TBOX技术革新驱动汽车智能化发展 Telematics BOX(TBOX)正快速从车辆状态监控器进化为整车智能核心,市场年增速超25%,2025年规模将达150亿美元。技术呈现四大革新方向:5G与V2X集成实现多模通信网关,支持10-20Gbps高速传输;多模GNSS融合定位精度达厘米级,北斗系统提供独特优势;边缘计算架构使TBOX具备本地AI处理能力,减少95%数据上传;硬件安全模块(HSM)成为标配,满足EVITA标准的安全需求。这些技术突破正重塑TBOX架构,使其从单纯通信管道升级为智能网联汽车的关

IT深耕十余载,大道之简 1832

影楼精修-肤色统一算法解析

本文介绍了影楼精修中肤色统一算法的实现方案,并以像素蛋糕软件为例进行详细分析。肤色统一旨在通过调整人像照片中皮肤区域的颜色,使其看起来更加均匀一致。像素蛋糕软件提供了AI肤色统一和传统肤色统一两种功能,分别适用于不同需求。传统肤色统一算法通过皮肤分割、人脸检测、亮度统一和颜色统一等步骤,实现了对皮肤区域的精细调整。文章还提供了亮度统一的核心代码,并对比了传统算法与AI算法的效果,指出AI算法在自然度和亮度矫正方面表现更优。整体而言,本文为影楼精修中的肤色统一提供了实用的技术参考。

Trent1985的专栏 2069

SpringBoot启动类解析

写的不是很详细,只写了个大概,后续待补充 启动类只有一句话 @SpringBootApplication() public class ApiServiceApplication implements CommandLineRunner { public static void main(String[] args) { SpringApplication.run(...

zgsxhdzxl的博客 583

Linux | Ubuntu18.04安装RTX 4060显卡驱动完整教程

本节详细介绍了如何在ubuntu18系统安装4060显卡的驱动。

九七的博客 5160

获取指定包下自定义注解的类 , Spring启动时获取自定义注解的属性值

获取指定包下自定义注解的类 Maven 项目导入 <dependency> <groupId>org.reflections</groupId> <artifactId>reflections</artifactId> <version>0.9.11...

zhuchunyan_aijia的博客 5309

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

java web文件扫描_实现在普通JavaWeb项目启动时对所有URL进行扫描

想对项目URL进行扫描自然离不开对应的注解。说起注解,自然而然的就会想到Annotation,也就是java.lang.annotation.Annotation,通过观察类关系树状图我们不难发现Annotation下有个WebServlet接口,再通过输出语句我们可以看到里面包含了我们想要的url信息,如下图接下来为了得到WebServlet接口里面的value值也就是url,我们可以将Anno...

weixin_39861882的博客 369

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

JFinal后台权限项目启动时自动生成

项目启动时自动生成的权限

Wesley大胃王 713

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

springboot自定义注解,项目启动时扫描注解

需求: 自定义注解,项目启动时进行注解扫描并存储,便于后面生成对象。类似于@Controller,@Service,自定义的原因是,整个项目会初始化很多流程,每个流程由好多个小模块(对象)串联起来。同一个类会被创建多个对象,被使用在不同的流程里面。以后会根据流程的配置对应切换对象。 项目结构 pom.xml <parent> <groupId>org.spri...

congcongxianshen的博客 1万+

JavaWeb项目启动时,自动执行指定方法

根据需求文档做了一个在给定参数时间内持续增加积分的功能,自动置顶加分项目,超出时间不再继续加分并取消置顶。 就用了timer定时器task任务,在持续时间结束之后执行取消置顶的操作,考虑到web项目停止后timer定时器任务关闭,重新启动项目后不会自动执行,就打算在项目启动时执行执行方法继续执行定时器任务。 public static void main(String[] args) { ...

马句 1万+

【企业项目实战】Spring Boot 启动时加载指定方法

【企业项目实战】Spring Boot 启动时加载指定方法

激流丶的博客 3985

Java项目启动时执行指定方法的几种方式

Java项目启动时执行指定方法的几种方式 点击查看 1:@PostConstruct @PostConstruct注解好多人以为是Spring提供的。其实是Java自己的注解。 Java中该注解的说明:@PostConstruct该注解被用来修饰一个非静态的void()方法。被@PostConstruct修饰的方法会在服务器加载Servlet的时候运行,并且只会被服务器执行一次。PostConstruct在构造函数之后执行,init()方法之前执行。 通常我们会是在Spring框架中使用到@PostCon

weixin_43714426的博客 1096

Spring Boot项目启动时执行指定的方法

缺点:如果@PostConstruct方法内的逻辑处理时间较长,就会增加SpringBoot应用初始化Bean的时间,进而增加应用启动的时间。因为只有在Bean初始化完成后,SpringBoot应用才会打开端口提供服务,所以在此之前,应用不可访问。建议:轻量的逻辑可放在Bean的@PostConstruct方法中,耗时长的逻辑如果放在@PostConstruct方法中,可使用@Async异步方法。优点: 项目已经初始化完毕,才会执行方法,所以不用等这个方法执行完,就可以正常提供服务了。

涛哥是个大帅比 611

SpringBoot项目启动时自动执行指定方法

Springboot项目启动自动执行方法 补充知识点: Spring Boot如何解决项目启动时初始化资源,在我们实际工作中,总会遇到这样需求,在项目启动的时候需要做一些初始化的操作,比如初始化线程池,提前加载好加密证书等。 为了达到这个目的,我们需要使用CommandLineRunner或ApplicationRunner接口创建bean,spring boot会自动监测到它们。这两个接口...

`宝子的博客 1459

SpringBoot通过注解获取接口信息

文章目录SpringBoot通过注解获取接口信息获取Spring框架的ApplicationContext相关方法案例案例1 :项目启动,获取controller层的接口案例2:项目启动,接口写入数据库监听后台接口 SpringBoot通过注解获取接口信息 获取Spring框架的ApplicationContext 需要修改Application主类 @ComponentScan(basePackages = "com.example.demo.**.**") @SpringBootApplication

紫月7575的博客 1277

类加入了@Component注解,但启动时在别的@Configuration类中@Autowired注入为null

最近更新spring boot项目遇到这么一个问题,自己写的一个类明明加上了@Component注解 按理说加入了容器中,但在启动时报空指针异常,结果bebug发现@Autowired注入为null。 在网上找了很久都没有找到解决办法。应该是在注入的时候,bean还没有初始化 解决办法: 1.通过自己new对象加入到bean容器中 @Bean AuthenticationRealm injectRealm(){ AuthenticationRealm authentic

qq_43411729的博客 2464

Java 项目启动时执行指定方法

应用场景: 很多时候我们都会碰到需要在程序启动时去执行的方法,比如说去读取某个配置,预加载缓存,定时任务的初始化等。这里给出几种解决方案供大家参考。 1. 使用@PostConstruct注解: 这个注解呢,可以在Spring加载这个类的时候执行一次。来看一下下方代码。 @Component public class Test { public Test(){ System.out.println("我最先执行"); }

qq_31217363的博客 1605
上一篇: 转载:MySQL千万级别大表,你要如何优化?
下一篇: 打印指定本地仓库目录下所有jar的maven坐标
zjy_java
博客等级 码龄8年 1粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值