qq_39586869 2017-09-08 03:32 采纳率: 50%
浏览 3646
已采纳

Spring的自动装配和自动注入

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

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

  • 写回答

6条回答 默认 最新

  • 鼠晓 博客专家认证 2017-09-08 03: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>
    

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

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

悬赏问题

  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥85 maple软件,solve求反函数,出现rootof怎么办?
  • ¥15 求chat4.0解答一道线性规划题,用lingo编程运行,第一问要求写出数学模型和lingo语言编程模型,第二问第三问解答就行,我的ddl要到了谁来求了
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥15 maple软件,用solve求反函数出现rootof,怎么办?
  • ¥65 汇编语言除法溢出问题
  • ¥15 Visual Studio问题
  • ¥20 求一个html代码,有偿
  • ¥100 关于使用MATLAB中copularnd函数的问题