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 自动装配简介相关推荐

  1. Spring Autowire自动装配(转http://lep1985520.blog.163.com/blog/static/56600480200901441338486/)

    Spring Autowire自动装配 技术收藏 2009-01-14 16:13:38 阅读284 评论0   字号:大中小 订阅 Spring Autowire自动装配   在应用中,我们常常使用 ...

  2. Spring Autowire自动装配

    1.在应用中,我们常常使用<ref>标签为JavaBean注入它依赖的对象,同时也Spring为我们提供了一个自动装配的机制,在定义Bean时,<bean>标签有一个autow ...

  3. Spring Autowire自动装配 ---残梦追月原创

    在应用中,我们常常使用<ref>标签为JavaBean注入它依赖的对象.但是对于一个大型的系统,这个操作将会耗费我们大量的资源,我们不得不花费大量的时间和精力用于创建和维护系统中的< ...

  4. Spring Autowire自动装配介绍

    在应用中,我们常常使用<ref>标签为JavaBean注入它依赖的对象.但是对于一个大型的系统,这个操作将会耗费我们大量的资源,我们不得不花费大量的时间和精力用于创建和维护系统中的< ...

  5. (Spring)自动装配bean

    文章目录 自动装配bean 1. 环境搭建 2. byName自动装配 3. byType自动装配 4. 使用注解自动装配 4.1 @Autowired和@Qualifier 4.2 @Resourc ...

  6. Spring学习——自动装配

    自动装配说明 自动装配是使用spring满足bean依赖的一种方法 spring会在应用上下文中为某个bean寻找其依赖的bean. Spring中bean有三种装配机制,分别是: 在xml中显式配置 ...

  7. Spring之自动装配

    Spring中有四种自动装配类型,分别为:byName,byType,constructor,autodetect,下面来分别介绍一下这些是如何自动装配的 <bean id="foo& ...

  8. Spring Boot自动装配过程解析及简单Demo演示

    文章目录 1.约定大于配置 2.自动装配原理 2.1.`@SpringBootApplication` 2.2.`@EnableAutoConfiguration` 2.3.`@Import` 2.4 ...

  9. Spring | Bean自动装配详解

    个人主页:BoBooY的CSDN博客_Java领域博主 前言:上节我给大家讲解了Spring的依赖注入,这一节我们讲解Spring中Bean如何自动装配,废话不多说,直接上正文! 文章目录 Bean的 ...

最新文章

  1. jtabel 遍历_Swing中经常会遇到的若干问题——JTable(持续更新) | 学步园
  2. javascript 给关键字加链接
  3. Python基础教程: with语句详解
  4. NoSQL那些事--Redis
  5. VHD容量调整的方法(保存原有vhd)
  6. [转载] Visual Studio 2017 VC项目设置 printf 输出到 Console 窗口调试
  7. Qt实现判断鼠标左右键信号
  8. 微宝球型机器人功能_《宇宙机器人 无线控制器使用指南》评测:与次世代的美好初恋...
  9. 大众奥迪车 UDS协议ECU的诊断
  10. 计算机应用基础练习题库与答案
  11. 图像处理中的白化处理
  12. xp计算机无法正常启动,修复WindowsXP系统无法正常启动
  13. 炫酷渐变色背景粒子线条折线连接canvas动画
  14. 如何利用PDF编辑软件将pdf文字修改
  15. 一些可供参考的游戏出海技术架构与经验总结
  16. 世纪三部曲(全9册) 读后感
  17. 【算法】整数拆分问题
  18. 鲸鱼吞塑料袋解决之道:人类合作和可持续发展报告
  19. 【寻找佳慧】“第一关”——无所不能的矩阵(java实现代码)
  20. UEFI 安装win7 不用格式化

热门文章

  1. buu [BJDCTF 2nd]老文盲了
  2. nginx常用功能介绍
  3. android classloader异常,Android中ClassLoader类加载机制
  4. Windows异常学习笔记(一)—— CPU异常记录模拟异常记录
  5. 【Storage】localStorage 或 sessionStorage 首次加载,需要再次手动刷新页面的解决方案
  6. 8、如何将SQL语句映射为文件操作
  7. 132. 小组队列【队列 模拟】
  8. 牛客竞赛语法入门班数组模拟、枚举、贪心习题【未完结】
  9. javaScript字符串应用
  10. Spring boot的put请求