技术标签: 自动装配 byName Spring byType bean
在使用Spring框架时,有些bean中有个成员变量是另一个bean。举个实际的例子,比如说CDPlayer类(CD播放器类)中有一个属性是CD(接口),代表着CDPlayer可以放各种CD,可以实例化为Mayday(五月天的歌)。
原来我们需要在配置CDPlayer这个bean的时候添加<porperty>,手动装配。代码如下:
<bean id="cd" class="com.yykj.Mayday" />
<bean id="cdPlayer" class="com.yykj.CDPlayer">
<!--name这个值是根据setter方法名来确定的,所以手动装配setter是必须有的-->
<property name="cd" ref="cd"/>
</bean>
现在我们使用自动装配,不需要添加
<porperty>属性。
这是CDPlayer类:
package com.yykj;
public class CDPlayer {
private CD cd;
/* byName自动装配以及手动装配都与setter方法名有关,与属性无关。
byType自动装配与setter中的参数类型有关*/
public void setCd(CD cd) {
this.cd = cd;
}
public void play(){
cd.Play();
}
}
测试类:
package com.yykj;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@RunWith(SpringJUnit4ClassRunner.class)
//在测试时,不启动服务器,所以不会加载web.xml,要手动初始化spring配置文件
@ContextConfiguration(locations = "classpath*:applicationContext.xml")
public class TestCD {
@Test
public void CDPlayerTest(){
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");//获取上下文
CDPlayer cdPlayer = context.getBean(CDPlayer.class);
cdPlayer.play();
}
}
自动装配有两种方式:
1.byName
在spring配置文件的<beans>标签中加入代码:dafault-autowire="byName"。
被装配类中的setter方法还是需要的,因为是byName,所以setter方法名要与bean的id对应,比如bean的id为cd,那么setter方法名为setCd。
2.byType
在spring配置文件的<beans>标签中加入代码:dafault-autowire="byType"。
被装配类中的setter方法的参数类型要与bean的class的类型一样,才能自动装配到。
注意:以上两种自动装配方法本质上都是通过反射,构造出对应的setter方法,然后执行setter方法。
文章浏览阅读2.5w次,点赞2次,收藏4次。Integer类的valueOf方法可以将String转成Number。(非原创,转帖!)下面是代码示例:String numString = “1000″;int id=Integer.valueOf(numString).intValue(); [java] package com.test; public class StringtoInteger { public s..._string转为number
文章浏览阅读8.4k次,点赞4次,收藏21次。sampleTerrainMostDetailedsampleTerrainMostDetailed(terrainProvider, positions) → Promise.<Array.<Cartographic>>terrainProvider的类型是TerrainProvider,positions是一个位置的数组,返回的是一个promise,是一个位置数组..._cesium.when
文章浏览阅读3.6w次。原文地址:百亿题典之C++编程题面试题作者:百亿题典1. 在linked list中找倒数第N个结点2. 倒转linked list3. 二叉树的结点有指向parent的指针,求最近公共祖先4. 给一个数组,如何打印该数组成员构成集合的全部子集合.5. 有两个字符串,一个是text,一个是command, Command有四种: ‘+’: 在_从一个有序数组(由小到大)中删除一个数据。如数组a={1,3,5,7,9},删除3后的a是{1,5
文章浏览阅读1.2w次,点赞5次,收藏3次。通过npm命令安装vuejs 在用 Vue.js 构建大型应用时推荐使用 NPM 安装,NPM 能很好地和诸如Webpack或Browserify的 CommonJS 模块打包器配合使用。(以下操作全在命令行中) 1 2 3 4 # 最新稳定版本 $ npm install -g vue 全局安装 ..._安装全局vue
文章浏览阅读2.4k次,点赞3次,收藏5次。目录1. 为什么要集成React Native2. 认识React Native2.1 基础2.1.1 语言基础2.1.2 React Native基础2.2 实践2.2.1 环境搭建2.2.2开源项目2.3 模式3. 如何集成React Native3.1 React Native集成到原生应用:3.2 React Native工程搭建:3.2.1 技术选型3.2.2 工程目录结构1. 为什么要集成React Native 虽然XXX Connect APP采用组件化技术后,可以支持全品类智能硬件接_react-native recoil
文章浏览阅读347次。苹果cms爱看模板有哪些?今天给大家推荐几款苹果cms系统中比较爱看的苹果cms模板。苹果cms爱看模板1,https://www.mytheme.cn/maccms/65.html苹果cms爱看模板2,https://www.mytheme.cn/maccms/107.html苹果cms爱看模板3,https://www.mytheme.cn/maccms/149.html苹果cms爱看模板4,https://www.m..._爱看模板
文章浏览阅读513次。sudo cp /usr/local/cuda/lib64/libcudnn.so.5 /usr/local/lib/libcudnn.so.5 sudo ldconfig_pmemd.cuda: error while loading shared libraries: libgfortran.so.5: cannot o
文章浏览阅读6.9k次,点赞2次,收藏8次。参考:Github slide: https://github.com/markjay4k/Mask-RCN…Mask RCNN Repo: https://github.com/matterport/Mask_RCNNrequirements.txt: https://github.com/markjay4k/Mask-RCN…Mask RCNN paper: https://arx..._通过keras和tensorflow搭建mask r-cnn
文章浏览阅读62次。本文主要和大家分享使用Apache的ab工具实例详解,希望能帮助到大家。ab命令原理Apache的ab命令模拟多线程并发请求,测试服务器负载压力,也可以测试nginx、lighthttp、IIS等其它Web服务器的压力。Apache附带的ab工具(使用的PHP环境是WAMP集成环境,ab工具位于D:\wamp\bin\apache\Apache2.2.21\bin)非常容易使用。ab命令对发出负载..._phpab
文章浏览阅读202次。8月17日,网红组合摩登兄弟,在广州“中央车站”举办了一场个人音乐会,座无虚席,个唱主办方是总部同属广州的直播平台YY。摩登兄弟成立于2014年,在2015年3月正式成为YY平台签约主播,在4528频道开播后,凭借着良好的唱功和颜值,快速成长为头部主播,分别获得2016年YY年度组合歌手第4名、2017年YY年度组合歌手第2名。作为平台上的金牌主播,YY对其重视有加,一个细节是,日前的二季度财报分..._摩登兄弟分析其“产品定位、主要内容、变现模式”这几个方面
文章浏览阅读5.5k次,点赞8次,收藏43次。1. 非线性控制系统的两大任务 1.1 稳定(或称调节)问题稳定问题是要使得闭环系统的状态稳定在一个平衡点附近。对于稳定问题,系统的输出不一定要有具体的物理意义,此时可以借助输入-输出状态线性化方法把原非线性熊转换为线性系统,从而用线性系统额理论解决系统的稳定问题。 1.2跟踪(或称伺服)问题跟踪问题是要使得闭环系统的输出跟踪一个给定的时变轨迹。2. 常用的非线性..._非线性控制
文章浏览阅读9.8k次,点赞6次,收藏24次。Itext7改版相对于Itext5改版很大,由于新出来,很多文档都找不到。最近项目用到,就研究并记录了一下。本文解决的问题:1、替换表单域的变量;2、在表单域位置插入图片,图片根据表单域的大小自动变化;3、添加文字水印,水印显示在图片的上面。程序运行效果如下:1、引入maven依赖包为了方便下面直接引入itext7全家桶,有兴趣可以直接研究单个包引入。<..._itext7-core 编辑表单域