【spring】自动装配
山顶洞人方法: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】自动装配相关推荐
- Spring 自动装配 ‘byType’
转载自 Spring 自动装配 'byType' Spring 自动装配 'byType' 这种模式由属性类型指定自动装配.Spring 容器看作 beans,在 XML 配置文件中 beans ...
- Spring 自动装配 ‘byName’
转载自 Spring 自动装配 'byName' Spring 自动装配 'byName' 这种模式由属性名称指定自动装配.Spring 容器看作 beans,在 XML 配置文件中 beans 的 ...
- spring自动装配依赖包_解决Spring自动装配中的循环依赖
spring自动装配依赖包 我认为这篇文章是在企业应用程序开发中使用Spring的最佳实践. 使用Spring编写企业Web应用程序时,服务层中的服务量可能会增加. 服务层中的每个服务可能会消耗其他服 ...
- Java的注解机制——Spring自动装配的实现原理
JDK1.5加入了对注解机制的支持,实际上我学习Java的时候就已经使用JDK1.6了,而且除了@Override和@SuppressWarnings(后者还是IDE给生成的--)之外没接触过其他的. ...
- Spring自动装配----注解装配----Spring自带的@Autowired注解
Spring自动装配----注解装配----Spring自带的@Autowired注解 父类 package cn.ychx;public interface Person {public void ...
- spring自动装配、注解
spring自动装配 Spring 自动装配 byName 这种模式由属性名称指定自动装配.Spring 容器看作 beans,在 XML 配置文件中 beans 的 auto-wire 属性设置为 ...
- Spring自动装配(autowire)篇
什么是自动装配 自动装配帮我们省去了 property标签配置操作,Spring会自动根据 属性名称,类型,构造器来进行自动注入. 例如不进行自动装配配置如下: <bean id="u ...
- 一步一步手绘Spring DI运行时序图(Spring 自动装配之依赖注入)
相关内容: 架构师系列内容:架构师学习笔记(持续更新) 一步一步手绘Spring IOC运行时序图一(Spring 核心容器 IOC初始化过程) 一步一步手绘Spring IOC运行时序图二(基于XM ...
- 第六篇 Spring 自动装配
<Spring>篇章整体栏目 ----------------------------- [第一章]spring 概念与体系结构 [第二章]spring IoC 的工作原理 [第三章]sp ...
- (二)Spring自动装配
Spring自动装配 为了减少XML的配置数量.Spring提供了几种技巧来解决这一问题: 自动装配(autowiring): 有助于减少<property>元素和<constroc ...
最新文章
- Python 元组遍历排序操作方法
- 计算机道德 英语作文,公共道德英语作文
- abrels.inc.php_setlist.js
- Consider defining a bean of type ‘java.lang.String‘ in your configuration
- mysql schema数据混乱_MySQL之Schema与数据类型优化
- Eclipse tomcat先启动成功,然后再报超时原因之一
- python列表排序sort_python列表排序方法reverse、sort、sorted
- ThreadLocal工具类
- canvas卡通兔子萝卜飞行动画
- crt 生成pem_linux下pem转crt命令_crt转pem方法
- GitHub上最火的7个spring cloud开源项目,对新手太友好了
- 从零开始学五线谱_从零开始学简谱(快速入门)
- 关于电容、电阻并联接地
- ssm教育机构管理系统毕业设计源码010224
- 陆奇的离职对今后的百度业务发展有影响吗?
- C语言经典例题100道(辗转相除求最大公约数和最小公倍数)
- IBM大面积辞退40岁+的员工,如何避免可怕的中年危机?
- 如何轻松停用WordPress插件(入门指南)
- 麻省理工大学线性代数:三十三、单元检测3复习
- 楷书书法规则_硬笔书法 楷书规则
热门文章
- 关于 Rocksdb 性能分析 需要知道的一些“小技巧“ -- perf_context的“内功” ,systemtap、perf、 ftrace的颜值
- MQTT Qos类型解释
- casperjs 安装试用
- 简单几步让CentOS系统时间同步
- 转:【小作品】STM32无线WIFI视频小车制作剖析(下)
- SparkSQL 与 Spark Core的关系
- java中最常用jar包的用途说明,适合初学者
- 当年学生的一件事,心情很难过
- 软件体系架构模式之三微内核体系架构
- C#精髓【月儿原创】第二讲 WMI完美秀出CPU编号厂商主频百分比等全部信息