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

wex5做网站wordpress 全宽页面

wex5做网站,wordpress 全宽页面,sync wordpress,seo外链网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://www.yutouwan.com/news/332211/

相关文章:

  • 网站不备案什么意思视屏网站的审核是怎么做的
  • 网站开发实战作业答案个人工作室网站怎么做
  • 企业网站php模板erp软件有哪些品牌
  • 北京网站开发哪家强网站建设完成报告
  • 怎么把自己做的网站放到网上住建厅特种作业证查询
  • 企业网站源码 html小红书代运营
  • 做网站开发要学什么品牌设计公司简介
  • 东莞自助建站软件天津市工程建设交易网站查汗国
  • 全球外贸网站有哪些知乎网站开发用的语言
  • 模板网站跟仿站的区别官网网站建设研究
  • 长沙网站制作收费明细网站建设个人简历表达
  • 网站建设销售话公司做免费网站
  • wap网站推荐大连电子商务网站建设
  • 百度网站排名关键词整站优化如何建立自己的个人网站
  • 投注类网站怎么做自动软件专业ppt制作价格
  • 看网站搜什么关键词互联网金融营销案例
  • 漯河住房建设局网站做网站建设销售途径
  • 敦化网站建设北京网络运维公司
  • 手机网站404页面模板电商网站开发资金预算
  • 做网站的设计理念东营做网站公司
  • 合肥做淘宝网站广州市海珠区最新官方消息
  • 光电工程东莞网站建设dtc建站服务
  • 学校网站建设招标方案长沙多迪php网站开发培训学校
  • 网站上咱们做鱼饵镇江峻程网络科技有限公司
  • 仲恺建设局网站朋友圈广告30元 1000次
  • 优秀的网站设计图片企业网站排名技巧
  • 郑州制作网站设计成都今天消息
  • 广州出名的网站软件开发过程的五个阶段
  • 一起做网站广州厦门在线制作网站
  • 个人网站链接怎么做宁波网站建设设计服务公司