Spring自动装配Bean的五种方式
在Spring中,支持 5 自动装配模式。
no – 缺省情况下,自动配置是通过“ref”属性手动设定,在项目中最常用
byName – 根据属性名称自动装配。如果一个bean的名称和其他bean属性的名称是一样的,将会自装配它。
byType – 按数据类型自动装配。如果一个bean的数据类型是用其它bean属性的数据类型,兼容并自动装配它。
constructor – 在构造函数参数的byType方式。
autodetect – 如果找到默认的构造函数,使用“自动装配用构造”; 否则,使用“按类型自动装配”。
示例
1、Auto-Wiring "no"’这是默认的模式,需要通过 "ref" 属性来连接 bean。
package org.spring.autowring;
public class Person {
public Person(Ability ability){
super();
this.ability=ability;
}
private Ability ability;
public Ability getAbility() {
return ability;
}
public void setAbility(Ability ability) {
this.ability = ability;
}
@Override
public String toString(){
return "Person=[ablity=[skill="+this.ability.getSkill()+"]]";
}
}
package org.spring.autowring;
public class Ability {
private String skill;
public String getSkill() {
return skill;
}
public void setSkill(String skill) {
this.skill = skill;
}
}
<!-- no – 缺省情况下,自动配置是通过“ref”属性手动设定 -->
<bean id="person" class="org.spring.autowring.Person">
<property name="ability" ref="ability"></property>
</bean>
<bean id="ability" class="org.spring.autowring.Ability">
<property name="skill" value="Java Programming"></property>
</bean>

2、Auto-Wiring "byName" 按属性名称自动装配
<!-- Auto-Wiring "byName" 按属性名称自动装配 -->
<bean id="person" class="org.spring.autowring.Person" autowire="byName"/>
<bean id="ability" class="org.spring.autowring.Ability">
<property name="skill" value="Java Programming"></property>
</bean>
3、Auto-Wiring "byType" 按属性名称自动装配
<!-- Auto-Wiring "byType" 按属性名称自动装配 -->
<bean id="person" class="org.spring.autowring.Person" autowire="byType"/>
<bean id="ability" class="org.spring.autowring.Ability">
<property name="skill" value="Java Programming"></property>
</bean>
4、constructor – 在构造函数参数的byType方式
<!-- constructor – 在构造函数参数的byType方式。 -->
<!-- 构造方法的参数 -->
<bean id="person" class="org.spring.autowring.Person">
<constructor-arg>
<ref bean="ability"></ref>
</constructor-arg>
</bean>
<bean id="ability" class="org.spring.autowring.Ability">
<property name="skill" value="Java Programming"></property>
</bean>
Spring自动装配Bean的五种方式的更多相关文章
- Spring容器装配Bean的三种方式
欢迎查看Java开发之上帝之眼系列教程,如果您正在为Java后端庞大的体系所困扰,如果您正在为各种繁出不穷的技术和各种框架所迷茫,那么本系列文章将带您窥探Java庞大的体系.本系列教程希望您能站在上帝 ...
- Spring实战(三)Spring中装配Bean的三种方式---XML、JavaConfig、AutoWire
创建应用对象之间协作关系的行为称为装配(wiring),这也是依赖注入的本质. Spring容器负责创建应用程序中的bean并通过DI来协调这些对象之间的关系,而开发者需要告诉Spring需要创建哪些 ...
- Spring 自动装配 Bean
Spring3系列8- Spring 自动装配 Bean 1. Auto-Wiring ‘no’ 2. Auto-Wiring ‘byName’ 3. Auto-Wiri ...
- Spring自动装配Bean详解
1. Auto-Wiring ‘no’ 2. Auto-Wiring ‘byName’ 3. Auto-Wiring ‘byType 4. Auto-Wirin ...
- spring装配bean的三种方式及其混合装配
在spring容器中装配bean有三种基本方式和混合装配方式: 隐式的bean自动发现机制和自动装配 在java中进行显式配置 在xml中配置 混合装配(在多个java文件中配置.在JavaConfi ...
- Spring装配Bean的三种方式+导入和混合配置
目录 Spring IoC与bean 基于XML的显式装配 xml配置的基本结构 bean实例的三种创建方式 依赖注入的两种方式 构造器注入方式 setter方法注入方式 利用命名空间简化xml 基于 ...
- Spring自动装配bean
Spring推荐面向接口编程,这样可以很好的解耦具体的实现类. CompactDisc.class 文件: public interface CompactDisc { void play(); } ...
- spring 装配bean的三种方式
这段时间在学习Spring,依赖注入DI和面向切面编程AOP是Spring框架最核心的部分.这次主要是总结依赖注入的bean的装配方式. 什么是依赖注入呢?也可以称为控制反转,简单的来说,一般完成稍微 ...
- spring 自动装配 bean 有哪些方式?
Spring容器负责创建应用程序中的bean同时通过ID来协调这些对象之间的关系.作为开发人员,我们需要告诉Spring要创建哪些bean并且如何将其装配到一起. spring中bean装配有两种方式 ...
随机推荐
- ytu 1052: 写一函数,将两个字符串连接(水题,指针练习)
1052: 写一函数,将两个字符串连接 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 343 Solved: 210[Submit][Status][ ...
- Python爬虫(六)
源码: import requests import re from my_mysql import MysqlConnect # 获取问答信息 def get_contents(page,heade ...
- Appium自动化测试3之获取apk包名和launcherActivity后续
接着“Appium自动化测试3之获取apk包名和launcherActivity”章节介绍 测试脚本 1.测试脚本如下: # -*- coding:utf-8 -*- import os, time, ...
- 170330、Spring中你不知道的注入方式
前言 在Spring配置文件中使用XML文件进行配置,实际上是让Spring执行了相应的代码,例如: 使用<bean>元素,实际上是让Spring执行无参或有参构造器 使用<prop ...
- kibana5.6 源码分析以--环境搭建&技术准备
Kibana是一个开源的分析与可视化平台,设计出来用于和Elasticsearch一起使用的.你可以用kibana搜索.查看.交互存放在Elasticsearch索引里的数据,使用各种不同的图表.表格 ...
- 1.引入jQuery
http://libs.baidu.com/jquery/2.1.4/jquery.js
- Python爬虫实例(二)使用selenium抓取斗鱼直播平台数据
程序说明:抓取斗鱼直播平台的直播房间号及其观众人数,最后统计出某一时刻的总直播人数和总观众人数. 过程分析: 一.进入斗鱼首页http://www.douyu.com/directory/all 进入 ...
- 饭卡---hdu2546(01背包)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2546 这是一个变形的01背包问题,首先如果金额小于5元,剩余金额不变,为已有金额.如果大于等于5元 我 ...
- 雨痕 的《Python学习笔记》--附脑图(转)
原文:http://www.pythoner.com/148.html 近日,在某微博上看到有人推荐了 雨痕 的<Python学习笔记>,从github上下载下来看了下,确实很不错. 注意 ...
- 利用Octopress在Github上搭建博客及后续问题总汇
首先贴一下我的新博客地址: http://findingsea.github.io 用Octopress在GitHub上搭建博客已经不是什么新鲜事了,网上的教程也多了去了,大题的方法什么都差不多,这篇 ...