设值注入:
先通过无参数的构造函数创建一个Bean实例,然后调用对应的setter方法注入依赖关系;
配置文件:

  1. <?xml version="1.0" encoding="GBK"?>
  2. <!-- Spring配置文件的根元素,使用spring-beans-4.0.xsd语义约束 -->
  3. <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xmlns="http://www.springframework.org/schema/beans"
  5. xsi:schemaLocation="http://www.springframework.org/schema/beans
  6. http://www.springframework.org/schema/beans/spring-beans-4.0.xsd">
  7. <bean id="chinese" class="org.crazyit.app.service.impl.Chinese">
  8. <property name="axe" ref="steelAxe"/>
  9. <property name="Stuname" value="zhangsan"/>
  10. </bean>
  11. <bean id="stoneAxe" class="org.crazyit.app.service.impl.StoneAxe"/>
  12. <bean id="steelAxe" class="org.crazyit.app.service.impl.SteelAxe"/>
  13. </beans>



构造注入:
直接调用有参数的构造器,当bean实例创建完成后,已经完成了依赖关系的注入;
配置文件

  1. <?xml version="1.0" encoding="GBK"?>
  2. <!-- Spring配置文件的根元素,使用spring-beans-4.0.xsd语义约束 -->
  3. <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xmlns="http://www.springframework.org/schema/beans"
  5. xsi:schemaLocation="http://www.springframework.org/schema/beans
  6. http://www.springframework.org/schema/beans/spring-beans-4.0.xsd">
  7. <bean id="chinese" class="org.crazyit.app.service.impl.Chinese">
  8. <constructor-arg ref="steelAxe" type="org.crazyit.app.service.Axe"/>
  9. <constructor-arg value="zhangsan" type="String"/>
  10. </bean>
  11. <bean id="stoneAxe" class="org.crazyit.app.service.impl.StoneAxe"/>
  12. <bean id="steelAxe" class="org.crazyit.app.service.impl.SteelAxe"/>
  13. </beans>

比较:
建议使用 设值注入;
对于依赖关系无需变化的注入,尽量采用构造注入;而其他依赖关系的注入,则优先考虑设值注入;

【Spring学习笔记-2.1】Spring的设值注入和构造注入的更多相关文章

  1. 【Spring学习笔记-0】Spring开发所需要的核心jar包

    spring开发所需要的核心jar 1. libs目录下的核心jar包: 2. common-logging-xxx.jar 来自为知笔记(Wiz) 附件列表

  2. 【Spring学习笔记-MVC-2】spring导出Excel

    说明: 1.结合Spring MVC实现Excel导出功能: 2. 在MVC配置文件中配置Excel视图解析器: 需要的jar包 以poi开头的jar包都是必须的 web.xml <?xml v ...

  3. 【Spring学习笔记-5】Spring中的抽象bean以及bean继承

    *.hl_mark_KMSmartTagPinkImg{background-color:#ffaaff;}*.hl_mark_KMSmartTagBlueImg{background-color:# ...

  4. 【Spring学习笔记-MVC-16】Spring MVC之重定向-解决中文乱码

    概述 spring MVC框架controller间跳转,需重定向,主要有如下三种: 不带参数跳转:形如:http://localhost:8080/SpringMVCTest/test/myRedi ...

  5. 【Spring学习笔记-MVC-15】Spring MVC之异常处理

    作者:ssslinppp       1. 描述 在J2EE项目的开发中,不管是对底层的数据库操作过程,还是业务层的处理过程,还是控制层的处理过程,都不可避免会遇到各种可预知的.不可预知的异常需要处理 ...

  6. 【Spring学习笔记-MVC-14】Spring MVC对静态资源的访问

    作者:ssslinppp       参考链接: http://www.cnblogs.com/luxh/archive/2013/03/14/2959207.html  http://www.cnb ...

  7. 【Spring学习笔记-MVC-13】Spring MVC之文件上传

    作者:ssslinppp       1. 摘要 Spring MVC为文件上传提供了最直接的支持,这种支持是通过即插即用的MultipartResolve实现的.Spring使用Jakarta Co ...

  8. 【Spring学习笔记-MVC-12】Spring MVC视图解析器之ResourceBundleViewResolver

    场景 当我们设计程序界面的时候,中国人希望界面是中文,而美国人希望界面是英文. 我们当然希望后台代码不需改变,系统能够通过配置文件配置,来自己觉得是显示中文界面还是英文界面. 这是,Spring mv ...

  9. 【Spring学习笔记-MVC-10】Spring MVC之数据校验

    作者:ssslinppp       1.准备 这里我们采用Hibernate-validator来进行验证,Hibernate-validator实现了JSR-303验证框架支持注解风格的验证.首先 ...

  10. Spring学习笔记—最小化Spring XML配置

    自动装配(autowiring)有助于减少甚至消除配置<property>元素和<constructor-arg>元素,让Spring自动识别如何装配Bean的依赖关系. 自动 ...

随机推荐

  1. SQLI DUMB SERIES-3

    less3 输入?id=1' 说明输入的id旁边加了单引号和括号('id'),直接在1后面加入“ ') ”,闭合前面的单引号和括号. 方法同less1相同. 例如:查询PHP版本和数据库名字 ?id= ...

  2. loadrunner如何对mysql进行增删改查

    libraries.zip  地址:链接:https://pan.baidu.com/s/1kIZ2aBCOFSJ9l727MxgIKQ 密码:40vq *   说明一下,因为 lr 有很多库文件都没 ...

  3. django的url分配和url捕获参数

    django的url分配 一般视图模块(views.py)都放在自己所属的app目录下,在app目录下新建路径模块(urls.py),由app目录下的urls.py来分配当前app的路径. 在app目 ...

  4. [Educational Codeforces Round 55 (Rated for Div. 2)][C. Multi-Subject Competition]

    https://codeforc.es/contest/1082/problem/C 题目大意:有m个类型,n个人,每个人有一个所属类型k和一个能力v,要求所选的类型的人个数相等并且使v总和最大(n, ...

  5. 《DSP using MATLAB》Problem 6.18

    代码: %% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ %% Output In ...

  6. Java中类的构造方法

    constructor:构造函数. 在创建对象的时候,对象成员可以由构造函数方法进行初始化. new对象时,都是用构造方法进行实例化的: 例如:Test test = new Test("a ...

  7. Centos7使用PXE+Kickstart无人值守安装服务

    首先,关闭selinux和防火墙(二次修改版本) 我们需要安装的软件如下 dhcp(用来获取ip) tftp-server httpd syslinux(不安装这个后面会没有pxelinux.0这个文 ...

  8. Connecting Elixir Nodes with libcluster, locally and on Kubernetes

    转自:https://www.poeticoding.com/connecting-elixir-nodes-with-libcluster-locally-and-on-kubernetes/ Tr ...

  9. oracle-sql优化器

    优化器optimizer Oracle 执行计划(Explain Plan) 说明 http://langgufu.iteye.com/blog/2158163 explain plan是一个dml语 ...

  10. day 33 什么是线程? 两种创建方式. 守护线程. 锁. 死锁现象. 递归锁. GIL锁

    一.线程     1.进程:资源的分配单位    线程:cpu执行单位(实体) 2.线程的创建和销毁开销特别小 3.线程之间资源共享,共享的是同一个进程中的资源 4.线程之间不是隔离的 5.线程可不需 ...