自动装配(了解)

根据名称自动装配:autowire="byName"

自动去IOC容器中找与属性名同名的引用的对象,并自动注入

延续使用user、dao、service、action

一、局部改变自动化注入方法,更改bean.xml(根据名字自动加载)

 <?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd"> <!-- 对象属性赋值 通过构造函数 -->
<bean id="user" class="com.liuyang.auto.User">
</bean>
<!-- dao注入 -->
<bean id="dao" class="com.liuyang.auto.UserDAO">
</bean> <!-- service注入 -->
<bean id="us" class="com.liuyang.auto.UserService" autowire="byType">
</bean> <!-- action注入 ,,根据名称自动装配,userAction注入的属性,会去IOC容器中自动查找与属性同名的对象 -->
<bean id="userAction" class="com.liuyang.auto.UserAction"
autowire="byType">
</bean>
</beans>

全局更改,加了一个标签default-autowire="byName"

 <?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd" default-autowire="byName"> <!-- 对象属性赋值 通过构造函数 -->
<bean id="user" class="com.liuyang.auto.User">
</bean>
<!-- dao注入 -->
<bean id="dao" class="com.liuyang.auto.UserDAO">
</bean> <!-- service注入 -->
<bean id="us" class="com.liuyang.auto.UserService">
</bean> <!-- action注入 ,,根据名称自动装配,userAction注入的属性,会去IOC容器中自动查找与属性同名的对象 --> <bean id="userAction" class="com.liuyang.auto.UserAction"
autowire="byType">
</bean>
</beans>

二、根据类型自动加载

 <?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd"> <!-- 对象属性赋值 通过构造函数 -->
<bean id="user" class="com.liuyang.auto.User">
</bean>
<!-- dao注入 -->
<bean id="dao" class="com.liuyang.auto.UserDAO">
</bean> <!-- service注入 -->
<bean id="us" class="com.liuyang.auto.UserService" autowire="byType">
</bean> <!-- action注入 ,,根据名称自动装配,userAction注入的属性,会去IOC容器中自动查找与属性同名的对象 -->
<bean id="userAction" class="com.liuyang.auto.UserAction"
autowire="byType">
</bean>
</beans>

全局加default-autowire="byType"

必须确保改类型在IOC容器中只有一个对象;否则报错

总结:

        Spring提供的自动装配主要是为了简化配置; 但是不利于后期的维护。(一般不推荐使用)

Spring框架总结(五)的更多相关文章

  1. 23种设计模式之自定义Spring框架(五)

    7,自定义Spring框架 7.1 spring使用回顾 自定义spring框架前,先回顾一下spring框架的使用,从而分析spring的核心,并对核心功能进行模拟. 数据访问层.定义UserDao ...

  2. Spring框架第五篇之Spring与AOP

    一.AOP概述 AOP(Aspect Orient Programming),面向切面编程,是面向对象编程OOP的一种补充.面向对象编程是从静态角度考虑程序的结构,而面向切面编程是从动态角度考虑程序运 ...

  3. Spring框架系列(五)--面向切面AOP

    背景: 当需要为多个不具有继承关系的对象引入一个公共行为,例如日志.权限验证.事务等功能时,如果使用OOP,需要为每个对象引入这些公共 行为.会产生大量重复代码,并且不利用维护.AOP就是为了解决这个 ...

  4. 跟着刚哥学习Spring框架--AOP(五)

    AOP AOP(Aspect Oriented Programming),即面向切面编程,可以说是OOP(Object Oriented Programming,面向对象编程)的补充和完善.OOP引入 ...

  5. spring框架学习(五)注解

    注解Annotation,是一种类似注释的机制,在代码中添加注解可以在之后某时间使用这些信息.跟注释不同的是,注释是给我们看的,Java虚拟机不会编译,注解也是不编译的,但是我们可以通过反射机制去读取 ...

  6. OSGI企业应用开发(五)使用Blueprint整合Spring框架(二)

    上篇文章中,我们开发了一个自定义的Bundle,接着从网络中下载到Spring和Blueprint的Bundle,然后复制到DynamicRuntime项目下. 需要注意的是,这些Bundle并不能在 ...

  7. 设计模式(五)——原型模式(加Spring框架源码分析)

    原型模式 1 克隆羊问题 现在有一只羊 tom,姓名为: tom, 年龄为:1,颜色为:白色,请编写程序创建和 tom 羊 属性完全相同的 10 只羊. 2 传统方式解决克隆羊问题 1) 思路分析(图 ...

  8. 设计模式(十五)——命令模式(Spring框架的JdbcTemplate源码分析)

    1 智能生活项目需求 看一个具体的需求 1) 我们买了一套智能家电,有照明灯.风扇.冰箱.洗衣机,我们只要在手机上安装 app 就可以控制对这些家电工作. 2) 这些智能家电来自不同的厂家,我们不想针 ...

  9. 第五周 Spring框架

    一.Spring框架设计 Spring framework 6大模块 1.1 Spring AOP AOP: 面向切面编程 Spring 早期版本的核心功能,管理对象声明周期和对象装配 为了实现管理和 ...

  10. Spring 框架的架包分析、功能作用、优点,及jar架包简介

    Spring 框架的架包详解    Spring的作用     Spring的优势  由于刚搭建完一个MVC框架,决定分享一下我搭建过程中学习到的一些东西.我觉得不管你是个初级程序员还是高级程序员抑或 ...

随机推荐

  1. wamp环境的安装

    wamp:Windows + Apache + MySQL + PHP 首先,在D盘根目录下新建目录wamp,wamp下建目录www和bin,www目录作为网站文件入口目录,bin下建目录Apache ...

  2. Druid.io系列(五):查询过程

    原文链接: https://blog.csdn.net/njpjsoftdev/article/details/52956194 Druid使用JSON over HTTP 作为底层的查询语言,不过强 ...

  3. Centos 7.0 下安装 Zabbix server 3.0服务器的安装及 监控主机的加入(1)

    一.本系列分为6部分 1.Centos 7.0 下安装 Zabbix server 3.0服务器的安装及 监控主机的加入 2.Centos 6.5 下安装 Zabbix server 3.0服务器的安 ...

  4. libvirt- Virsh 所有命令详单

    help            打印帮助    attach-device   从一个XML文件附加装置    attach-disk     附加磁盘设备    attach-interface 获 ...

  5. Http中Cookie的HttpOnly和secure属性

    Cookie语法: Cookie通常是作为HTTP 应答头发送给客户端的,下面的例子展示了相应的语法(注意,HttpOnly属性对大小写不敏感):  Set-Cookie: =[; =]   [; e ...

  6. c++builder自定义控件

    c++builder自定义控件 http://docwiki.embarcadero.com/CodeExamples/XE8/en/RegisterComponents_%28C%2B%2B%29 ...

  7. Linux运维常见故障排查和处理的33个技巧汇总

    作为linux运维,多多少少会碰见这样那样的问题或故障,从中总结经验,查找问题,汇总并分析故障的原因,这是一个Linux运维工程师良好的习惯.每一次技术的突破,都经历着苦闷,伴随着快乐,可我们还是执着 ...

  8. 【307】◀▶ Python 相关功能实现

    目录: 1. Python 实现下载文件 2. 删除文件名中的点 “.” 3. 让 Python 脚本暂停执行的方法 4. 添 1. Python 实现下载文件 使用 urllib 模块提供的 url ...

  9. f.lux Ubuntu 下进行安装

    这几天在搞Ubuntu 看的是我眼睛特痛,于是查了一下,有Linux 版的f.lux 于是我就行了一番的安装. 步骤         命令行 1.             sudo add-apt-r ...

  10. Delphi三层开发小技巧:TClientDataSet的Delta妙用

    Delphi三层开发小技巧:TClientDataSet的Delta妙用 转载 2014年10月13日 09:41:14 标签: 三层 / ClientDataSet 318 from :http:/ ...