Spring的"Hello, world",还有"拿来主义"
这里有两个类:
com.practice包下的SpringTest.java和PersonService.java。
Spring可以管理任意的POJO(这是啥?),并不要求Java类是一个标准的JavaBean(什么样的类叫JavaBean?)。
这个小例子说明的是不需要直接创建实例,只需要从Spring的容器中直接获取就好了,我想把这种叫做拿来主义。
而Spring容器为什么能提供实例呢?总不能空手套白狼吧,靠的就是它的配置文件,在本例中就是bean.xml了。
Spring容器根据配置文件的信息,负责创建Person实例,并为Person实例设置属性值,这种由Spring容器为对象设置属性值的方式就叫做控制反转(Inversion of Control,IOC)
其实吧,我觉得这个也不好,在这个例子中我并不需要这个类,而是需要知道这个人的名,谁(实例)告诉我,以什么方式(方法)告诉我都无所谓,只要我能知道它的名字,其他的我都不管。
这是我的一点点思考。
P.S.
没接触框架之前都知道java还能这么玩。C或者C++也有控制反转的概念么?
Spring的"Hello, world",还有"拿来主义"的更多相关文章
- 利用Java代码在某些时刻创建Spring上下文
上一篇中,描述了如何使用Spring隐式的创建bean,但当我们需要引进第三方类库添加到我们的逻辑上时,@Conponent与@Autowired是无法添加到类上的,这时,自动装配便不适用了,我们需要 ...
- 利用beans.xml进行简单的Spring应用上下文创建与使用
继上次配置Spring完成后,我们来创建一个简单的例程来理解Spring中利用beans.xml创建应用上下文的方法. 程序路径包为:com.spring.kinghts(kinght单词拼写错误,怕 ...
- 最新 Eclipse IDE下的Spring框架配置及简单实例
前段时间开始着手学习Spring框架,又是买书又是看视频找教程的,可是鲜有介绍如何配置Spring+Eclipse的方法,现在将我的成功经验分享给大家. 本文的一些源代码来源于码农教程:http:// ...
- Java Web学习系列——Maven Web项目中集成使用Spring
参考Java Web学习系列——创建基于Maven的Web项目一文,创建一个名为LockMIS的Maven Web项目. 添加依赖Jar包 推荐在http://mvnrepository.com/.h ...
- Spring基础篇——Spring容器和应用上下文理解
上文说到,有了Spring之后,通过依赖注入的方式,我们的业务代码不用自己管理关联对象的生命周期.业务代码只需要按照业务本身的流程,走啊走啊,走到哪里,需要另外的对象来协助了,就给Spring说,我想 ...
- 《spring boot 实战》读书笔记
前言:虽然已经用spring boot开发过一套系统,但是之前都是拿来主义,没有系统的,全面的了解过这套框架.现在通过学习<spring boot实战>这本书,希望温故知新.顺便实现自己的 ...
- spring容器和上下文的理解
spring容器和上下文的理解 spring框架现在使用的很多,这说明有其独特之处----依赖注入,很简单的四个字,在我们需要对象的时候,spring就可以给我们提供所需要的对象,对象的创建.销毁.管 ...
- 【Java】Spring Web MVC注意事项
本文内容可能是书上没有的,至少是<Java Web整合开发实践>这本书上没有的.这是初学Spring的笔者走过的弯路,谨记以自勉. 这两天学习Spring WebMVC,照着书依葫芦画瓢写 ...
- 资深程序员总结:彻底理解Spring容器和应用上下文
点关注,不迷路:持续更新Java架构相关技术及资讯热文!!! 有了Spring之后,通过依赖注入的方式,我们的业务代码不用自己管理关联对象的生命周期.业务代码只需要按照业务本身的流程,走啊走啊,走到哪 ...
随机推荐
- OpenCV cv::Mat类
using namespace cv; 1.Mat的声明: Mat m=Mat(rows, cols, type); Mat m=Mat(Size(width,height), type); type ...
- js数组基础知识链接
http://www.cnblogs.com/qiantuwuliang/archive/2011/01/08/1930499.html 小案例: <script language=&quo ...
- Elasticsearch--Date math在索引中的使用
在Elasticsearch,有时要通过索引日期来筛选某段时间的数据,这时就要用到ES提供的日期数学表达式 描述: 特别在日志数据中,只是查询一段时间内的日志数据,这时就可以使用日期数学表达式,这样可 ...
- 项目发布时候出错--项目文件包含 ToolsVersion="12.0"
项目文件包含 ToolsVersion="12.0".此工具集可能未知或缺失(您可以通过安装相应版本的 MSBuild 来解决该问题),或者该生成因策略原因已被强制更改为特殊 To ...
- Delphi XE的firemonkey获取当前文件所在路径的方法
Delphi XE的firemonkey获取当前文件所在路径的方法 在之前,我们知道有三种方法: ExtractFilePath(ParamStr(0)) ExtractFilePath(Applic ...
- Dynamics AX 2012 R2 在报表上显示和打印条码
AX中有对条码操作的封装,用其生成BarCodeString类型的值,再配合barcode128字体,即可在显示出条码. 废话不说,上代码. BarcodeCode128 barCod ...
- Logspout安装、使用
Docker还没有提供一种方法来管理在Docker容器里面运行的程序所生成的日志.Logspout是一个Docker容器,大小仅14MB,使用BusyBox作为其核心,它可以将来自容器应用程序的日志发 ...
- Android内存溢出解决方案(OOM)
众所周知,每个Android应用程序在运行时都有一定的内存限制,限制大小一般为16MB或24MB(视平台而定).因此在开发应用时需要特别关注自身的内存使用量,而一般最耗内存量的资源,一般是图片.音频文 ...
- android TextView加载html内容并加载图片
package com.example.textviewfromhtml; import java.net.URL; import android.app.Activity; import andro ...
- 【PHP设计模式 05_DanLi.php】单例模式
<?php /** * [单例模式] * 总结:防止外部new对象:防止子类继承:防止克隆. */ header("Content-type: text/html; charset=u ...