Spring autowire 自动装配简介
Spring autowire 自动装配简介
注意本文与一般spring 标注@Autowire 无关
如下例子定义了3个类 Dperson Dcar & Daddress
其中Dperson 要引用另外两个类
Dperson
package com.home.autowire;public class Dperson {private String name;private Dcar car;private Daddress address;public String getName() {return name;}public void setName(String name) {this.name = name;}public Dcar getCar() {return car;}public void setCar(Dcar car) {this.car = car;}public Daddress getAddress() {return address;}public void setAddress(Daddress address) {this.address = address;}@Overridepublic String toString() {return "Dperson [name=" + name + ", car=" + car + ", address="+ address + "]";}}
Dcar
package com.home.autowire;public class Dcar {private String brand;private int price;public String getBrand() {return brand;}public void setBrand(String brand) {this.brand = brand;}public int getPrice() {return price;}public void setPrice(int price) {this.price = price;}@Overridepublic String toString() {return "Dcar [brand=" + brand + ", price=" + price + "]";}}
Daddress
package com.home.autowire;public class Daddress {private String city;private String street;private int number;public String getCity() {return city;}public void setCity(String city) {this.city = city;}public String getStreet() {return street;}public void setStreet(String street) {this.street = street;}public int getNumber() {return number;}public void setNumber(int number) {this.number = number;}@Overridepublic String toString() {return "Daddress [city=" + city + ", street=" + street + ", number="+ number + "]";}}
一般的bean定义方法(xml)
注意下面引用了p Namespace
<bean id="car" class="com.home.autowire.Dcar" p:brand="Audi" p:price="10000"/><bean id="address" class="com.home.autowire.Daddress" p:city="Canton" p:street="teenho" p:number="103"/><!-- normal assemble -->
<bean id="person1" class="com.home.autowire.Dperson" p:name="Bill" p:car-ref="car" p:address-ref="address"/>
上面这个方法是最常用的, 也是最清晰的, 一般项目也推荐上面的方法。
autowire 自动装配
在这个例子种, 所谓autowire 自动装配就是指 不用在Dperson类的bean中手动指定每个属性的值, spring会根据ByName或者ByType去找
ByName:
<bean id="car" class="com.home.autowire.Dcar" p:brand="Audi" p:price="10000"/><bean id="address" class="com.home.autowire.Daddress" p:city="Canton" p:street="teenho" p:number="103"/><!-- auto wire--><bean id="person2" class="com.home.autowire.Dperson" p:name="Lily" autowire="byName"/>
上面的例子例子, bean person2 会在spring xml种查找有没有 跟属性名一样名字的bean, 有就装配, 没有则赋值null
ByType:
<bean id="car1" class="com.home.autowire.Dcar" p:brand="Audi" p:price="10000"/><bean id="address1" class="com.home.autowire.Daddress" p:city="Canton" p:street="teenho" p:number="103"/><!-- auto wire byType--><bean id="person3" class="com.home.autowire.Dperson" p:name="Jessie" autowire="byType"/>
万一找不到跟属性名一样的bean, 也可以通过byTime来自动装配的
小结
autowire会令到spring 配置文件更加简介, 但是可读性下降了, 一般情况下其实不建议使用, 但是某些特殊情况, 例如spring 嵌入其他framework(strurt2 hibernate), autowire有时的确会使程序猿更加方便。
Spring autowire 自动装配简介相关推荐
- Spring Autowire自动装配(转http://lep1985520.blog.163.com/blog/static/56600480200901441338486/)
Spring Autowire自动装配 技术收藏 2009-01-14 16:13:38 阅读284 评论0 字号:大中小 订阅 Spring Autowire自动装配 在应用中,我们常常使用 ...
- Spring Autowire自动装配
1.在应用中,我们常常使用<ref>标签为JavaBean注入它依赖的对象,同时也Spring为我们提供了一个自动装配的机制,在定义Bean时,<bean>标签有一个autow ...
- Spring Autowire自动装配 ---残梦追月原创
在应用中,我们常常使用<ref>标签为JavaBean注入它依赖的对象.但是对于一个大型的系统,这个操作将会耗费我们大量的资源,我们不得不花费大量的时间和精力用于创建和维护系统中的< ...
- Spring Autowire自动装配介绍
在应用中,我们常常使用<ref>标签为JavaBean注入它依赖的对象.但是对于一个大型的系统,这个操作将会耗费我们大量的资源,我们不得不花费大量的时间和精力用于创建和维护系统中的< ...
- (Spring)自动装配bean
文章目录 自动装配bean 1. 环境搭建 2. byName自动装配 3. byType自动装配 4. 使用注解自动装配 4.1 @Autowired和@Qualifier 4.2 @Resourc ...
- Spring学习——自动装配
自动装配说明 自动装配是使用spring满足bean依赖的一种方法 spring会在应用上下文中为某个bean寻找其依赖的bean. Spring中bean有三种装配机制,分别是: 在xml中显式配置 ...
- Spring之自动装配
Spring中有四种自动装配类型,分别为:byName,byType,constructor,autodetect,下面来分别介绍一下这些是如何自动装配的 <bean id="foo& ...
- Spring Boot自动装配过程解析及简单Demo演示
文章目录 1.约定大于配置 2.自动装配原理 2.1.`@SpringBootApplication` 2.2.`@EnableAutoConfiguration` 2.3.`@Import` 2.4 ...
- Spring | Bean自动装配详解
个人主页:BoBooY的CSDN博客_Java领域博主 前言:上节我给大家讲解了Spring的依赖注入,这一节我们讲解Spring中Bean如何自动装配,废话不多说,直接上正文! 文章目录 Bean的 ...
最新文章
- jtabel 遍历_Swing中经常会遇到的若干问题——JTable(持续更新) | 学步园
- javascript 给关键字加链接
- Python基础教程: with语句详解
- NoSQL那些事--Redis
- VHD容量调整的方法(保存原有vhd)
- [转载] Visual Studio 2017 VC项目设置 printf 输出到 Console 窗口调试
- Qt实现判断鼠标左右键信号
- 微宝球型机器人功能_《宇宙机器人 无线控制器使用指南》评测:与次世代的美好初恋...
- 大众奥迪车 UDS协议ECU的诊断
- 计算机应用基础练习题库与答案
- 图像处理中的白化处理
- xp计算机无法正常启动,修复WindowsXP系统无法正常启动
- 炫酷渐变色背景粒子线条折线连接canvas动画
- 如何利用PDF编辑软件将pdf文字修改
- 一些可供参考的游戏出海技术架构与经验总结
- 世纪三部曲(全9册) 读后感
- 【算法】整数拆分问题
- 鲸鱼吞塑料袋解决之道:人类合作和可持续发展报告
- 【寻找佳慧】“第一关”——无所不能的矩阵(java实现代码)
- UEFI 安装win7 不用格式化