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

网站死链接扫描网站建设方案书

网站死链接扫描,网站建设方案书,开发者模式怎么关闭vivo,北京汉邦未来网站建设有限公司context:annotation-config 是用于激活那些已经在spring容器里注册过的bean#xff08;无论是通过xml的方式还是通过package sanning的方式#xff09;上面的注解。 context:component-scan除了具有context:annotation-config的功能之外#xff0c;…context:annotation-config 是用于激活那些已经在spring容器里注册过的bean无论是通过xml的方式还是通过package sanning的方式上面的注解。 context:component-scan除了具有context:annotation-config的功能之外context:component-scan还可以在指定的package下扫描以及注册javabean 。   下面我们通过例子来详细查看他们的区别 有三个class   A,B,C,并且B,C的对象被注入到A中.   [java] view plaincopyprint? package com.xxx;  public class B {    public B() {      System.out.println(creating bean B:   this);    }  }    package com.xxx;  public class C {    public C() {      System.out.println(creating bean C:   this);    }  }    package com.yyy;  import com.xxx.B;  import com.xxx.C;  public class A {     private B bbb;    private C ccc;    public A() {      System.out.println(creating bean A:   this);    }    public void setBbb(B bbb) {      System.out.println(setting A.bbb with   bbb);      this.bbb  bbb;    }    public void setCcc(C ccc) {      System.out.println(setting A.ccc with   ccc);      this.ccc  ccc;     }  }     在applicationContext.xml中加入下面的配置 :   bean idbBeanclasscom.xxx.B/ bean idcBeanclasscom.xxx.C/ bean idaBeanclasscom.yyy.Aproperty namebbb refbBean/property nameccc refcBean/ /bean   加载applicationContext.xml配置文件将得到下面的结果:   creating bean B: com.xxx.Bc2ff5 creating bean C: com.xxx.C1e8a1f6 creating bean A: com.yyy.A1e152c5 setting A.bbb with com.xxx.Bc2ff5 setting A.ccc with com.xxx.C1e8a1f6   OK, 这个结果没什么好说的就是完全通过xml的方式不过太过时了下面通过注解的方式来简化我们的xml配置文件 首先我们使用autowire的方式将对象bbb和ccc注入到A中     [java] view plaincopyprint? package com.yyy;  import org.springframework.beans.factory.annotation.Autowired;  import com.xxx.B;  import com.xxx.C;  public class A {     private B bbb;    private C ccc;    public A() {      System.out.println(creating bean A:   this);    }    Autowired    public void setBbb(B bbb) {      System.out.println(setting A.bbb with   bbb);      this.bbb  bbb;    }    Autowired    public void setCcc(C ccc) {      System.out.println(setting A.ccc with   ccc);      this.ccc  ccc;    }  }       然后我们就可以从applicationContext.xml中移除下面的配置   property namebbb refbBean/ property nameccc refcBean/   移除之后我们的applicationContext.xml配置文件就简化为下面的样子了   bean idbBeanclasscom.xxx.B/ bean idcBeanclasscom.xxx.C/ bean idaBeanclasscom.yyy.A/   当我们加载applicationContext.xml配置文件之后将得到下面的结果   creating bean B: com.xxx.B5e5a50 creating bean C: com.xxx.C54a328 creating bean A: com.yyy.Aa3d4cf   OK, 结果是错误的的究竟是因为什么呢为什么我们的属性没有被注入进去呢 是因为注解本身并不能够做任何事情它们只是最基本的组成部分我们需要能够处理这些注解的处理工具来处理这些注解 这就是context:annotation-config 所做的事情 我们将applicationContext.xml配置文件作如下修改   context:annotation-config / bean idbBeanclasscom.xxx.B/ bean idcBeanclasscom.xxx.C/ bean idaBeanclasscom.yyy.A/   当我们加载applicationContext.xml配置文件之后将得到下面的结果   creating bean B: com.xxx.B15663a2 creating bean C: com.xxx.Ccd5f8b creating bean A: com.yyy.A157aa53 setting A.bbb with com.xxx.B15663a2 setting A.ccc with com.xxx.Ccd5f8b   OK, 结果正确了 但是如果我们将代码作如下修改     [java] view plaincopyprint? package com.xxx;  import org.springframework.stereotype.Component;  Component  public class B {    public B() {      System.out.println(creating bean B:   this);    }  }    package com.xxx;  import org.springframework.stereotype.Component;  Component  public class C {    public C() {      System.out.println(creating bean C:   this);    }  }    package com.yyy;  import org.springframework.beans.factory.annotation.Autowired;  import org.springframework.stereotype.Component;  import com.xxx.B;  import com.xxx.C;  Component  public class A {     private B bbb;    private C ccc;    public A() {      System.out.println(creating bean A:   this);    }    Autowired    public void setBbb(B bbb) {      System.out.println(setting A.bbb with   bbb);      this.bbb  bbb;    }    Autowired    public void setCcc(C ccc) {      System.out.println(setting A.ccc with   ccc);      this.ccc  ccc;    }  }     applicationContext.xml配置文件修改为   context:annotation-config /   当我们加载applicationContext.xml配置文件之后却没有任何输出这是为什么呢 那是因为context:annotation-config /仅能够在已经在已经注册过的bean上面起作用。 对于没有在spring容器中注册的bean它并不能执行任何操作。 但是不用担心context:component-scan除了具有context:annotation-config /的功能之外还具有自动将带有component,service,Repository等注解的对象注册到spring容器中的功能。 我们将applicationContext.xml配置文件作如下修改   context:component-scan base-packagecom.xxx/   当我们加载applicationContext.xml的时候会得到下面的结果   creating bean B: com.xxx.B1be0f0a creating bean C: com.xxx.C80d1ff   这是什么原因呢 是因为我们仅仅扫描了com.xxx包及其子包的类而class  A是在com.yyy包下所以就扫描不到了 下面我们在applicationContext.xml中把com.yyy也加入进来   context:component-scan base-packagecom.xxx/context:component-scan base-packagecom.xxx,com.yyy/ 然后加载applicationContext.xml就会得到下面的结果 creating bean B: com.xxx.Bcd5f8b creating bean C: com.xxx.C15ac3c9 creating bean A: com.yyy.Aec4a87 setting A.bbb with com.xxx.Bcd5f8b setting A.ccc with com.xxx.C15ac3c9   哇结果正确啦 回头看下我们的applicationContext.xml文件已经简化为   context:component-scan base-packagecom.xxx/context:component-scan base-packagecom.xxx,com.yyy/   了。   那如果我们在applicationContext.xml手动加上下面的配置也就是说既在applicationContext.xml中手动的注册了A的实例对象同时通过component-scan去扫描并注册B,C的对象   context:component-scan base-packagecom.xxx/ bean idaBeanclasscom.yyy.A/   结果仍是正确的:   creating bean B: com.xxx.B157aa53 creating bean C: com.xxx.Cec4a87 creating bean A: com.yyy.A1d64c37 setting A.bbb with com.xxx.B157aa53 setting A.ccc with com.xxx.Cec4a87   虽然class  A并不是通过扫描的方式注册到容器中的 但是context:component-scan 所产生的的处理那些注解的处理器工具会处理所有绑定到容器上面的bean不管是通过xml手动注册的还是通过scanning扫描注册的。 那么如果我们通过下面的方式呢我们既配置了context:annotation-config /又配置了context:component-scan base-packagecom.xxx /它们都具有处理在容器中注册的bean里面的注解的功能。会不会出现重复注入的情况呢   context:annotation-config /context:component-scan base-packagecom.xxx/bean idaBeanclasscom.yyy.A/   不用担心不会出现的   creating bean B: com.xxx.B157aa53 creating bean C: com.xxx.Cec4a87 creating bean A: com.yyy.A1d64c37 setting A.bbb with com.xxx.B157aa53 setting A.ccc with com.xxx.Cec4a87   因为context:annotation-config /和 context:component-scan同时存在的时候前者会被忽略。也就是那些autowireresource等注入注解只会被注入一次 哪怕是你手动的注册了多个处理器spring仍然只会处理一次   [xml] view plaincopyprint? context:annotation-config /  context:component-scan base-packagecom.xxx /  bean idaBean classcom.yyy.A /  bean idbla classorg.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor /  bean idbla1 classorg.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor /  bean idbla2 classorg.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor /  bean idbla3 classorg.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor /   结果仍是正确的   creating bean B: com.xxx.B157aa53 creating bean C: com.xxx.Cec4a87 creating bean A: com.yyy.A25d2b2 setting A.bbb with com.xxx.B157aa53 setting A.ccc with com.xxx.Cec4a87转载于:https://www.cnblogs.com/sandea/p/3437324.html
http://wiki.neutronadmin.com/news/8642/

相关文章:

  • 上海建网站计划工作顺利
  • 零食网站建设策划书网页版原神
  • 哈尔滨建站模板展示网络营销策划方案范文
  • 厦门南希网站建设企业网站价格花
  • 网站开发 怎样做费用结算商务网站建设学期总结
  • 精细化学品网站建设涿州网站制作
  • 怎样能让百度搜到自己的网站万网建网站教程
  • 网站开发验收方案seo优化或网站编辑
  • 苏省住房和城乡建设厅网站首页哪些网站用天平做logo
  • 最专业网站建wordpress卸载多说
  • 河北网站快速排名建设谷歌站群系统
  • 牡丹区建设局网站沈阳新联会是什么组织做什么
  • 南京建设网站多少钱免费自建网站工具
  • logo网站设计论文龙岩属于哪里
  • 临沂网站建设制作中山网站优化排名
  • 昆明网站建设推广公司哪家好360网站弹窗推广怎么做的
  • 高端网站定做城乡建设住房建设厅官方网
  • 淘宝优惠劵网站怎么做沧州做网站哪家好
  • 濮阳佳杰网站建设巧用不对称做网站和彩票的同步开奖怎么做
  • 什么样的网站容易做seo线下推广的渠道和方法
  • wordpress添加文章页不显示网站怎么做优化百度能搜索到
  • html5网站开发技术小蜜蜂wordpress采集
  • 个人网站备案地址选择梧州市建设局官方网站
  • 运营网站是多少wordpress检测手机端
  • 网站seo诊断方案怎么做电影网站吗
  • git网站开发如何给自己公司做一个网站
  • 洛阳网站建设哪家公司好提供建立网站服务的公司
  • 浦东高端网站开发html网站免费下载
  • 邢台微信网站网站建设板块建议
  • 鲜花网站开发wordpress底部链接