山顶洞人方法:aotowire

UserDao.java

代码实现:

public class UserDao {private DBUtil dbu;public DBUtil getDbu() {return dbu;}public void setDbu(DBUtil dbu) {this.dbu = dbu;}public void test() {System.out.println(dbu);}
}

DBUtil.java

代码实现:

算了,不实现了,DBUtil.java有就行了

配置文件:

代码实现:

    <bean id="dbutil" class="springboottest.ioc.speltest.DBUtil"></bean><bean id="userdao" class="springboottest.ioc.speltest.UserDao" autowire="byType">

注:

此时可能出现一个问题:

当要自动装配一个接口时,该接口有两个实现类,此时计算机就不知道选哪个,所以会报错

错码实现:

DBservice.java

public class DBService {private TwoSonTest ts;public TwoSonTest getTs() {return ts;}public void setTs(TwoSonTest ts) {this.ts = ts;}public void test() {System.out.println("=======>" + ts);}
}

配置文件:

    <bean id="firstsontest" class="springboottest.ioc.FirstSon" ></bean><bean id="secondSon" class="springboottest.ioc.SecondSon" ></bean><bean id="DBService" class="springboottest.ioc.spel.DBService" autowire="byType"></bean>

注:firstsontest.java/secondsontest.java是接口twosontest.java的实现类

Exception in thread "main" org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'DBService' defined in class path resource [config/applicationContext.xml]: Unsatisfied dependency expressed through bean property 'ts'; nested exception is org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type 'springboottest.ioc.TwoSonTest' available: expected single matching bean but found 2: firstsontest,secondSon

解决方法:

使用byName的方法

代码实现:

    <bean id="ts" class="springboottest.ioc.FirstSon" ></bean><bean id="secondSon" class="springboottest.ioc.SecondSon" ></bean><bean id="DBService" class="springboottest.ioc.spel.DBService" autowire="byName">

注:

(1)使用byName的方法必须将DBService.java中的变量名和一个bean的名称一致

(2)使用byName的方法不会报错,但是如果将对象打印出来为null则说明没有找到名称一致的bean对象

扫描方法自动装配

DBUtil.java

代码实现:

package springboottest.ioc.auto;import org.springframework.stereotype.Repository;@Repository
public class DButil {private String constant;}

UserDao.java

代码实现:

package springboottest.ioc.auto;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;@Repository
public class UserDao {@Autowiredprivate DButil dbu;public void test() {System.out.println(dbu);}
}

配置文件

代码实现:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:context="http://www.springframework.org/schema/context"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:p="http://www.springframework.org/schema/p"xsi:schemaLocation="http://www.springframework.org/schema/beanshttps://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttps://www.springframework.org/schema/context/spring-context.xsd"><context:component-scan base-package="springboottest.ioc.auto"></context:component-scan></beans>       

使用步骤:

1、在配置文件中添加如上述代码,在base-package的那一项添加文件所在的jar包名称

2、在需要扫描的文件添加注解

3、如果想要在类里添加自定义对象

在方法上或者在变量上添加@Autowired注解,如果是一个接口且该接口有多个实现类,则需要

【spring】自动装配相关推荐

  1. Spring 自动装配 ‘byType’

    转载自   Spring 自动装配 'byType' Spring 自动装配 'byType' 这种模式由属性类型指定自动装配.Spring 容器看作 beans,在 XML 配置文件中 beans ...

  2. Spring 自动装配 ‘byName’

    转载自  Spring 自动装配 'byName' Spring 自动装配 'byName' 这种模式由属性名称指定自动装配.Spring 容器看作 beans,在 XML 配置文件中 beans 的 ...

  3. spring自动装配依赖包_解决Spring自动装配中的循环依赖

    spring自动装配依赖包 我认为这篇文章是在企业应用程序开发中使用Spring的最佳实践. 使用Spring编写企业Web应用程序时,服务层中的服务量可能会增加. 服务层中的每个服务可能会消耗其他服 ...

  4. Java的注解机制——Spring自动装配的实现原理

    JDK1.5加入了对注解机制的支持,实际上我学习Java的时候就已经使用JDK1.6了,而且除了@Override和@SuppressWarnings(后者还是IDE给生成的--)之外没接触过其他的. ...

  5. Spring自动装配----注解装配----Spring自带的@Autowired注解

    Spring自动装配----注解装配----Spring自带的@Autowired注解 父类 package cn.ychx;public interface Person {public void ...

  6. spring自动装配、注解

    spring自动装配 Spring 自动装配 byName 这种模式由属性名称指定自动装配.Spring 容器看作 beans,在 XML 配置文件中 beans 的 auto-wire 属性设置为 ...

  7. Spring自动装配(autowire)篇

    什么是自动装配 自动装配帮我们省去了 property标签配置操作,Spring会自动根据 属性名称,类型,构造器来进行自动注入. 例如不进行自动装配配置如下: <bean id="u ...

  8. 一步一步手绘Spring DI运行时序图(Spring 自动装配之依赖注入)

    相关内容: 架构师系列内容:架构师学习笔记(持续更新) 一步一步手绘Spring IOC运行时序图一(Spring 核心容器 IOC初始化过程) 一步一步手绘Spring IOC运行时序图二(基于XM ...

  9. 第六篇 Spring 自动装配

    <Spring>篇章整体栏目 ----------------------------- [第一章]spring 概念与体系结构 [第二章]spring IoC 的工作原理 [第三章]sp ...

  10. (二)Spring自动装配

    Spring自动装配 为了减少XML的配置数量.Spring提供了几种技巧来解决这一问题: 自动装配(autowiring): 有助于减少<property>元素和<constroc ...

最新文章

  1. Python 元组遍历排序操作方法
  2. 计算机道德 英语作文,公共道德英语作文
  3. abrels.inc.php_setlist.js
  4. Consider defining a bean of type ‘java.lang.String‘ in your configuration
  5. mysql schema数据混乱_MySQL之Schema与数据类型优化
  6. Eclipse tomcat先启动成功,然后再报超时原因之一
  7. python列表排序sort_python列表排序方法reverse、sort、sorted
  8. ThreadLocal工具类
  9. canvas卡通兔子萝卜飞行动画
  10. crt 生成pem_linux下pem转crt命令_crt转pem方法
  11. GitHub上最火的7个spring cloud开源项目,对新手太友好了
  12. 从零开始学五线谱_从零开始学简谱(快速入门)
  13. 关于电容、电阻并联接地
  14. ssm教育机构管理系统毕业设计源码010224
  15. 陆奇的离职对今后的百度业务发展有影响吗?
  16. C语言经典例题100道(辗转相除求最大公约数和最小公倍数)
  17. IBM大面积辞退40岁+的员工,如何避免可怕的中年危机?
  18. 如何轻松停用WordPress插件(入门指南)
  19. 麻省理工大学线性代数:三十三、单元检测3复习
  20. 楷书书法规则_硬笔书法 楷书规则

热门文章

  1. 关于 Rocksdb 性能分析 需要知道的一些“小技巧“ -- perf_context的“内功” ,systemtap、perf、 ftrace的颜值
  2. MQTT Qos类型解释
  3. casperjs 安装试用
  4. 简单几步让CentOS系统时间同步
  5. 转:【小作品】STM32无线WIFI视频小车制作剖析(下)
  6. SparkSQL 与 Spark Core的关系
  7. java中最常用jar包的用途说明,适合初学者
  8. 当年学生的一件事,心情很难过
  9. 软件体系架构模式之三微内核体系架构
  10. C#精髓【月儿原创】第二讲 WMI完美秀出CPU编号厂商主频百分比等全部信息