Spring MVC 返回视图时添加的模型数据------POJO
POJO(Plain Old Java Objects)简单的Java对象,实际就是普通JavaBeans,是为了避免和EJB混淆所创造的简称。
使用POJO名称是为了避免和 EJB混淆起来, 而且简称比较直接. 其中有一些属性及其getter setter方法的类,没有业务逻辑,有时可以作为 VO(value -object)或 dto(Data Transform Object)来使用.当然,如果你有一个简单的运算属性也是可以的,但不允许有业务方法,也不能携带有connection之类的方法。
1. 什么是POJO
POJO的名称有多种,pure old java object 、plain ordinary java object 等。
按照Martin Fowler的解释是“Plain Old Java Object”,从字面上翻译为“纯洁老式的java对象”,但大家都使用“简单java对象”来称呼它。
POJO的内在含义是指那些没有从任何类继承、也没有实现任何接口,更没有被其它框架侵入的java对象。
POCO的概念是从java的POJO借用而来,而两者的含义是一致的,不同的仅仅是使用的语言不一样。所以POCO的解释就是“Plain Old C# Object”。
2. 为什么会有POJO?
主要是Java的开发者被EJB的繁杂搞怕了,大家经过反思,又回归“纯洁老式”的JavaBean,即有无参构造函数,每个字段都有getter和setter的java类。
3. POJO的意义
POJO让开发者可专注于业务逻辑和脱离框架的单元测试。除此之外, 由于POJO并不须要继承框架的类或实现其接口,开发者能够极其灵活地搭建继承结构和建造应用。
POJO的意义就在于它的简单而灵活性,因为它的简单和灵活,使得POJO能够任意扩展,从而胜任多个场合,也就让一个模型贯穿多个层成为现实。
先写一个核心POJO,然后实现业务逻辑接口和持久化接口,就成了Domain Model; UI需要使用时,就实现数据绑定接口,变成VO(View Object)。
4. POJO与PO、VO的区别
POJO是指简单java对象(Plain Old Java Objects、pure old java object 或者 plain ordinary java object)。
PO是指持久对象(persistant object持久对象)。
VO是指值对象或者View对象(Value Object、View Object)。注意,本文的VO特指View Object。
持久对象实际上必须对应数据库中的entity,所以和POJO有所区别。比如说POJO是由new创建,由GC回收。但是持久对象是insert数据库创建,由数据库delete删除的。基本上持久对象生命周期和数据库密切相关。另外持久对象往往只能存在一个数据库Connection之中,Connnection关闭以后,持久对象就不存在了,而POJO只要不被GC回收,总是存在的。
由于存在诸多差别,因此持久对象PO(Persistent Object)在代码上肯定和POJO不同,起码PO相对于POJO会增加一些用来管理数据库entity状态的属性和方法。而ORM追求的目标就是要PO在使用上尽量和POJO一致,对于程序员来说,他们可以把PO当做POJO来用,而感觉不到PO的存在。
5. POJO的扩展
POJO仅包含最简单的字段属性,没有多余的东西,它本质上就是一个普通的JavaBean。
但是在POJO的基础上,能够扩展出不同的对象。
l 为POJO增加了持久化的方法(Insert、Update、Delete……)之后,POJO就变成了PO。
l 为POJO增加了数据绑定功能之后,POJO就变成了View Object,即UI Model。
l 为POJO增加业务逻辑的方法(比如单据审核、转帐……)之后,POJO就变成了Domain Model。
l POJO还可以当作DTO使用。
转载于:https://www.cnblogs.com/skyLogin/p/6571124.html
Spring MVC 返回视图时添加的模型数据------POJO相关推荐
- Spring MVC 返回NULL时客户端用$.getJSON的问题
如果Spring MVC返回是NULL,那么客户端的$.getJSON就不会触发: ===============20170419补充======================= 后台的输出为: D ...
- Restful 风格开发 Spring MVC 的视图解析器---使用 beetl 模板引擎
一.restful 风格 restful 的目的 将用户的行为当成是对数据库中记录的操作: 增加用户:/user post(post方式) 删除用户:/user/2 delete(删除第2条记录) 修 ...
- java去除json 转移,Spring MVC返回的json去除根节点名称的方法
这篇文章主要介绍了Spring MVC返回的json去除根节点名称的方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下 spring xml中配置视图如果是如下 那么返回结果会是: {" ...
- 集成spring mvc_向Spring MVC Web应用程序添加社交登录:集成测试
集成spring mvc 我已经写了关于为使用Spring Social 1.1.0的应用程序编写单元测试的挑战,并为此提供了一种解决方案 . 尽管单元测试很有价值,但它并不能真正告诉我们我们的应用程 ...
- Spring mvc ViewResolver视图解析器实现机制
概要 我们在controller里面经常这样return一个ModelAndView. return new ModelAndView("userList", "user ...
- spring mvc返回页面显示空白_Spring 框架基础(06):Mvc架构模式简介,执行流程详解...
一.SpringMvc框架简介 1.Mvc设计理念 MVC是一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方法组织代码,将业务逻辑聚集到一个组件里面,在改进和个性化定制界面及用户交互的同时,不 ...
- Spring MVC集成测试:断言给定的模型属性有全局错误
为了使用Bean验证报告Spring MVC中的全局错误,我们可以创建一个自定义的类级别约束注释. 全局错误与已验证Bean中的任何特定字段都不相关. 在本文中,我将展示如何使用Spring Test ...
- three.js 一个页面可以存在多个render吗_你确定把Spring MVC的视图机制吃透了吗?...
# 前言 SpringMVC是目前主流的Web MVC框架之一. 本文将分析SpringMVC的视图这部分内容,让读者了解SpringMVC视图的设计原理. # 重要接口和类介绍 1. View接口 ...
- Spring学习手册 1:Spring MVC 返回JSON数据
目录 完整代码在这 Spring MVC对JSON数据格式的支持非常好,配置完成后什么都不用管靠注解就可以轻松返回JSON格式的数据. Spring 对JSON的支持有三种方式,下面会一一介绍,在此之 ...
最新文章
- 使用 Button 类在 XNA 中创建图形按钮(九)
- dlib android
- boost::container模块实现分配器参数的测试程序
- editor.md 实现拖拽剪切复制粘贴上传图片,文件插件
- 人魔比妖都恶的时代...
- 我和Django那些事儿(8)----相册django插件photologue,jQuery插件Slides
- AX向在线用户发送消息
- C++ #include iostream #include iostream.h #include string.h区别及作用
- web.config学习资料
- 建模助手 —『 CAD图层管理 』Revit视图干净清爽
- dimm和udimm_服务器内存UDIMM与RDIMM区别
- 2012-7-10可樂词汇积累#9315;
- vue中图片解析失败
- 十个程序员必备的网站推荐
- 阿里文娱智能营销增益模型 ( Uplift Model ) 技术实践
- Merkle Tree、Merkle Proof、SPV安全性分析、Bloom过滤器
- 万豪国际集团旗舰酒店品牌正式入驻中国东北地区
- poj 计算几何 分类
- 基于语义关联的中文查询纠错框架
- nginx.exe启动失败?