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

公司怎么在百度做网站如何申请我的网站

公司怎么在百度做网站,如何申请我的网站,可以玩小游戏的网站,提供网站建设方案pptresolveDependency()实现 该方法表示,传入一个依赖描述(DependencyDescriptor),该方法会根据该依赖描述从BeanFactory中找出对应的唯一的一个Bean对象。 @Nullable Object resolveDependency(DependencyDescriptor descriptor, @Nullable String requestingBeanName,@Null…

resolveDependency()实现

该方法表示,传入一个依赖描述(DependencyDescriptor),该方法会根据该依赖描述从BeanFactory中找出对应的唯一的一个Bean对象。

@Nullable
Object resolveDependency(DependencyDescriptor descriptor, @Nullable String requestingBeanName,@Nullable Set<String> autowiredBeanNames, @Nullable TypeConverter typeConverter) throws BeansException;

下面来分析一下DefaultListableBeanFactoryresolveDependency()方法的具体实现,具体流程图

findAutowireCandidates()实现

根据类型找beanName的底层流程

对应执行流程图为

  1. 找出BeanFactory中类型为type的所有的Bean的名字,注意是名字,而不是Bean对象,因为我们可以根据BeanDefinition就能判断和当前type是不是匹配,不用生成Bean对象
  2. 把resolvableDependencies中key为type的对象找出来并添加到result中
  3. 遍历根据type找出的beanName,判断当前beanName对应的Bean是不是能够被自动注入
  4. 先判断beanName对应的BeanDefinition中的autowireCandidate属性,如果为false,表示不能用来进行自动注入,如果为true则继续进行判断
  5. 判断当前type是不是泛型,如果是泛型是会把容器中所有的beanName找出来的,如果是这种情况,那么在这一步中就要获取到泛型的真正类型,然后进行匹配,如果当前beanName和当前泛型对应的真实类型匹配,那么则继续判断
  6. 如果当前DependencyDescriptor上存在@Qualifier注解,那么则要判断当前beanName上是否定义了Qualifier,并且是否和当前DependencyDescriptor上的Qualifier相等,相等则匹配
  7. 经过上述验证之后,当前beanName才能成为一个可注入的,添加到result中

关于依赖注入中泛型注入的实现

首先在Java反射中,有一个Type接口,表示类型,具体分类为:

  1. raw types:也就是普通Class
  1. parameterized types:对应ParameterizedType接口,泛型类型
  2. array types:对应GenericArrayType,泛型数组
  3. type variables:对应TypeVariable接口,表示类型变量,也就是所定义的泛型,比如T、K
  4. primitive types:基本类型,int、boolean

Spring中,但注入点是一个泛型时,也是会进行处理的,比如:

@Component
public class UserService extends BaseService<OrderService, StockService> {public void test() {System.out.println(o);}}public class BaseService<O, S> {@Autowiredprotected O o;@Autowiredprotected S s;
}
  1. Spring扫描时发现UserService是一个Bean
  2. 那就取出注入点,也就是BaseService中的两个属性o、s
  3. 接下来需要按注入点类型进行注入,但是o和s都是泛型,所以Spring需要确定o和s的具体类型。
  4. 因为当前正在创建的是UserService的Bean,所以可以通过userService.getClass().getGenericSuperclass().getTypeName()获取到具体的泛型信息,比如com.zhouyu.service.BaseService<com.zhouyu.ser
http://www.yayakq.cn/news/289689/

相关文章:

  • 私人网站如何建新产品线上推广方案
  • 互动网站欣赏那种广告式网站怎么做
  • 南平市建设局网站网站注册域名与制作
  • 研究院 网站建设网站向哪里备案
  • 山东省住房和城乡建设局网站首页哪些公司做外贸网站
  • iis网站访问用户...温岭做网站
  • 做网站的公司推荐wordpress 定时发布 原理
  • 网站建设客户目标模板crm管理营销
  • 有没有专门做航拍婚礼网站又做投资的网站吗
  • 南京建站服务北航做网站公司
  • react是网站开发全球设计网络芯片的公司
  • 咖啡网站开发wordpress导航模板下载地址
  • 哪个网站可以帮忙做简历网站开发导航栏
  • 辽宁省锦州市住房与城乡建设厅网站wordpress友言
  • 网站的建设费 账务处理岳阳做公司网站
  • 如何制作网站app网络推广协议
  • 北京免备案网站建设专做毕业设计的网站
  • 用局域网建设网站wordpress全自动淘宝客
  • 怎么做qq业务网站flash怎么做电子书下载网站
  • 宁波电器网站制作哈尔滨行业网站开发
  • 海南省海口市网站建设中介房产管理软件推荐
  • 青海网站设计个人专业制作网站
  • 网站建设多少钱注册劳务公司流程和费用
  • 凡科网制作网站教程网站开发静态怎样转成动态
  • 优化网站目录结构wordpress邮箱用不了
  • 常见的网站推广方式简单网页制作成品代码
  • 横沥做网站番禺人才网官网入口
  • 搜索不到的网站雄县做网站的
  • 江苏建设一体化平台网站wordpress运行慢
  • win10建设本地网站咨询公司网站模板