spring中的依赖注入有什么用?

平常在做项目的时候我没用到过依赖注入这种东西,像数据这种不都是前台传过来然后在controller中接受不就行了吗?但是我在网上学习spring时全都是在配置文件中配置,... 平常在做项目的时候我没用到过依赖注入这种东西,像数据这种不都是前台传过来然后在controller中接受不就行了吗?但是我在网上学习spring时全都是在配置文件中配置,注入各种数据,不是很明白,请教各位大佬。 展开
 我来答
Bakerzks
2018-07-18 · NullPointExceptions
Bakerzks
采纳数:251 获赞数:1072

向TA提问 私信TA
展开全部

依赖注入是spring的的两大核心之一,也叫控制反转,他的作用是将创建对象的管理交给spring容器,以前写项目会用new people的方式来创建一个people类,现在用了spring后,可以在xml中配置,也可以用注解的方式,在class文件开始部分写下面的代码,然后在这个class文件中使用到people就可以直接用people,而不需要用new来创建了,这样也大大降低了耦合性,

数据的确还是前台传到controller里,但是你在写controller的时候是不是可以通过注解的方式创建类,而不需要new了呢?或者在调用service方法的时候,不需要再new service类了,而是直接通过注解的方式在文件头声明下,后面就 直接使用了呢?

@Resources
private People people;
鸿哥很忙
2018-07-19 · TA获得超过759个赞
知道小有建树答主
回答量:204
采纳率:100%
帮助的人:135万
展开全部
先看一段代码
假设你编写了两个类,一个是人(Person),一个是手机(Mobile)。
人有时候需要用手机打电话,需要用到手机的dialUp方法。
传统的写法是这样:

Java code

public class Person{
public boolean makeCall(long number){
Mobile mobile=new Mobile();
return mobile.dialUp(number);
}
}

也就是说,类Person的makeCall方法对Mobile类具有依赖,必须手动生成一个新的实例new Mobile()才可以进行之后的工作。
依赖注入的思想是这样,当一个类(Person)对另一个类(Mobile)有依赖时,不再该类(Person)内部对依赖的类(Moblile)进行实例化,而是之前配置一个beans.xml,告诉容器所依赖的类(Mobile),在实例化该类(Person)时,容器自动注入一个所依赖的类(Mobile)的实例。
接口:

Java code

public Interface MobileInterface{
public boolean dialUp(long number);
}

Person类:

Java code

public class Person{
private MobileInterface mobileInterface;
public boolean makeCall(long number){
return this.mobileInterface.dialUp(number);
}
public void setMobileInterface(MobileInterface mobileInterface){
this.mobileInterface=mobileInterface;
}
}
在xml文件中配置依赖关系

Java code

这样,Person类在实现拨打电话的时候,并不知道Mobile类的存在,它只知道调用一个接口MobileInterface,而MobileInterface的具体实现是通过Mobile类完成,并在使用时由容器自动注入,这样大大降低了不同类间相互依赖的关系。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
预言成真666
2018-07-18 · TA获得超过110个赞
知道小有建树答主
回答量:247
采纳率:81%
帮助的人:80万
展开全部
你contoller 里面注入service 不就是依赖注入么 一个@Autowired很简单就搞定了
为什么呢?你操作数据库所需要的各种实例怎么来的 空来的?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式