一  :在 Spring 配置文件中对象名和 ref=”id” ,id 名相同使用自动注入,可以不配置<property/>,对应的注解@Autowired的作用

二: 两种配置办法

(1) 在<bean>中通过 autowire=”” 配置,只对这个<bean>生效

(2) 在<beans>中通过 default-autowire=””配置,表当当前文件中所有<bean>都是全局配置内容

三:autowired的取值

3.1 default: 默认值,根据全局 default-autowire=””值.默认全局和局部都没有配置情况下,相当于 no
3.2 no: 不自动注入
3.3 byName: 通过名称自动注入.在 Spring 容器中找类的 Id,如果有一个bean的id与当前bean的属性的变量名一样,就注入
3.4 byType: 根据类型注入.
  3.4.1 spring 容器中不可以出现两个相同类型的<bean>
3.5 constructor: 根据构造方法注入.
  3.5.1 提供对应参数的构造方法
  3.5.2 底层使用 byName, 构造方法参数名和其他<bean>的 id相同.

     <bean id="people" class="com.spring.pojo.People" autowire="constructor">
<!-- <property name="teacher" ref="teacher"></property> -->
</bean>
<bean id="teacher" class="com.spring.pojo.Teacher"></bean>

如果bean  people这个bean要注入teacher这个bean ,且采用contructor方式,那么bean people代表的类必须有一个构造方法,且构造方法中必须有一个参数,参数的类型是 bean teacher对应的类的类型,且参数名称必须是“teacher”,即被注入bean的id定,要与接受注入的类的构造方法的参数一样,所以本质是byName

spring学习 十五 spring的自动注入的更多相关文章

  1. Spring学习(十五)----- Spring AOP通知实例 – Advice

    Spring AOP(面向方面编程)框架,用于在模块化方面的横切关注点.简单得说,它只是一个拦截器拦截一些过程,例如,当一个方法执行,Spring AOP 可以劫持一个执行的方法,在方法执行之前或之后 ...

  2. Spring学习十五----------Spring AOP API的Pointcut、advice及 ProxyFactoryBean相关内容

    © 版权声明:本文为博主原创文章,转载请注明出处 实例: 1.项目结构 2.pom.xml <project xmlns="http://maven.apache.org/POM/4. ...

  3. spring boot(十五)spring boot+thymeleaf+jpa增删改查示例

    快速上手 配置文件 pom包配置 pom包里面添加jpa和thymeleaf的相关包引用 <dependency> <groupId>org.springframework.b ...

  4. Spring学习十四----------Spring AOP实例

    © 版权声明:本文为博主原创文章,转载请注明出处 实例 1.项目结构 2.pom.xml <project xmlns="http://maven.apache.org/POM/4.0 ...

  5. Spring 学习十五 AOP

    http://www.hongyanliren.com/2014m12/22797.html 1: 通知(advice): 就是你想要的功能,也就是安全.事物.日子等.先定义好,在想用的地方用一下.包 ...

  6. Spring学习(十九)----- Spring的五种事务配置详解

    前段时间对Spring的事务配置做了比较深入的研究,在此之间对Spring的事务配置虽说也配置过,但是一直没有一个清楚的认识.通过这次的学习发觉Spring的事务配置只要把思路理清,还是比较好掌握的. ...

  7. spring学习 十六 spring加载属性文件

    第一步:创建一个properties文件,以数据库链接作为实例db.properties jdbc.url=jdbc:mysql://192.168.153.128:3306/mybaties?cha ...

  8. spring学习 十八 spring的声明事物

    1.编程式事务: 1.1 由程序员编程事务控制代码.commit与rollback都需要程序员决定在哪里调用,例如jdbc中conn.setAutoCimmit(false),conn.commit( ...

  9. Spring学习(十六)----- Spring AOP实例(Pointcut(切点),Advisor)

    在上一个Spring AOP通知的例子,一个类的整个方法被自动拦截.但在大多数情况下,可能只需要一种方式来拦截一个或两个方法,这就是为什么引入'切入点'的原因.它允许你通过它的方法名来拦截方法.另外, ...

随机推荐

  1. 【scrapy】关于xpath helper中能匹配,但是在程序里匹配为none的问题

    原本使用xpath helper匹配的时候还是好好的,然鹅,把这个.//*[@id='novelInfo']/table/tbody/tr[3]/td[1]/复制到代码里就不行了,debug的时候显示 ...

  2. PHP抽象方法、抽象类以及接口

     1.什么是抽象方法?    我们在类里面定义的没有方法提的方法就是抽象方法.所谓的没有方法体指的是,在声明的时候没有大括号以及其中的内容,而是直接在声明时在方法名后加上分号结束,另外在声明抽象方法时 ...

  3. Jmeter 录制脚本(一)

    第一种方法:使用Badboy来录制脚本 1. 启动Badboy, 工具栏上的红色圆形按钮是默认启动的,在地址栏直接输入被测试WEB项目的地址,然后点击右边的箭头. 2.录制完成后,点击工具栏上的黑色按 ...

  4. Chrome控制台格式化输出

    一 格式化输出文字 console.log('%c你好','color:green;'); console.log('%c你好%c啊','color:green;','color:blue;'); 二 ...

  5. 100-days: Three

    Title: Singapore(新加坡) set to raise retirement ages as seniors stay healthier be set to do sth.  准备做某 ...

  6. java中关于null的一些理解

    1.null是Java中的关键字,像public.static.final.它是大小写敏感的,你不能将null写成Null或NULL,编译器将不能识别它们然后报错. 2.null是任何引用类型的默认值 ...

  7. 【c++】c++ 11之lamba表达式

    C++ lambda表达式与函数对象 lambda表达式是C++11中引入的一项新技术,利用lambda表达式可以编写内嵌的匿名函数,用以替换独立函数或者函数对象,并且使代码更可读.但是从本质上来讲, ...

  8. python+selenium环境安装

    目前 selenium 版本已经升级到 3.7了,网上的大部分教程是基于 2.x写的,所 以在学习前先要弄清楚版本号,这点非常重要.本系列依然以 selenium2 为基础, 目前 selenium3 ...

  9. 数据节点-df 无法输出结果

    1. 删除了 a 机器的/opt/data 目录 2.b与c 机器挂载了 a机器的/opt/data 3.df -h 无法输出结果 最后参考:http://blog.csdn.net/lufeisan ...

  10. [z]libevent入门教程:Echo Server based on libevent 不指定

    [z]https://www.felix021.com/blog/read.php?2068 花了两天的时间在libevent上,想总结下,就以写简单tutorial的方式吧,貌似没有一篇简单的说明, ...