当前位置: 首页 > news >正文

ps做网站网络营销客户的心里特征

ps做网站,网络营销客户的心里特征,电子商务网站开发环境示范,wordpress 中文广告插件文章目录 1. 概述2. 使用2.1 导入普通Bean2.2 导入配置类2.3 导入 ImportSelector 实现类2.4 导入 ImportBeanDefinitionRegistrar 实现类 3. 区别 1. 概述 当谈及现代Java开发领域中的框架选择时#xff0c;SpringBoot无疑是无与伦比的热门之选。其简化了开发流程#xff0… 文章目录 1. 概述2. 使用2.1 导入普通Bean2.2 导入配置类2.3 导入 ImportSelector 实现类2.4 导入 ImportBeanDefinitionRegistrar 实现类 3. 区别 1. 概述 当谈及现代Java开发领域中的框架选择时SpringBoot无疑是无与伦比的热门之选。其简化了开发流程提高了效率同时保持了可靠性和可维护性。在这个充满活力的生态系统中Import注解闪耀着独特的光芒。它不仅仅是一个普通的注解更是一个强大的工具为我们提供了一种优雅而灵活的方式来管理组件的装配和配置。本文将带您深入探究Import注解的内涵揭示其背后的原理和机制助您在SpringBoot项目中游刃有余地应用这一技术从而让您的应用更加强大、灵活和易于扩展。让我们一起踏上这场关于Import注解的探索之旅探索其奥秘挖掘其潜力 Spring 提供的Import 注解: 使用Import导入的类会被Spring加载到 IOC 容器中, 有四种用法: 导入Bean导入配置类导入 ImportSelector 实现类。一般用于加载配置文件中的类导入 ImportBeanDefinitionRegistrar 实现类 2. 使用 2.1 导入普通Bean 会自动执行当前类的构造方法创建对象存到IOC容器, bean名称为类的全路径 构造一个类 public class User {private Integer id;private String name;// get set 略Overridepublic String toString() {return User{ id id , name name \ };} }使用第一种方式导入 package com.snow;import com.snow.po.User; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.annotation.Import;Import(User.class)//会自动执行当前类的构造方法创建对象存到IOC容器, bean名称为类的全路径 SpringBootApplication public class TempApplication {public static void main(String[] args) {ConfigurableApplicationContext applicationContext SpringApplication.run(TempApplication.class, args);String[] beanDefinitionNames applicationContext.getBeanDefinitionNames();// 获取并使用每个beanfor (String beanName : beanDefinitionNames) {Object bean applicationContext.getBean(beanName);System.out.println(Bean: beanName - bean.getClass().getName());// 在这里可以进行进一步的操作}// 关闭应用程序上下文applicationContext.close();} }执行结果如下: 可以看到 User 类被注入了容器. 2.2 导入配置类 创建 MyConfig bean并且类中有 带有Bean注解方法创建对象存到IOC容器bean名称为默认方法名称 定义一个类 public class Student {private Integer id;private String name;Overridepublic String toString() {return User{ id id , name name \ };}}创建配置类 Configuration public class MyConfig {Beanpublic Student student() {return new Student();}}第二种方式注入 //Import(User.class)//会自动执行当前类的构造方法创建对象存到IOC容器, bean名称为类的全路径 Import(MyConfig.class) // 创建MyConfig bean并且类中有 带有Bean注解方法创建对象存到IOC容器bean名称为默认方法名称 SpringBootApplication public class TempApplication {public static void main(String[] args) {ConfigurableApplicationContext applicationContext SpringApplication.run(TempApplication.class, args);String[] beanDefinitionNames applicationContext.getBeanDefinitionNames();// 获取并使用每个beanfor (String beanName : beanDefinitionNames) {Object bean applicationContext.getBean(beanName);System.out.println(Bean: beanName - bean.getClass().getName());// 在这里可以进行进一步的操作}// 关闭应用程序上下文applicationContext.close();} }执行并查看结果: 可以看到注入进来了配置类本身及其配置类里面声明的bean. 2.3 导入 ImportSelector 实现类 ImportSelector 是 Spring 框架提供的一个接口用于动态地选择需要导入的配置类。通过实现该接口可以根据特定的条件在运行时选择性地导入一组配置类从而实现更加灵活的配置管理。 具体来说ImportSelector 接口定义了一个方法 selectImports()该方法返回一个字符串数组数组中包含需要导入的配置类的全限定类名。当在 Spring 配置类中使用 Import 注解并指定实现了 ImportSelector 接口的类时Spring 在加载配置类时会调用该类的 selectImports() 方法根据方法返回的配置类的全限定类名来加载相应的配置类。 使用 ImportSelector 的主要优势在于可以根据程序运行时的条件来动态地选择性地导入配置类从而实现更加灵活的组件管理和配置。例如可以根据环境变量、配置文件的内容或者其他动态条件来决定需要加载哪些配置类从而实现不同环境下的定制化配置。 定义一个类 public class Teacher {private Integer id;private String name;Overridepublic String toString() {return User{ id id , name name \ };} }编写 ImportSelector 的实现类: MyImportSelector如下: public class MyImportSelector implements ImportSelector {Overridepublic String[] selectImports(AnnotationMetadata annotationMetadata) {// 返回类的全路径的字符串数组return new String[]{com.snow.po.Teacher};} }第三张方式注入 //Import(User.class)//会自动执行当前类的构造方法创建对象存到IOC容器, bean名称为类的全路径 //Import(MyConfig.class) // 创建MyConfig bean并且类中有 带有Bean注解方法创建对象存到IOC容器bean名称为默认方法名称 Import(MyImportSelector.class) // 会调用 MyImportSelector 类的 selectImports() 方法该方法返回一个类名称的数组Spring 将加载这些类这样它们的配置信息就可以被应用到当前的上下文中。 SpringBootApplication public class TempApplication {public static void main(String[] args) {ConfigurableApplicationContext applicationContext SpringApplication.run(TempApplication.class, args);String[] beanDefinitionNames applicationContext.getBeanDefinitionNames();// 获取并使用每个beanfor (String beanName : beanDefinitionNames) {Object bean applicationContext.getBean(beanName);System.out.println(Bean: beanName - bean.getClass().getName());// 在这里可以进行进一步的操作}// 关闭应用程序上下文applicationContext.close();} }执行并看结果: 注意: 这种方式是最重要的, SpringBoot自动装配核心使用了这种方式自动注入大量Bean. 2.4 导入 ImportBeanDefinitionRegistrar 实现类 导入 ImportBeanDefinitionRegistrar 实现类的作用是允许在 Spring 应用程序上下文加载时以编程方式注册额外的 bean 定义。与 ImportSelector 类似ImportBeanDefinitionRegistrar 接口也提供了一种动态注册 bean 定义的机制但是它更加灵活可以在注册过程中对 bean 定义进行更复杂的操作。 当你使用 Import 注解导入实现了 ImportBeanDefinitionRegistrar 接口的类时Spring 在加载配置类时会调用该类的 registerBeanDefinitions() 方法。在这个方法中你可以通过编程方式注册 bean 定义包括指定 bean 的名称、类型、作用域以及其他属性。 通过使用 ImportBeanDefinitionRegistrar你可以在运行时根据需要动态地注册 bean这样可以更灵活地管理和配置 Spring 应用程序的组件。这种机制特别适用于需要根据外部条件或者动态变化的情况下注册 bean 的场景例如基于配置文件或者运行时环境来决定需要注册哪些 bean。 定义一个类 public class School {private Integer id;private String name;Overridepublic String toString() {return User{ id id , name name \ };}}实现ImportBeanDefinitionRegistrar 接口 public class MyImportBeanDefinitionRegistrar implements ImportBeanDefinitionRegistrar {/*** param importingClassMetadata 导入类的元注解信息* param registry Bean注册表*/Overridepublic void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) {AbstractBeanDefinition beanDefinition BeanDefinitionBuilder.rootBeanDefinition(School.class).getBeanDefinition();registry.registerBeanDefinition(school, beanDefinition);}}第四种方式导入 Import(MyImportBeanDefinitionRegistrar.class) SpringBootApplication public class TempApplication {public static void main(String[] args) {ConfigurableApplicationContext applicationContext SpringApplication.run(TempApplication.class, args);String[] beanDefinitionNames applicationContext.getBeanDefinitionNames();// 获取并使用每个beanfor (String beanName : beanDefinitionNames) {Object bean applicationContext.getBean(beanName);System.out.println(Bean: beanName - bean.getClass().getName());// 在这里可以进行进一步的操作}// 关闭应用程序上下文applicationContext.close();} }执行看结果 可以看到注册成功. 3. 区别 Import(MyImportSelector.class) 和 Import(MyImportBeanDefinitionRegistrar.class) 都是用于在 Spring 中动态导入配置信息的注解但它们的作用和使用场景略有不同。 Import(MyImportSelector.class): 作用通过实现 ImportSelector 接口的类动态地选择需要导入的配置类。使用场景通常用于根据某些条件动态地选择需要导入的配置类。例如根据环境变量或者配置文件中的设置来决定需要加载哪些组件或配置。 Import(MyImportBeanDefinitionRegistrar.class): 作用通过实现 ImportBeanDefinitionRegistrar 接口的类以编程方式注册额外的 bean 定义。使用场景通常用于需要根据运行时动态条件注册 bean 的场景。例如根据系统配置或者运行时环境来决定需要注册哪些 bean或者根据一些复杂的逻辑来注册 bean。 使用场景示例 如果需要根据一些条件在运行时动态地选择性地加载一些配置类可以使用Import(MyImportSelector.class)。 如果需要在运行时根据条件注册一些 bean可能需要进行一些复杂的逻辑判断并且注册的 bean 可能不只是简单地选择性加载配置类你可以使用 Import(MyImportBeanDefinitionRegistrar.class)。
http://www.hkea.cn/news/14516101/

相关文章:

  • 西安建设局网站地址生成图片
  • 郴州网站制作公司电话互联网it行业做什么的
  • 网站建设商务代表工作总结爱站工具的功能
  • 建设网站方案公司网站建设及代运营合同
  • 网站做ppt模板展厅展示设计说明范文
  • 汉阳放心的建站企丿图片制作gif
  • dede网站后台打不开wordpress主页加音乐
  • google网站网站怎么更换域名
  • 网站作为医院形象建设网站建设公司首选
  • 帝国cms网站制作做电影海报在哪个网站好
  • 网站建设有哪些软件迁安三屏网站建设
  • 网站注册设计wordpress怎么编辑导航菜单
  • 网站空间域名长沙网站自己制作
  • 企业网站建设公司电话西安石家庄商城网站制作
  • 绍兴网站推广排名免费商城软件
  • 湖北建设厅举报网站jsp网站建设模板下载
  • 长沙正规企业网站制作平台wordpress 下载弹窗插件
  • 华为软件开发流程广州市 优化推广
  • 茂名建网站免费下载现成ppt网站
  • 小说投稿赚钱的网站黑客基础菜鸟入门教程
  • 南宁做网站的公司有名的网站建设公司
  • 网站搭建开发梅州做网站设计公司
  • 专业网站建设公司兴田德润信任高爱ppt网站
  • 十堰网站开发培训删除wordpress主题底部
  • 企业网站模板下载网址深圳展厅设计装修
  • 农业综合管理网站建设长沙网站建设规划
  • 合肥网站推广哪家好可以做代销的网站
  • html网站建设中网站编辑 教程
  • 做网站赚钱吗网站皮肤样板
  • 台州网站seo最新新闻资讯