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

网站首页下拉广告搜索引擎营销的常见方式

网站首页下拉广告,搜索引擎营销的常见方式,视频剪辑线下培训班,电商网站推广我们知道spring boot会通过ComponentScan定义包扫描路径进行业务定义的bean的加载,但是对于很多不在此包路径下定义的bean怎么办呢?比如其他jar包中定义的。这时候import就发挥作用了,通过它也可以实现bean的定义。具体是怎么做的呢&#xff…

我们知道spring boot会通过@ComponentScan定义包扫描路径进行业务定义的bean的加载,但是对于很多不在此包路径下定义的bean怎么办呢?比如其他jar包中定义的。这时候import就发挥作用了,通过它也可以实现bean的定义。具体是怎么做的呢,我们先看一下Import这个注解的类:

它的value属性方法中明确说明,可以是Configuration,ImportSelector,ImportBeanDefinitionRegistrar,或者其他常规的组件类。下面我们一一举例:

我们先和大部分jar包一样,定义一个EnableUserConfiguration,然后在META-INF/spring.factories中加入配置,这样EnableUserConfiguration就会在Spring boot启动时加载。此时它是个空的类,后面我们在这个上面展示Import四种应用方式

org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.mall.provider.config.EnableUserConfiguration
public class EnableUserConfiguration {}

(1)Configuration

我们在扫描包路径外定义了一个Configuration配置类:

package com.mall.pkgscan1;import com.mall.pkgscan1.bean.ClassInfo;
import com.mall.pkgscan1.bean.Student;
import com.mall.pkgscan1.bean.UserInfo;
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;/*** @since 2024/11/28 15:17*/
@Configuration
public class UserConfiguration {@Beanpublic UserInfo userInfo() {return new UserInfo();}@Bean@ConditionalOnBean(ClassInfo.class)public Student student() {class Student1 {}new Student1();return new Student();}@Beanpublic ClassInfo classInfo() {return new ClassInfo();}
}

然后在EnableUserConfiguration上用@Import导入此配置类

@Import(UserConfiguration.class)
public class EnableUserConfiguration {}

这样UserConfiguration中定义的Bean就会被加载了,我们直接在调试状态下可以看到使用上下文是可以获取到UserConfiguration中定义的Bean的

(2)ImportSelector

这种方式我们需要定义一个实现ImportSelector的类,然后赋值给Import注解的Value。为了方便展示,这里直接在EnableUserConfiguration中定义了一个静态内部类,代码如下:

@Import(EnableUserConfiguration.UserSelector.class)
public class EnableUserConfiguration {public static class UserSelector implements ImportSelector {@Overridepublic String[] selectImports(AnnotationMetadata importingClassMetadata) {return new String[]{"com.mall.pkgscan1.UserConfiguration"};}}
}

通过selectImports返回的类的全限定名数组,就是我们想要Spring去加载的Bean。

(3)ImportBeanDefinitionRegistrar

此方式需要导入类ImportBeanDefinitionRegistrar接口。然后重写它的registerBeanDefinitions方法逻辑,自行实现bean定义,然后通过注册器进行bean的注册。此种方式可以随意自定义bean的名称

@Import(EnableUserConfiguration.UserRegistrar.class)
public class EnableUserConfiguration {public static class UserRegistrar implements ImportBeanDefinitionRegistrar {@Overridepublic void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) {RootBeanDefinition beanDefinition = new RootBeanDefinition(UserConfiguration.class);registry.registerBeanDefinition("userConfiguration", beanDefinition);}}
}

(4)导入常规组件类

这种方式最简单,但也最局限。

@Import({UserInfo.class, ClassInfo.class})
public class EnableUserConfiguration {
}

上面代码把UserInfo和ClassInfo这两个普通类加载为Bean。但因为没有直接导入它两的外围类UserConfiguration这个配置类,所以不能用它的Bean方法获取,而是用对应类获取:下方的两种获取方式,UserInfo可以获取到bean,但ClassInfo不行

http://www.mmbaike.com/news/62165.html

相关文章:

  • 网站如何做推广效果好seo网络优化是什么工作
  • 福州网站优化公司教育培训网
  • 乐清手机网站能够免费换友链的平台
  • 宁波怎么做网站排名优化百度数据库
  • 长春怎么做网站百度手机助手下载安装最新版
  • 中英双语网站源码数字营销软件
  • 2022加盟项目排行榜seo编辑招聘
  • 上海网站建设代码上海知名网站制作公司
  • 网站怎么做镜像河北seo技术
  • 柳州网站建站费用网站软件推荐
  • 网站宣传册怎么做找关键词的方法与技巧
  • 深圳正规网站建设公司东莞有限公司seo
  • 网站页面设计 8种常见的网站版面布局形式百度首页排名优化价格
  • 南昌网站建设案例济南seo优化外包服务公司
  • 宁波市北仑区建设局网站百度客户管理系统登录
  • 网站制作的地方济南seo关键词优化方案
  • 昆明广告设计公司排行seo软件全套
  • 关于公司建设网站的意义品牌推广方案策划书
  • wordpress 免费么信息流优化师需要具备哪些能力
  • 怎么自己做网站推广推广app用什么平台比较好
  • 票务网站开发中国seo高手排行榜
  • 南昌专业网站建设公司关键词难易度分析
  • 广西医疗网站建设百度云app
  • 廊坊网站制作公司品牌推广百度seo
  • 深圳市城乡建设部网站首页丽水网站seo
  • 扬州有什么做网站的公司抖音seo什么意思
  • 招代理的网站建设公司seo排名优化培训
  • 重庆市建设工程信息网查询人员成都seo公司排名
  • 好一点的网站是怎么做的上海专业seo排名优化
  • 网站建设的用处今日最新军事新闻