Spring是如何实现注入的
4个回答
展开全部
3.2.1 接口注入(interface injection)
接口注入指的就是在接口中定义要注入的信息,并通过接口完成注入。结合前面的示例,其具体步骤如下。
(1)编写一个接口IBusiness,各种数据库的注入将通过这个接口进行。IBusiness.java的示例代码如下:
//******* IBusiness.java**************
}
(2)任何想要使用数据库实例的类都必须实现这个接口,业务逻辑类Business实现这个接口IBusiness。Business.java的示例代码如下:
//******* Business.java**************
this.db = db;
}
……
//根据注入的数据库类,从×××数据库中获取数据
public void getData() {
……
db.getData();
……
}
}
(3)编写测试类TestBusiness。TestBusiness.java的示例代码如下:
//******* TestBusiness.java**************
public class TestBusiness {
private Business business = new Business();
……
//根据注入的数据库类,从Oracle数据库中获取数据
public void getData() {
……
business. createDI (new OracleDataBase());
business.getData();
……
}
}
如果要完成依赖关系注入的对象,必须实现IBusiness接口。
3.2.2 Set注入(setter injection)
Set注入指的就是在接受注入的类中定义一个Set方法,并在参数中定义需要注入的元素。为了让类Business接受DataBase的注入,需要为它定义一个Set方法来接受DataBase的注入。Business.java的示例代码如下:
//******* Business.java**************
public class Business {
private DataBase db;
public void setDataBase(DataBase db) {
this.db = db;
}
……
//根据注入的数据库类,从×××数据库中获取数据
public void getData() {
……
db.getData();
……
}
}
更详细的代码,可以参看3.1节的第二个例子,采用的就是Set注入的方式。
3.2.3 构造注入(constructor injection)
构造注入指的就是在接受注入的类中定义一个构造方法,并在参数中定义需要注入的元素。为了让类Business接受DataBase的注入,需要为它定义一个构造方法,来接受DataBase的注入。Business.java的示例代码如下:
//******* Business.java**************
public class Business {
private DataBase db;
public Business (DataBase db) {
this.db = db;
}
……
//根据注入的数据库类,从×××数据库中获取数据
public void getData() {
……
db.getData();
……
}
}
接口注入指的就是在接口中定义要注入的信息,并通过接口完成注入。结合前面的示例,其具体步骤如下。
(1)编写一个接口IBusiness,各种数据库的注入将通过这个接口进行。IBusiness.java的示例代码如下:
//******* IBusiness.java**************
}
(2)任何想要使用数据库实例的类都必须实现这个接口,业务逻辑类Business实现这个接口IBusiness。Business.java的示例代码如下:
//******* Business.java**************
this.db = db;
}
……
//根据注入的数据库类,从×××数据库中获取数据
public void getData() {
……
db.getData();
……
}
}
(3)编写测试类TestBusiness。TestBusiness.java的示例代码如下:
//******* TestBusiness.java**************
public class TestBusiness {
private Business business = new Business();
……
//根据注入的数据库类,从Oracle数据库中获取数据
public void getData() {
……
business. createDI (new OracleDataBase());
business.getData();
……
}
}
如果要完成依赖关系注入的对象,必须实现IBusiness接口。
3.2.2 Set注入(setter injection)
Set注入指的就是在接受注入的类中定义一个Set方法,并在参数中定义需要注入的元素。为了让类Business接受DataBase的注入,需要为它定义一个Set方法来接受DataBase的注入。Business.java的示例代码如下:
//******* Business.java**************
public class Business {
private DataBase db;
public void setDataBase(DataBase db) {
this.db = db;
}
……
//根据注入的数据库类,从×××数据库中获取数据
public void getData() {
……
db.getData();
……
}
}
更详细的代码,可以参看3.1节的第二个例子,采用的就是Set注入的方式。
3.2.3 构造注入(constructor injection)
构造注入指的就是在接受注入的类中定义一个构造方法,并在参数中定义需要注入的元素。为了让类Business接受DataBase的注入,需要为它定义一个构造方法,来接受DataBase的注入。Business.java的示例代码如下:
//******* Business.java**************
public class Business {
private DataBase db;
public Business (DataBase db) {
this.db = db;
}
……
//根据注入的数据库类,从×××数据库中获取数据
public void getData() {
……
db.getData();
……
}
}
推荐于2016-05-29 · 知道合伙人互联网行家
关注
展开全部
在使用Spring的IOC功能的时候,Spring提供了集中注入方式:属性注入,构造函数注入和工厂方法注入,更多的时候是使用的属性注入,即set方法注入。使用set方法注入要求在写bean的配置文件的时候,需要我们手动设置properties。诸如:
[java] view plaincopy
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<bean id="testBean" class="com.jack.TestBean" scope="prototype"/>
<bean id="testAction" class="com.jack.TestAction" scope="prototype">
<property name="testBean" ref="testBean"/>
</bean>
</beans>
[java] view plaincopy
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<bean id="testBean" class="com.jack.TestBean" scope="prototype"/>
<bean id="testAction" class="com.jack.TestAction" scope="prototype">
<property name="testBean" ref="testBean"/>
</bean>
</beans>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Spring注入实际上就是配置,指明要调入的过程名和参数,看看配置文件就知道了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个不是几句话可以说得清楚的。建议去看书本。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询