一文掌握SpringBoot注解之@Configuration知识文集(1)

在这里插入图片描述

🏆作者简介,普修罗双战士,一直追求不断学习和成长,在技术的道路上持续探索和实践。
🏆多年互联网行业从业经验,历任核心研发工程师,项目技术负责人。
🎉欢迎 👍点赞✍评论⭐收藏

🔎 SpringBoot 领域知识 🔎

链接专栏
SpringBoot 注解专业知识学习一SpringBoot 注解专栏

文章目录

    • 🔎 SpringBoot 注解 @Configuration 学习(1)
      • 🍁 01. 什么是@Configuration注解?它在Spring中的作用是什么?
      • 🍁 02. @Configuration注解与@Component注解之间的区别是什么?
      • 🍁 03. 如果一个类使用@Configuration注解,Spring会如何处理它?
      • 🍁 04. 什么是Bean?如何在配置类中定义Bean?
      • 🍁 05. @Bean注解与@Configuration注解之间的关系是什么?
      • 🍁 06. @ComponentScan注解的作用是什么?如何在配置类中使用它?
      • 🍁 07. 如何在配置类中导入其他配置类?
      • 🍁 08. @Import注解与@Configuration注解之间的关系是什么?
      • 🍁 09. 如何使用@PropertySource注解加载外部属性文件?
      • 🍁 10. 如何在配置类中使用条件注解,如@Conditional和@Profile?


🔎 SpringBoot 注解 @Configuration 学习(1)

在这里插入图片描述


🍁 01. 什么是@Configuration注解?它在Spring中的作用是什么?

@Configuration注解是Spring框架中的一个注解,用于标记一个Java类作为配置类,告诉Spring容器该类包含了Bean的定义和其他配置信息。

在Spring中,@Configuration注解的作用如下:

  • 将Java类标记为配置类,告知Spring容器该类包含了Bean的定义和其他配置信息
  • 配置类可以包含@Bean注解的方法,这些方法提供了创建Bean的逻辑。Spring容器会调用这些方法来创建相应的Bean实例。
  • 配置类还可以通过@PropertySources注解加载外部属性文件,@ComponentScan注解扫描组件,@Import注解引入其他配置类等。
  • 通过@Configuration注解,我们可以集中管理和维护应用程序的配置,便于查看和修改
  • 它提供了一种可扩展的方式,通过定义不同的配置类,可以根据需要引入或排除某些配置类或配置信息

通过@Configuration注解,我们能够将Spring应用程序的配置集中到一个或多个配置类中,以便于管理和维护。使用@Configuration注解的类被认为是配置类,它们可以定义Bean的创建逻辑、加载属性文件、扫描组件、引入其他配置类等。这种方式使得配置信息更加集中、可扩展和易于维护。


🍁 02. @Configuration注解与@Component注解之间的区别是什么?

@Configuration注解和@Component注解在Spring框架中的使用场景和作用略有不同。下面是它们之间的区别:

  • @Configuration注解用于标记一个Java类作为配置类,告诉Spring容器该类包含了Bean的定义和其他配置信息。配置类可以包含@Bean注解的方法,用于创建Bean实例,也可以包含其他的配置逻辑。该注解提供了一种集中管理和维护配置的方式。
  • @Component注解用于标记一个Java类作为一个可被Spring容器扫描和管理的组件。它可以被用于标记各种类型的bean,包括业务逻辑类、数据访问类、控制器等。标记为@Component的类将被Spring容器自动注册为bean,并可以通过@Autowired等注解进行注入使用。

总结来说,@Configuration注解用于标记配置类,包含了Bean的定义和其他配置信息,提供了一种集中管理和维护配置的方式。而@Component注解用于标记一个被Spring容器扫描和管理的组件,可以是各种类型的bean。两者的主要区别在于作用和使用场景上的不同。

可以使用以下表格更清晰地说明@Configuration注解和@Component注解之间的区别:

区别@Configuration注解@Component注解
标记对象标记一个Java类作为配置类标记一个Java类作为组件
功能包含了Bean的定义和其他配置信息,提供了一种集中管理和维护配置的方式用于标记一个可被Spring容器扫描和管理的组件
Bean创建可以包含@Bean注解的方法,用于创建Bean实例被自动注册为bean,并可通过@Autowired等注解进行注入
使用场景用于集中管理和维护应用程序的配置,封装Bean的创建逻辑用于标记各种类型的组件类,如业务逻辑类、数据访问类、控制器等
注解的层次是一个特殊的@Component注解是Spring的通用注解,也是基础注解之一

总的来说,@Configuration注解主要用于配置类,包含了Bean的定义和其他配置信息,提供了一种集中管理和维护配置的方式。而@Component注解用于标记一个可被Spring容器扫描和管理的组件,可用于各种类型的组件类。


🍁 03. 如果一个类使用@Configuration注解,Spring会如何处理它?

如果一个类使用@Configuration注解,Spring会按照以下方式处理它:

  1. 识别为配置类: Spring会识别带有@Configuration注解的类为一个配置类,表示这个类包含了Bean的定义和其他配置信息。
  2. 注册为Bean: 配置类本身也会被Spring容器作为一个Bean进行管理。所以可以通过依赖注入的方式将配置类的实例注入到其他需要使用配置信息的地方。
  3. 处理@Bean注解方法: 配置类中可以使用@Bean注解的方法创建Bean实例。Spring会逐个调用这些被@Bean注解的方法,并将方法返回的实例注册到Spring容器中,成为可被管理的Bean。这些@Bean注解的方法可以接收参数,Spring会自动解析这些参数的依赖关系并注入正确的实例。
  4. 处理其他配置信息: 配置类除了包含@Bean注解的方法外,还可以包含其他的配置逻辑,如条件配置、配置注入等。Spring会根据配置类中的其他配置信息,对应用进行相应的配置,以实现所需的功能。

总结来说,当一个类使用@Configuration注解时,Spring会将其识别为一个配置类,注册为Bean,并处理其中的@Bean注解方法和其他配置信息,实现集中管理和维护应用程序的配置。


🍁 04. 什么是Bean?如何在配置类中定义Bean?

在Spring中,Bean是由Spring容器管理的对象。它是应用程序中的一个组件,可以包含数据、业务逻辑和其他功能。Spring容器通过创建、配置和管理Bean,实现了对象的依赖注入和解耦。

在配置类中定义Bean的方式有多种,其中最常用的方式是使用@Bean注解。在配置类中,通过在方法上添加@Bean注解,可以将该方法返回的对象注册为一个Bean,由Spring容器进行管理。

示例如下:

@Configuration
public class AppConfig {@Beanpublic BeanClass beanObject() {return new BeanClass();}
}

上述代码中,AppConfig是一个配置类,用@Configuration注解进行标记。beanObject方法使用@Bean注解,表示将BeanClass的实例注册为一个Bean。在Spring容器启动时,会创建该Bean的实例,并将其纳入容器管理。

除了使用@Bean注解,还可以使用其他方式定义Bean,例如使用@Component、@Service、@Repository等注解,以及通过XML配置文件进行定义。不同的方式适用于不同的场景和需求,但使用@Bean注解是最常用且灵活的方式之一。


🍁 05. @Bean注解与@Configuration注解之间的关系是什么?

在Spring中,@Bean注解和@Configuration注解是紧密相关的,它们之间的关系如下:

  1. @Configuration标记配置类: @Configuration注解用于标记一个类为配置类,表示这个类包含了Bean的定义和其他配置信息。配置类通常是一个带有@Bean注解的类,用于定义和配置Spring容器中的Bean。
  2. @Bean注册Bean: @Bean注解用于标记一个方法,表示这个方法返回的对象将会被注册为一个Bean,并由Spring容器进行管理。在@Configuration注解标记的类中,可以使用@Bean注解来定义和注册Bean。
  3. 依赖注入和解析: 配置类中的@Bean注解方法可以接受参数,Spring会自动解析这些参数的依赖关系,并注入正确的实例。这样可以实现依赖注入和解耦的效果,方便配置类中的Bean之间的交互和数据传递。
  4. 集中管理和维护配置信息: 使用@Configuration注解标记的配置类集中管理和维护应用程序的配置信息,包括Bean的定义和其他配置逻辑。使用@Bean注解可以在配置类中定义和注册Bean,并将其纳入Spring容器管理,从而实现统一的配置管理。

总结来说,@Configuration注解表示一个配置类,用于定义和配置Spring容器中的Bean和其他配置信息。@Bean注解则用于在@Configuration注解标记的类中定义和注册Bean,实现依赖注入和解析,并方便集中管理和维护配置信息。它们之间的关系是@Configuration注解提供了容器的配置和管理范围,而@Bean注解提供了具体Bean的定义和注册方式。


🍁 06. @ComponentScan注解的作用是什么?如何在配置类中使用它?

@ComponentScan注解用于自动扫描和加载标有特定注解的组件(如@Controller、@Service、@Repository等)到Spring容器中,并将其纳入容器的管理范围。

@ComponentScan注解可以用于配置类中,通常与@Configuration注解一起使用。它会根据指定的包路径,递归扫描该路径下的类,并将标有特定注解的类注册为Bean。这样可以省去手动一个个在配置类中通过@Bean注解来定义和注册Bean的过程,提高了效率和便捷性。

在配置类中使用@ComponentScan注解时,可以通过指定basePackages属性来指定扫描的包路径。还可以使用value属性来指定扫描的包路径(basePackages属性的别名)。另外,也可以使用excludeFilters属性和includeFilters属性来排除或包含特定的组件。

示例如下:

@Configuration
@ComponentScan(basePackages = "com.example")
public class AppConfig {// 其他配置
}

上述代码中,@ComponentScan注解指定了要扫描的包路径为com.example,Spring容器会自动扫描该路径下的所有组件,将其注册为Bean,并进行管理。

需要注意的是,@ComponentScan注解默认会扫描配置类所在包及其子包下的组件。如果不指定basePackages属性,将会自动扫描配置类所在的包。除了使用basePackages属性,还可以使用basePackageClasses属性来指定扫描的包路径,可以指定多个包路径。

总结来说,@ComponentScan注解的作用是自动扫描和加载标有特定注解的组件到Spring容器中,并将其纳入容器的管理范围。在配置类中使用@ComponentScan注解,可以通过指定basePackages属性来指定扫描的包路径,从而实现自动扫描和注册Bean的功能。


🍁 07. 如何在配置类中导入其他配置类?

在Spring中,可以使用@Import注解在配置类中导入其他配置类。通过导入其他配置类,可以将不同的配置逻辑拆分到不同的配置类中,提高配置的可读性和可维护性。

在配置类中使用@Import注解时,有以下几种使用方式:

1.单个导入: 可以通过@Import注解导入单个配置类,将其纳入到当前配置类中。示例如下:

@Configuration
@Import(OtherConfig.class)
public class AppConfig {// 当前配置类的配置逻辑
}

2.多个导入: 可以通过@Import注解导入多个配置类,用逗号分隔。示例如下:

@Configuration
@Import({OtherConfig1.class, OtherConfig2.class})
public class AppConfig {// 当前配置类的配置逻辑
}

3.导入配置类的全类名: 可以通过@Import注解导入其他配置类的全类名,将其纳入到当前配置类中。示例如下:

@Configuration
@Import(com.example.OtherConfig.class)
public class AppConfig {// 当前配置类的配置逻辑
}

4.导入配置类数组: 可以通过@Import注解导入配置类数组,将其纳入到当前配置类中。示例如下:

@Configuration
@Import(MyConfig[] configs)
public class AppConfig {// 当前配置类的配置逻辑
}

通过上述方式,在配置类中可以方便地导入其他配置类,使得配置的组织结构更加清晰和模块化。导入的配置类会被Spring容器识别并纳入容器的管理范围,从而使得这些配置类中定义的Bean可供应用程序使用。

需要注意的是,通过@Import注解导入的配置类通常应当使用@Configuration注解进行标记,以确保其被Spring容器处理为配置类。同时,也可以在导入的配置类中使用其他的Spring注解,如@Bean、@PropertySource等,来进一步配置和定义Bean。

总结来说,通过@Import注解可以在配置类中导入其他配置类。可以导入单个配置类、多个配置类、使用全类名导入配置类或者导入配置类数组。导入的配置类会被Spring容器扫描和管理,从而实现配置逻辑的模块化和可复用性。


🍁 08. @Import注解与@Configuration注解之间的关系是什么?

@Configuration注解和@Import注解是Spring框架中两个常用的注解,用于在配置类中配置和管理Bean。

@Configuration注解用于标记配置类,表示这个类是一个配置类,其中定义了一些配置逻辑,如@Bean注解、@ComponentScan注解等。被@Configuration注解标记的类会被Spring容器扫描并加载,从而使得其中定义的Bean可以被应用程序使用。

@Import注解用于在配置类中导入其他配置类,将其纳入到当前配置类中进行统一管理。被@Import注解导入的配置类也需要使用@Configuration注解进行标记,以确保其被Spring容器处理为配置类。

@Configuration注解和@Import注解之间的关系是协同合作的。@Configuration注解用于标记当前类为配置类,并定义一些配置逻辑,如定义Bean、配置数据源、事务管理等。@Import注解则用于导入其他配置类,将其纳入到当前配置类中进行管理。通过这种方式,可以将应用的不同配置逻辑分开,并通过导入的方式组合在一起,实现配置的模块化和可读性。

示例如下:

@Configuration
@Import({DataSourceConfig.class, TransactionConfig.class})
public class AppConfig {// 当前配置类的配置逻辑
}

上述代码中,使用@Configuration注解标记了AppConfig类为配置类,@Import注解导入了DataSourceConfig类和TransactionConfig类。这样就将数据源和事务的配置逻辑拆分到了不同的配置类中,并通过导入的方式组合在一起。

需要注意的是,在导入其他配置类时,被导入的配置类同样需要使用@Configuration注解进行标记,确保其被Spring容器处理为配置类。同时,被导入的配置类也可以使用其他Spring注解来进一步配置和定义Bean。

总结来说,@Configuration注解和@Import注解是Spring框架中用于配置和管理Bean的两个常用注解。@Configuration注解用于标记配置类,定义配置逻辑;@Import注解用于在配置类中导入其他配置类,将其纳入到当前配置类中进行统一管理。两者协同合作,实现配置的模块化和可读性。被导入的配置类同样需要使用@Configuration注解进行标记,确保其被Spring容器处理为配置类。


🍁 09. 如何使用@PropertySource注解加载外部属性文件?

@PropertySource注解是Spring框架中用于加载外部属性文件的注解。通过@PropertySource注解,可以将外部的属性文件加载到Spring的环境中,以供应用程序使用。

要使用@PropertySource注解加载外部属性文件,需要按照以下步骤进行操作:

1. 创建属性文件: 创建一个属性文件,其中包含键值对形式的属性。属性文件的扩展名通常为.properties,例如config.properties。可以根据需要在属性文件中定义各种不同的属性,例如数据库的连接信息、系统配置等。

2. 在配置类中添加@PropertySource注解: 在配置类上添加@PropertySource注解,指定要加载的外部属性文件。可以通过location属性指定属性文件的路径,通过encoding属性指定属性文件的编码方式(可选,默认为UTF-8)。

3. 获取属性值: 在配置类或其他需要使用属性值的组件中通过@Value注解或Environment对象来获取属性值。

示例如下:

@Configuration
@PropertySource(value = "classpath:config.properties", encoding = "UTF-8")
public class AppConfig {@Value("${database.url}")private String dbUrl;// 其他配置信息和Bean定义@Beanpublic MyBean myBean() {// 使用获取到的属性值return new MyBean(dbUrl);}
}

上述代码中,通过@PropertySource注解指定要加载的config.properties属性文件,使用classpath前缀表示属性文件位于类路径下。配置类中使用@Value注解获取属性值,例如获取database.url属性值。可以将属性值注入到Bean中或者在配置类中使用。

需要注意的是,属性文件的路径可以是相对于类路径(classpath:)的相对路径,也可以是文件系统的绝对路径。在配置类中加载多个属性文件时,可以使用多个@PropertySource注解。

另外,在Spring Boot中,@PropertySource注解可以省略,Spring Boot会自动加载application.properties或application.yml属性文件,并将其内容注入到Spring的环境中。

总结来说,使用@PropertySource注解可以加载外部属性文件。需要创建属性文件并在配置类上添加@PropertySource注解,指定要加载的属性文件路径和编码方式。通过@Value注解或Environment对象来获取属性值,并在应用中使用。在Spring Boot中,@PropertySource注解可以省略,Spring Boot会自动加载默认的属性文件。


🍁 10. 如何在配置类中使用条件注解,如@Conditional和@Profile?

在配置类中使用条件注解,如@Conditional和@Profile,可以根据特定条件来控制Spring容器中的Bean的加载行为。这样可以根据应用程序的需求来选择性地加载特定的Bean。

下面分别介绍一下@Conditional和@Profile注解的使用方法:

1. 使用@Conditional注解:

@Conditional注解是一个条件化的注解,它的作用是根据判断条件来决定是否加载一个Bean。可以在配置类或者Bean定义上使用@Conditional注解。

要使用@Conditional注解,需要完成以下步骤:

  • 创建一个实现了Condition接口的条件类: 自定义一个条件类,实现Condition接口,并重写matches()方法,该方法返回一个布尔值,用于判断是否满足特定条件。例如,当特定的系统属性存在时加载Bean。
  • 在需要条件化加载的Bean上使用@Conditional注解: 在需要条件化加载的Bean定义(可以是配置类或其他组件类)上添加@Conditional注解,并将条件类作为参数传入。

示例代码如下:

@Configuration
public class AppConfig {@Bean@Conditional(MyCondition.class)public MyBean myBean() {return new MyBean();}
}

上述代码中,使用@Conditional注解来指定要加载的Bean在满足MyCondition条件时才生效。MyCondition是一个自定义的条件类,负责判断是否满足特定的条件。

2. 使用@Profile注解:

@Profile注解是用于按照不同的环境或配置文件选择性地加载Bean的注解。可以在配置类或者Bean定义上使用@Profile注解。

要使用@Profile注解,需要完成以下步骤:

  • 在配置类或者Bean定义上使用@Profile注解: 使用@Profile注解,指定在哪些环境或配置文件下加载特定的Bean。可以使用字符串数组来指定多个配置文件,也可以使用逻辑操作符(AND、OR、NOT)来组合多个条件。例如,@Profile(“development”)表示在开发环境下加载Bean。
  • 激活对应的Profile: 需要在应用程序的配置文件中或者通过命令行参数来激活对应的Profile。例如在Spring Boot中,可以使用spring.profiles.active属性来激活Profile。

示例代码如下:

@Configuration
@Profile("development")
public class DevelopmentConfig {@Beanpublic MyBean myBean() {return new MyBean();}
}

上述代码中,使用@Profile注解来指定当 Profile 为 “development” 时才加载 DevelopmentConfig 配置类中的Bean。

需要注意的是,@Conditional和@Profile注解可以同时使用在同一个Bean上,这样可以更加灵活地控制Bean的加载行为。

总结来说,使用@Conditional注解和@Profile注解可以根据特定的条件来控制Bean的加载行为。可以通过自定义条件类来实现@Conditional注解,用于根据条件判断来加载Bean。@Profile注解可以根据配置文件或者环境来选择性地加载Bean。在实际应用中,可以根据需求来灵活地使用这两个注解来管理Bean的加载。

在这里插入图片描述

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

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

相关文章

STM32G4 系列命名规则

STM32G4产品线 基础型系列STM32G4x1 具有入门级模拟外设配置,单存储区Flash,支持的Flash存储器容量范围从32到512KB。 增强型系列STM32G4x3 与基本型器件相比具有更多数量的模拟外设,以及双存储区Flash,Flash存储器容量也提高…

Docker 入门第一篇 安装Docker Desktop并结合Springboot在Idea中应用

🌹作者主页:青花锁 🌹简介:Java领域优质创作者🏆、Java微服务架构公号作者😄 🌹简历模板、学习资料、面试题库、技术互助 🌹文末获取联系方式 📝 往期专栏回顾 专栏描述…

虚拟机 网络模式

VMnet8默认不能访问VMnet1,但在实验中网络模式为NAT模式的虚拟机可以ping通网络模式为仅主机vmnet1的虚拟机,仅主机vmnet1的虚拟机 不可以ping通 网络模式为NAT模式的虚拟机 如果在虚拟机中没有进行任何额外的配置,但是 VMnet8(N…

Java技术栈 —— Servlet和Tomcat

一、Servlet 先理解Servlet。 Servlet 是一种在 Java 编程语言中用于创建动态 Web 应用程序的技术。 它是 Java Servlet API 的一部分,运行在 Web 服务器上,用于处理客户端(通常是浏览器)发送的 HTTP 请求。 Servlet 可以理解为是…

ISCTF wp

web 圣杯战争 题目源码 <?php highlight_file(__FILE__); error_reporting(0);class artifact{public $excalibuer;public $arrow;public function __toString(){echo "为Saber选择了对的武器!<br>";return $this->excalibuer->arrow;} }class pre…

web项目部署,一篇就搞定!

web部署的方式有很多&#xff0c;根据开发方式不同&#xff0c;部署方式也不同。最通用是docker部署&#xff0c;这个想必大家都熟悉。我们今天说另外一种。 部署过程 1、验证Jdk是否安装成功 2、验证Tomcat是否安装成功 3、验证Navicat 是否能连上数据库 4、创建数据库并导入…

JVM篇----第十八篇

系列文章目录 文章目录 系列文章目录前言一、什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”?二、对象分配规则三、描述一下JVM加载class文件的原理机制?前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到…

【网络安全】2024年暗网威胁分析及发展预测

暗网因其非法活动而臭名昭著&#xff0c;现已发展成为一个用于各种非法目的的地下网络市场。 它是网络犯罪分子的中心&#xff0c;为被盗数据交易、黑客服务和邪恶活动合作提供了机会。为了帮助企业组织更好地了解暗网发展形势&#xff0c;近日&#xff0c;卡巴斯基的安全研究…

FCIS 2023:洞悉网络安全新前沿,引领未来安全创新狂潮

在数字化浪潮席卷全球的今天&#xff0c;网络安全问题愈发凸显其重要性。 FCIS 2023网络安全创新大会作为业界瞩目的盛会&#xff0c;不仅汇聚了国际顶尖的网络安全专家&#xff0c;更展示了最前沿的安全技术与研究成果。那么&#xff0c;参与这场大会&#xff0c;我们究竟能学…

2023年度统计DDoS攻击峰值暴增,如何选择合适的防护方式将为2024年的重点(DexunCloud)

进入 2024 年&#xff0c;发布了最新的 2023 年第三、四季度&#xff08;Q3-Q4&#xff09; DDoS 攻击趋势报告&#xff0c;指出 DDoS 攻击的规模和复杂性都有了惊人增长。 DexunCloud发现过去三年&#xff0c;DDoS 峰值攻击流量每年的增幅都超过了 100%&#xff0c;2021 年 D…

Sui主网升级至V1.17.3版本

Sui主网现已升级至V1.17.3版本&#xff0c;同时Sui协议升级至35版本。 其他升级要点如下所示&#xff1a; #15790 增加了一个选项&#xff0c;用于在开发审查时返回原始交易数据。 #15690 引入了对传统数据库快照时无需许可下载的支持。一个示例用法是sui-tool download-d…

从零开始学Linux之gcc命令

首先我们需要知道有两种编程语言 编译型语言&#xff1a;要求必须提前将所有源代码一次性转换成二进制指令&#xff0c;也就是生成一个可执行程序&#xff0c;例如C、C、go语言、汇编语言等&#xff0c;使用的转换工具称为编译器。 解释型语言&#xff1a;一边执行一边转换&a…

【2024全网最详细】Google 搜索命令终极指南

&#x1f482; 个人网站:【 海拥】【神级代码资源网站】【办公神器】&#x1f91f; 基于Web端打造的&#xff1a;&#x1f449;轻量化工具创作平台&#x1f485; 想寻找共同学习交流的小伙伴&#xff0c;请点击【全栈技术交流群】 你是否尝试过使用 Google 搜索作为免费的 SEO …

结构体的学习

结构体与共用体&#xff0c;枚举 1.数据类型复习&#xff1a; 2结构体. eg&#xff1b;统计全校同学信息 需要记录的点--- 姓名&#xff0c;班级&#xff0c;性别&#xff0c;成绩&#xff0c;年龄 统计名字&#xff1a;char s[ ] [ 100 ] { "Tmo" } …

12.如何将图像转化为矩阵形式

read_image (Image, printer_chip/printer_chip_01) *获取图片大小 get_image_size (Image, Width, Height) *获取区域里各点(每个点)的坐标 *Image 输入参数&#xff0c; *Rows 输出参数 数组&#xff0c; *Columns 输出参数&#xff0c;数组 get_region_points (Image, Rows…

轩辕编程(Java第十二讲):Java类的抽象性和最终类

抽象类 使用关键字abstract声明的类称为抽象类&#xff0c;使用abstract声明的成员方法称为抽象方法。抽象方法只有方法声明没有方法体,例如下面的func1就为抽象方法 public abstract class AbstractClassExample {protected int x;private int y;public abstract void func1()…

【Transformer 】 Hugging Face手册 (02/10)

一、说明 启动&#x1f917;并运行变形金刚&#xff01;无论您是开发人员还是日常用户&#xff0c;此快速教程都将帮助您入门&#xff0c;并向您展示如何使用 pipeline&#xff08;&#xff09; 进行推理、使用 AutoClass 加载预训练模型和预处理器&#xff0c;以及使用 PyTorc…

VRRP负载平衡

1.构图 2.实验 2.1如图提示配置pc1-pc4 掩码:255.255.255.0网关均设置为192.168.1(\2).254 2.2配置sw1-sw2 [sw1]port-group 1 //创建接口组&#xff0c;组号是1[sw1-port-group 1]group-member gigabitethernet 0/0/1 to gigabitethernet 0/0/3 //添加组成员&#xff0c;从…

springboot142新冠病毒密接者跟踪系统

新冠病毒密接者跟踪系统设计与实现 摘 要 信息数据从传统到当代&#xff0c;是一直在变革当中&#xff0c;突如其来的互联网让传统的信息管理看到了革命性的曙光&#xff0c;因为传统信息管理从时效性&#xff0c;还是安全性&#xff0c;还是可操作性等各个方面来讲&#xff…

有源滤波装置在电能质量生物制药行业中的应用

上海安科瑞电气股份有限公司 胡冠楠 咨询家&#xff1a;“Acrelhgn”&#xff0c;了解更多产品资讯 摘要&#xff1a;随着电子设备大量的使用&#xff0c;非线性负荷越来越多&#xff0c;企业电力网的谐波污染问题也越来越严重&#xff0c;由于谐波的不良作用恶化电能质量&…