前记
由于接手一个项目,用到spring。用了一段时间,基本上是依葫芦画瓢,有很多地方一知半解。
最近看了一下相关的书籍,算作是实践过后重新来补理论,有些不懂的地方豁然开朗。记下,记下。当然,肯定有很多说得不对的地方,请高手看到了不妨提醒一下。
(1) 困惑:在使用spring的依赖注入的时候,由于一个service里面用到了很多其他java 实例的属性,不明白哪些属性
需要依赖注入,哪些不需要。
原因:没有弄明白依赖注入会带来什么,即为什么要用到依赖注入。
解惑:一般,当某个java实例需要另一个java实例时,通常会由调用者自己来创建被调用者的实例。而在依赖诸如
的模式下,这个创建过程不需要由创建者来完成。这样就使各种组件不需要以硬编码方式耦合在一起,使对
象与对象中间的具体实现互相透明。
有个很好的例子可以充分说明依赖注入的好处:一个人(java实例)需要一把斧子(java实例)。
原始社会:需要斧子的人只能自己去磨一把斧子,即java程序里的调用者自己创建被调用者。
工业社会:斧子由工厂生产。此时需要斧子的人只需找到工厂,购买斧子。即调用者只需定位到工厂,无须
知道被调用者的具体实现。
共产社会:需要斧子的人无须定位到工厂,“坐等”社会提供即可。而依赖注入就是共产社会。
那么回到最初的困惑,到底哪些属性是需要依赖注入的,哪些是不需要的呢?在明白了依赖注入会带来什么
好处之后,这个问题就很清楚了。这里排除那些值注入的除外,当某个属性对应java实例其实现细节一直在
变,调用者可能因为被调用者的实现细节的变更进而影响到自身也要变的话,这个时候就需要依赖注入,让
他们之间解藕。
(2) 困惑:为什么依赖注入的属性其声明类都是接口呢?
解惑: 这依然是为了解藕。这也是spring提倡的面向接口编程所带来的好处,就是解藕嘛。
分享到:
相关推荐
Spring 事务配置解惑.html 抓下来打包成了HTML文件, 方便离线观看
讲述如何在程序中避免程序缺陷和程序陷阱的,解惑的过程中,介绍了一些Java编程语言中许多不易被掌握的知识点,其阅读价值非常高,适合具有Java知识的学习者和有编程经验的Java程序员阅读。
主要介绍了Spring和SpringBoot比较解惑区别,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
基于树莓派的服务器开发实战,部署Spring boot后端服务,并使用JavaFx开发控制界面以显示服务器和电脑等运行状态。.zip嵌入式优质项目,资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松copy复刻,拿...
【一线互联网大厂Java核心面试题库】Java基础、异常、集合、并发编程、JVM、Spring全家桶、MyBatis、Redis、数据库、中间件MQ、Dubbo、Linux、Tomcat、ZooKeeper、Netty等等..
一个很好的 一个SSH框架,基于注入,不是注释的项目!用于解惑
在这个平台上,我们为大家带来了一系列的 JavaSSM(Spring + SpringMVC + MyBatis)项目。这些项目旨在展示SSM框架在实际应用中的魅力,同时也为开发者提供了一个快速学习和实践的机会。通过下载和使用这些项目,您...
在线交流与沟通功能:提供学生与企业之间的在线交流平台,方便双方进行沟通、面试安排和答疑解惑。 数据安全与隐私保护:采用加密和权限控制等安全措施,确保学生和企业的个人信息和交流数据的安全与隐私。 管理员...
1. 《Java解惑 [JAVA PUZZLERS]》:这是一本Java语言解惑与实战书籍,通过140个谜题帮助读者加深对Java的理解。 2. 《Java虚拟机规范 (Java_SE_7)》:这本书深入解析了Java虚拟机规范,是Java程序员进阶阅读的好选择...
JAVA面试题解惑系列.pdf Java面试题(基础).pdf JVM 实用参数系列 - v1.0.pdf JVM与性能优化知识点整理.pdf JVM面试专题.docx JVM面试专题及答案.pdf Linux系统Redis笔记.docx MongoDB学习笔记.docx mybatis原理....
一个基于Spring Boot的Web应用,使用了OpenAI的ChatGPT模型实现了智能聊天机器人。用户可以在界面上与聊天机器人进行对话,聊天机器人会根据用户的输入自动生成回复。同时也支持画图,用户输入文本,便可以自动制作...
在这里,学习者可以分享自己的学习心得、提问解惑、交流项目经验,形成一个良好的学习共同体。 总之,这一基于Spring Boot开发的JAVA语言在线考试与学习交流网页平台,以其强大的功能、丰富的资源和良好的交互体验...
基于物联网的智能厂房,运用树莓派开发板,5个传感器,继电器使用java语言开发的web管理系统带有基础权限控制系统后台使用spring boot springsecurity集成开发前端使用thymeleaf vue.js进行开发数据库使用MySQL的....
7. **社区交流**:提供交流论坛,供考生分享学习经验和答疑解惑。 8. **成绩分析**:对模拟考试成绩进行分析,帮助考生了解自己的强项和弱项。 整个项目采用MVC设计模式,Spring负责整体业务逻辑的处理和依赖注入,...
如果你碰到一个特别热心的老员工,事无巨细地给你讲,随时在你身边答疑解惑, 那简直是天大的好运气, 现实是大家都很忙,没人给你讲解。很快就要深入项目做开发了,怎么办呢?我在加入新公司后,就遇到了悲催的情况...
互动交流:系统提供学生与教师、学生与学生之间的在线交流功能,如论坛讨论、课程问答等,促进学习互动和答疑解惑。 数据统计与分析:管理员和教师可以查看课程访问量、学习进度、作业完成率等统计数据,以便进行...
- 大声说出运动烦恼,这里有一群志同道合的小伙伴一起讨论解惑。 - 匿名和公开化处理,提出运动烦恼的同时充分保护你的隐私。 - 醒目的搜索入口,有时候轻轻一滑就能找到想要的答案。 #### 9.「运动咨询」 - 详细的...
JetLinks 基于Java8,Spring Boot 2.x ,WebFlux,Netty,Vert.x,Reactor等开发, 是一个全响应式的物联网平台。支持统一物模型管理,多种设备,多种厂家,统一管理。统一设备连接管理,多协议适配(TCP,MQTT,UDP,CoA….zip...
Java基础语法,Java面试题(j2se+hibernate+struts+sql),EL表达式,JSTL,Struts标签,Struts2学习文档,hibernate学习文档,spring学习文档,It学生解惑真经
6. **作业讨论区**:学生和教师可以在作业相关的讨论区内交流问题和答疑解惑。 7. **多角色访问控制**:系统根据用户角色(如教师、学生、管理员)提供不同的访问权限。 8. **数据分析**:提供作业完成情况的统计...