返回信息流小弟有一些JSF的基础,略懂JSP,现在做项目要求把JSF和spring和整合起来,看了好几天的spring了,对这个依赖注入还是不甚理解,各路大侠能用自己的话来描述一下什么是依赖注入么。。。。跪谢[ema1]
这是一条镜像帖。来源:北邮人论坛 / java / #23866同步于 2012/11/12
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
[问题]关于spring的依赖注入
cyf333333
2012/11/12镜像同步6 回复
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
一个类User 有个方法比如说是addToClass(int i)把他加入到i班去 我们用到一个dao将他存储到数据库, 一般方法会在User类里写一个dao属性 然后new 一个dao 在方法里用 dao里面配置一些数据库的东西 这样 这个dao 和User类耦合度比较紧 ,代码污染重,spring的思想是 你就在User里声明一个dao 然后get set 方法,用xml 配置, 你的User中写的只是声明一个dao get set方法,配置是在xml中,下次改的时候可以改xml文即可。当然dao这个类你也可以继续用spring进行管理。
依赖查询
public class DbWorker {
Connection conn = SomeGlobalClassInMyProject.getDbConn();
// 显然你换个工程,这个类这就不能用了。
}
依赖注入
public class DbWorker {
Connection conn = null;
public setConn(Connection conn) { this.conn=conn; }
}
public class Project1 {
public static void main(String[] args) {
DbWorker d = new DbWorker();
Connection conn = new FooDatabaseConnection();
d.setConn(conn); //起码换了工程,DbWorker照样用。
}
}
public class Project2 {
public static void main(String[] args) {
DbWorker d = new DbWorker();
Connection conn = BarDbFactory.getConnection();
d.setConn(conn); //起码换了工程,DbWorker照样用。
}
}
【 在 cyf333333 的大作中提到: 】
: 小弟有一些JSF的基础,略懂JSP,现在做项目要求把JSF和spring和整合起来,看了好几天的spring了,对这个依赖注入还是不甚理解,各路大侠能用自己的话来描述一下什么是依赖注入么。。。。跪谢
谢谢,慢慢理解了
【 在 feifeiflight 的大作中提到: 】
: 一个类User 有个方法比如说是addToClass(int i)把他加入到i班去 我们用到一个dao将他存储到数据库, 一般方法会在User类里写一个dao属性 然后new 一个dao 在方法里用 dao里面配置一些数据库的东西 这样 这个dao 和User类耦合度比较紧 ,代码污染重,spring的思想是 你就在User里声明一个dao 然后get set 方法,用xml 配置, 你的User中写的只是声明一个dao get set方法,配置是在xml中,下次改的时候可以改xml文即可。当然dao这个类你也可以继续用spring进行管理。
非常感谢你的代码
【 在 wks 的大作中提到: 】
: 依赖查询
: [code=java]
: public class DbWorker {
: ...................
补充一个: 什么叫做依赖。
class B
{
.....
A = new A();
......
}
如果没使用spring,这个时候,B需要一个A对象,必须要自己去new一个A。 B是依赖A的。 如上面的代码。
如果使用Spring,这个时候B需要的A是由Spring去给B添上的,不需要B自己去创建,就好比是Spring给B“注入”了一个A对象。这些都在spring的配置文件中实现。这个时候可以说“B 没那么依赖A了”。
学习了!
【 在 buptjunjun 的大作中提到: 】
: 补充一个: 什么叫做依赖。
: class B
: {
: ...................