2 qq 39586869 qq_39586869 于 2017.09.08 11:32 提问

Spring的自动装配和自动注入

Spring的自动装配和自动注入是不是一个概念啊?很难理解自动装配是怎么装配,还有什么
自动注入的。。头大。。还有那个什么byType和byName这是什么?用这些东西想要达到
一个什么样的目的?还有setter注入的时候,我怎么没见xml里面有Setter??

那位大神能说明白点。。。

5个回答

Small_Mouse0
Small_Mouse0   Ds   Rxr 2017.09.08 11:56
已采纳

【1】自动注入是通过反射实现的,,你如果学过反射就会明白自动注入并不很难(想设计的跟spring一样完美,很有难度了),,基本原理很简单。

自动注入就是运行时,可以设置某个参数,
学过spring的话你会发现,,注入至少有两个条件(个人经验所得,,有漏洞还可以讨论)
【1】该类必须加spring的注解,让spring管理该类
【2】只能注入类的属性,你给方法里放一个对象,他是没办法注入的

【2】byType和byName,,只是一种注入规则,,
说白了,bean被创建出来会放在一个容器里(没记错的话是个map),,
注入的时候,根据名字选择,或者根据类型选择(遍历所有的bean即可,map的话可以通过映射更好的查找)

【3】用这些东西想要达到一个什么样的目的?
减少依赖达到设计的初衷“高内聚,低耦合”,,
面向对象设计原则,,迪米特原则【又叫最少知识原则,一个软件实体应当尽可能少的与其他实体发生相互作用。】
当然七大原则都是互通的,,注入影响最大的就是这个原则,,通过注入的方式让使用的那个类,不与另一个类产生直接的关系
配合面向接口编程,,很容易设计出可以灵活开闭的系统【 开闭原则(Open Close Principle)面向扩展开放,面向修改关闭】

【4】注入主要有两种,,setter注入,和构造器注入,,
配置bean的时候有两个标签,,

 <constructor-arg name="构造方法中变量名"></constructor-arg>
<property name="属性名"></property>

上面的那个是构造器注入,,下面那个是属性注入。。。

纯手码个人简介,,,,有问题还可以追问,,,有帮助请采纳 ……^.^

qq_39586869
qq_39586869 回复小鼠标丶: 上午就是老哥给解答的很不错,我采纳了,下午这个问你同样非常感谢老哥,必须采纳!
2 个月之前 回复
Small_Mouse0
Small_Mouse0 纯手码个人见解,,,,有问题还可以追问,,,有帮助请采纳 ……^.^
2 个月之前 回复
oops_bao
oops_bao   2017.09.08 15:42

自动装配和自动注入应该可以说是种功能、是种方式。1楼已经说得很清楚,要说概念的话,你可以看一下spring做那么多东西是想干嘛

参考http://blog.csdn.net/cdyjy_litao/article/details/8153319
(1)原始社会里,几乎没有社会分工。需要斧子的人(调用者)只能自己去磨一把斧子(被调用者)。对应的情形为:Java程序里的调用者自己创建被调用者。

(2)进入工业社会,工厂出现。斧子不再由普通人完成,而在工厂里被生产出来,此时需要斧子的人(调用者)找到工厂,购买斧子,无须关心斧子的制造过程。对应Java程序的简单工厂的设计模式。

(3)进入“按需分配”社会,需要斧子的人不需要找到工厂,坐在家里发出一个简单指令:需要斧子。斧子就自然出现在他面前。对应Spring的依赖注入。

qq_33727653
qq_33727653   2017.09.08 11:56

兄弟这玩意,用手打的给你说,太浪费手指了的感觉!!建议百度搜搜,或系统的看下教程之类!

m0_37769124
m0_37769124   2017.09.08 11:58

百度都有还很详细,一楼那兄弟太浪费手指了

lkhog
lkhog   2017.09.08 12:32

xml里有setter干嘛?spring注入只需对应的实体类有setter就行 会根据bean的定义获取到实体类 然后通过反射机制需要该类里有set方法 就可注入

Csdn user default icon
上传中...
上传图片
插入图片