文档章节

Spring 依赖注入(DI)

akane_oimo
 akane_oimo
发布于 06/18 23:39
字数 238
阅读 13
收藏 0

1、Setter方法注入:

通过设置方法注入依赖。这种方法既简单又常用。

类中为属性定义setXx'x()方法:

public class HelloWorldOutput{
    HelloWorld helloWorld;
	
    public void setHelloWorld(HelloWorld helloWorld){
        this.helloWorld= helloWorld;
    }
}

XML配置依赖注入:

<bean id="helloWorldOutput" class="com.HelloWorldOutput">
	<property name="HelloWorld">
		<ref bean="HelloWorld_one" />
	</property>
</bean>

<bean id="HelloWorld_one" class="com.HelloWorld_one" />
<bean id="HelloWorld_two" class="com.HelloWorld_two" />

2、构造函数注入:

类中实现构造函数:

public class HelloWorldOutput{
    Helloworld helloworld;
	
    HelloWorldOutput(Helloworld helloworld){
        this.helloworld= helloworld;
    }
}

XML配置文件中配置依赖:

<bean id="helloWorldOutput" class="com.HelloWorldOutput">
    <constructor-arg>
        <bean class="HelloWorld_one" />
    </constructor-arg>
</bean>

<bean id="HelloWorld_one" class="com.HelloWorld_one" />
<bean id="HelloWorld_two" class="com.HelloWorld_two" />

构造函数注入依赖:

一个类如果提供多种构造函数,可能造成歧义问题。比如:

public class HelloWorldOutput{
    private String id;
    private int num;
	
    public HelloWorldOutput(String id, int num) {
        this.id= id;
        this.num = num;
    }
    public HelloWorldOutput(int num, String id) {
        this.num = num;
        this.id= id;
    }
}

这时,可以为构造函数指定的确切数据类型:

<bean id="helloWorld" class="com.HelloWorld">	
    <constructor-arg type="java.lang.String">
        <value>188</value>
    </constructor-arg>
	
    <constructor-arg type="int">
        <value>28</value>
    </constructor-arg>
</bean>

 

© 著作权归作者所有

共有 人打赏支持
akane_oimo
粉丝 19
博文 129
码字总数 155529
作品 0
南京
其他
Spring IoC & DI

IOC诞生的历史 在没有IoC时,关联不同模块是通过类实例实现的,代码可能是这样子的: 当YourServiceImpl的接口不变时,只需要根据业务需要更换不同的YourService实现类即可。一旦更换实现类时...

classfly
06/18
0
0
Spring Dependency

我们知道Spring的最重要的核心是Ioc,有时候也被称为DI(Dependency Injection,依赖注入),那么关于Dependency,你了解多少呢? 之前我们有提到IOC和DI的关系与概念,我是把它们区分开了,所...

Real_man
05/20
0
0
spring面试题 对DI , AOP概念的理解

spring 的优点? 1.降低了组件之间的耦合性 ,实现了软件各层之间的解耦 2.可以使用容易提供的众多服务,如事务管理,消息服务等 3.容器提供单例模式支持 4.容器提供了AOP技术,利用它很容易...

罗荣熙
2012/11/12
0
0
Spring面试,IoC和AOP的理解

spring 的优点? 1.降低了组件之间的耦合性 ,实现了软件各层之间的解耦 2.可以使用容易提供的众多服务,如事务管理,消息服务等 3.容器提供单例模式支持 4.容器提供了AOP技术,利用它很容易...

Sandy_wu
2013/06/08
0
0
spring IOC/DI容器的理解

参与者:应用程序和spring 正向:现在的程序方向,A对象要使用B对象,现在是A里面直接创建B的实例,然后调用。 publc class A{ void t1(){ new B().t2(); } } public class B{ void t2(); 简...

君辰
2015/08/01
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Kafka技术资料总结(不断更新中)

1、Kafka实践:到底该不该把不同类型的消息放在同一个主题中

九州暮云
29分钟前
1
0
面向对象设计原则(OOP)

单一职责原则(Single responsibility principle)又称单一功能原则。它规定一个类应该只有一个发生变化的原因。 核心原则:低耦合,高内聚。 一个类,应该只有一个引起它变化的原因,也就是...

gackey
今天
4
0
C++ 锁

C++提供了两种常用的锁,std::lock_guard<Lockable &T>和std::unique_lock<Lockable &T>。通常使用场景下,这两个锁用法一致。即,在构造锁对象时上锁,在析构锁对象时解锁。使用户从上锁/解...

yepanl
今天
4
0
Kali Linux Docker 練習

docker pull kalilinux/kali-linux-docker docker run -t -i kalilinux/kali-linux-docker /bin/bash apt-get update apt-get install htop apt-get install nmap apt-get install wpscan ap......

BaiyuanLab
今天
4
0
通俗大白话来理解TCP协议的三次握手和四次分手

最近在恶补计算机网络方面的知识,之前对于TCP的三次握手和四次分手也是模模糊糊,对于其中的细节更是浑然不知,最近看了很多这方面的知识,也在系统的学习计算机网络,加深自己的CS功底,就...

onedotdot
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部