常见的构造函数 自动注入到底比new好在哪?
自动注入到底比new好在哪?
控制反转和容器IOC只能看作是一种编程思想。在理想状态下,可以实现自动注射和生命周期管理。但在实际的开发中,我个人觉得有时不如新的方便,我主要遇到以下问题:
1。编写大量的配置和构造函数要比编写新的更麻烦,特别是对于某些函数来说,只需一次。原来,new可以一次性完成,但是如果要使用依赖注入,还需要编写配置
2。当需要注入更多的类时,构造函数就像老妇人的裹尸布一样臭,一样长。关键是以前用过的一些类现在不用了,你要手动清理构造函数,这比new要麻烦多了
3。这也是最重要的一点,有时候项目很复杂,会遇到循环注入的问题。也就是说,A依赖B,B依赖C,C依赖A,这种情况说明架构的存在是不合理的。在这一点上,你可以重构系统,也可以不依赖依赖依赖注入,直接用新的方法来解决它。]因此,依赖注入只是一种编程思想,有一些高级的性质,但不是。它是万能的。它存在的意义是脱钩。从宏观上讲,就是要解决多人共同开发一个项目时,各自独立的模块,减少相互之间的依赖和干扰。从微观的角度看,有几个类是密切相关的。虽然文件是独立的,但是功能是集成的。在这个时候,脱钩是没有意义的。为什么不是新的?
因此,我个人理解依赖注入与引擎是一样的。发动机由几个主要部件组成。这些组件之间是解耦的,可以通过依赖注入来实现。对于单个组件的内部部件和螺钉,必须使用依赖注入来实现它们。这比收益多一点。使用new来实现它们要方便得多。。。[抠鼻子][抠鼻子][抠鼻子][抠鼻子][抠鼻子
首先,你的说法是错误的
当spring通过IOC核心容器管理对象时,它需要在spring容器中声明bean组件,然后它们将由spring容器管理,然后其他bean可以被引入这个bean中。
属性注入的方法仅适用于引入的bean。我知道依赖注入有很多种方法:
1 Set method injection:如果您使用Set来注入bean,那么您只需要为bean中需要的一些组件提供Set方法。通过set方法的注入比较清晰,如您所见(哦,您认为bean提供了这些组件)
2构造函数注入:如果采用构造函数注入方法,则首先为bean提供用户定义的构造函数。构造函数中需要的参数是类中的组件实例,@Autowired annotation,injection by type,@resource annotation,injection by name@资源=@自动连线@限定符,你说通过new关键字实例化对象这是因为spring没有以new的方式实例化对象,与春季国际奥委会的核心理念相冲突
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。