持久层

Spring应用学习——IOC

和自甴很熟 提交于 2019-11-28 19:38:07
1. Spring简介 1. Spring的出现是为了取代EJB(Enterprise JavaBean)的臃肿、低效、脱离现实的缺点。Spring致力于J2EE应用的各层(表现层、业务层、持久层)的解决方案,Spring是企业应用开发的“一站式”选择。 2. 定义:Spring是分层的JavaSE/EE应用一站式的轻量级开源框架(官网: http://spring.io/ ),以Ioc(Inverse of control)控制反转和Aop(Aspect Oriented Programming)面向切面编程为核心。 3. 优点: 轻量级:针对EJB来说,使用方便。 一站式:spring针对各各层(表现层、业务层、持久层)提出解决方案。 表现层:springmvc(spring自己的mvc框架),提供和其它web框架整合方案。 业务层:spring基于aop(面向切面编程)思想进行事务控制。 持久层:spring自己提供JdbcTemplate,提供和其它持久层框架整合的方案。 4. spring核心 : Ioc( 控制反转 ) 和aop(面向切面编程)。 重点是:IOC , spring 要管理各各层的 bean 。 5. Spring模块组件图: 2. Spring IOC 1. 什么是IOC 1. 不使用ioc,代码中创建一个对象直接操作接口实现类,并没有面向接口开发

实体类(VO,DO,DTO,PO)的划分《转载---》

左心房为你撑大大i 提交于 2019-11-28 14:45:11
转载自: https://blog.csdn.net/u010722643/article/details/61201899 经常会接触到 VO, DO, DTO的概念,本文从领域建模中的实体划分和项目中的实际应用情况两个角度,对这几个概念进行简析。 得出的主要结论是:在项目应用中, VO对应于页面上需要显示的数据(表单), DO对应于 数据库 中存储的数据(数据表), DTO对应于除二者之外需要进行传递的数据。 一、实体类 百度百科中对于实体类的定义如下: 实体类的主要职责是存储和管理系统内部的信息,它也可以有行为,甚至很复杂的行为,但这些行为必须与它所代表的实体对象密切相关。 根据以上定义,我们可以了解到,实体类有两方面内容,存储数据和执行数据本身相关的操作。这两方面内容对应到实现上,最简单的实体类是 POJO类,含有属性及属性对应的 set和 get方法,实体类常见的方法还有用于输出自身数据的 toString方法。 二、领域模型中的实体类 领域模型中的实体类分为四种类型: VO、 DTO、 DO、 PO,各种实体类用于不同业务层次间的交互,并会在层次内实现实体类之间的转化。 业务分层为:视图层( VIEW+ACTION),服务层( SERVICE),持久层( DAO) 相应各层间实体的传递如下图: 项目中我们并没有严格遵循这种传递关系

7.1 Spring简介和Spring5.0的变化

醉酒当歌 提交于 2019-11-28 11:56:53
7.1 Spring简介和Spring5.0的变化 7.1.1 Spring简介 7.1.2 Spring5.0的变化 7.1 Spring简介和Spring5.0的变化 Spring 框架由 Rod Johnson 开发, 2004 年发布了 Spring 框架的第一个版本。经过十多年的发展, Spring 已经发展成 Java EE 开发中最重要的框架之一。对于一个 Java 开发者来说, Spring 已经成为必须掌握的技能。 不仅如此,围绕 Spring ,以 Spring 为核心还衍生出了一系列框架,如 Spring Web Flow 、 Spring Security , Spring Data 、 Spring boot 、 Spring Cloud 等,具体请登录 Spring官方网站 , Spring 越来越强大,带给开发者越来越多的便捷。本书所介绍的是 Spring 框架本身. 7.1.1 Spring简介 Spring 是一个从实际开发中抽取出来的框架,因此它 完成了大量开发中的通用步骤 ,留给开发者的仅仅是与特定应用相关的部分,从而大大提高了企业应用的开发效率。 Spring 为企业应用的开发提供了一个轻量级的解决方案。该解决方案包括: 基于依赖注入的核心机制、 基于 AOP 的声明式事务管理、 与多种持久层技术的整合, 以及优秀的 Web MVC 框架等。

Spring_01

我只是一个虾纸丫 提交于 2019-11-28 00:45:17
一. Spring概述   1.1 spring是什么?     Spring 是分层的 Java SE/EE 应用 full-stack 轻量级开源框架,以 IoC(Inverse Of Control: 反转控制)和 AOP(Aspect Oriented Programming:面向切面编程)为内核,提供了展现层 Spring MVC 和持久层 Spring JDBC 以及业务层事务管理等众多的企业级应用技术,还能整合开源世界众多 著名的第三方框架和类库,逐渐成为使用最多的 Java EE 企业应用开源框架。   1.2spring的优势      1.2.1 方便解耦,简化开发      通过 Spring 提供的 IoC 容器,可以将对象间的依赖关系交由 Spring 进行控制,避免硬编码所造 成的过度程序耦合。 用户也不必再为单例模式类、属性文件解析等这些很底层的需求编写代码,可 以更专注于上层的应用。      1.2.2 AOP 编程的支持     通过 Spring 的 AOP 功能,方便进行面向切面的编程,许多不容易用传统 OOP 实现的功能可以通过 AOP 轻松应付。      1.2.3 声明式事务的支持     可以将我们从单调烦闷的事务管理代码中解脱出来,通过声明式方式灵活的进行事务的管理, 提高开发效率和质量。      1.2.4 方便程序的测试  

Struts2第1天+

耗尽温柔 提交于 2019-11-27 13:59:40
第1章 struts2 基本概念 1.1 三层架构和三大框架各自的位置 1.1.1 三层架构: 我们的开发架构一般都是基于两种形式,一种是 C/S 架构,也就是客户端/ 服务器,另一种是B/S 架构,也就是浏览器服务器。在JavaEE 开发中,几乎全都是基于B/S 架构的开发。那么在B/S 架构中,系统标准的三层架构包括: 表现层、业务层、持久层 。三层架构在我们的实际开发中使用的非常多,所以我们课程中的案例也都是基于三层架构设计的。 三层架构中,每一层各司其职,接下来我们就说说每层都负责哪些方面: 表现层: 也就是我们常说的 web 层。它负责接收客户端请求,向客户端响应结果,通常客户端使用http 协议请求web 层,web 需要接收http 请求,完成http 响应。 表现层包括展示层和控制层:控制层负责接收请求,展示层负责结果的展示。 表现层依赖业务层,接收到客户端请求一般会调用业务层进行业务处理,并将处理结果响应给客户端。 表现层的设计一般都使用 MVC 模型。(MVC 是表现层的设计模型,和其他层没有关系) 业务层: 也就是我们常说的 service 层。它负责业务逻辑处理, 和我们开发项目的需求息息相关。 web 层依赖业务层 ,但是业务层不依赖 web 层。 业务层在业务处理时可能会依赖持久层,如果要对数据持久化需要保证事务一致性。(也就是我们说的

java里面Dto对象跟VO的区别

时光毁灭记忆、已成空白 提交于 2019-11-27 13:09:09
原文地址: https://ask.csdn.net/questions/692933?sort=id javaBean 是一种JAVA语言写成的可重用组件。为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器。JavaBean 通过提供符合一致性设计模式的公共方法将内部域暴露成员属性。众所周知,属性名称符合这种模式,其他Java 类可以通过自身机制发现和操作这些JavaBean 的属性。 VO即value object值对象 主要体现在视图的对象,对于一个WEB页面将整个页面的属性封装成一个对象。然后用一个VO对象在控制层与视图层进行传输交换。 DTO (经过处理后的PO,可能增加或者减少PO的属性): Data Transfer Object数据传输对象 主要用于远程调用等需要大量传输对象的地方。 比如我们一张表有100个字段,那么对应的PO就有100个属性。 但是我们界面上只要显示10个字段, 客户端用WEB service来获取数据,没有必要把整个PO对象传递到客户端, 这时我们就可以用只有这10个属性的DTO来传递结果到客户端,这样也不会暴露服务端表结构.到达客户端以后,如果用这个对象来对应界面显示,那此时它的身份就转为VO。 POJO(POJO是一种概念或者接口,身份及作用随环境变化而变化) : POJO有一些private的参数作为对象的属性

所谓的持久层框架?ORM框架?以及Hibernate和Mybatis区别?

冷暖自知 提交于 2019-11-27 10:51:38
ORM框架? Object Relational Mapping,对象-关系映射。 项目中的业务实体有两种表现形式:对象和关系数据,即在内存中表现为对象,在数据库中表现为关系数据。 为什么需要ORM框架? ORM框架是对象关系映射,那为什么要映射mapping? 因为对象之间可以存在关联和继承关系,但是在数据库中,关系数据无法表达多对多关联和继承关系。(ps:在数据库原理中,会把逻辑上的多对多转换为多个一对关系才能实现)因此,对象和关系(业务实体的两种表现形式)想要映射正确,项目系统一般以中间件的形式,即持久层框架。 Hibernate? Hibernate是一个开源的对象关系映射框架。 它对jdbc进行了非常轻量级的对象封装,将pojo(普通的Java对象)与数据库表建立映射关系,是一个全自动的ORM框架,甚至自动生成SQL语句,自动执行。 因此,程序员可以随心所有地使用对象编程思维来操纵数据库。 Hibernate特点: Hibernate通过修改一个“持久化”对象的属性,从而修改数据库表中对应的记录数据 提供线程和进程两个级别的缓存提升应用程序性能 有丰富的映射方式将Java对象之间的关系(POJO)转换为数据库表之间的关系 屏蔽不同数据库实现之间的差异。在Hibernate中只需通过“方言”的形式指定当前使用的数据库,就可以根据底层数据库的实际情况生成适合的SQL语句

软件架构设计原则之“分层”使用总结

馋奶兔 提交于 2019-11-27 04:56:54
分层架构(layered architecture)是最常见的软件架构,也是事实上的标准架构。 如果你不知道要用什么架构,那就用它,可以用在业务上也可以用在技术上。这种架构将软件分成若干个水平层,每一层都有清晰的角色和分工,不需要知道其他层的细节,层与层之间隔离通过接口通信,串行依赖。 分层架构 核心点: 单向依赖,一层只依赖一层,不跨层 抽象隔离,分的越开越好,哪怕是异地 好处: 代码结构清晰易于理解 代码复杂度降低,容易理解和开发 层间隔离,利于排查问题 后期的维护升级方便而简单 每一层都可以独立测试,其他层的接口通过模拟解决 不同技能的程序员可以分工,负责不同的层,天然适合大多数软件公司的组织架构 抽象逻辑复用起来简单 分层思想的真理: 计算机科学领域任何问题,都可以间接的通过添加一个中间层来解决。 分层采用的方法: 单个项目的可采用package方式 com.xxx.core -- .service -- .mapper -- .util -- .controller -- .dao -- .model 多层项目的采用引入独立jar方式 paper-parent -- paper-common -- paper-core -- paper-core-api -- paper-core-service -- paper-rest 分层介绍 Web型项目的B

14 SpringMVC框架的基本概念

对着背影说爱祢 提交于 2019-11-27 03:00:20
1.三层架构    我们的开发架构一般都是基于两种形式,一种是 C/S 架构,也就是客户端/服务器,另一种是 B/S 架构,也就是浏览器服务器。在 JavaEE 开发中,几乎全都是基于 B/S 架构的开发。那么在 B/S 架构中,系统标准的三层架构包括:表现层、业务层、持久层。三层架构在我们的实际开发中使用的非常多,所以我们课程中的案例也都是基于三层架构设计的。 三层架构中,每一层各司其职,接下来我们就说说每层都负责哪些方面: 表现层:   也就是我们常说的web 层。它负责接收客户端请求,向客户端响应结果,通常客户端使用http 协议请求web 层,web 需要接收 http 请求,完成 http 响应。   表现层包括展示层和控制层:控制层负责接收请求,展示层负责结果的展示。   表现层依赖业务层,接收到客户端请求一般会调用业务层进行业务处理,并将处理结果响应给客户端。表现层的设计一般都使用 MVC 模型。(MVC 是表现层的设计模型,和其他层没有关系) 业务层:   也就是我们常说的 service 层。它负责业务逻辑处理,和我们开发项目的需求息息相关。web 层依赖业务层,但是业务层不依赖 web 层。   业务层在业务处理时可能会依赖持久层,如果要对数据持久化需要保证事务一致性。(也就是我们说的, 事务应该放到业务层来控制) 持久层:   也就是我们是常说的 dao 层

ssm的一些概念

旧城冷巷雨未停 提交于 2019-11-27 02:26:18
xml Extensible Markup Language 可扩展标记语言,标准通用标记语言的子集,简称XML。是一种用于标记电子文件使其具有结构性的标记语言。 dtd DTD为英文Document Type Definition,中文意思为“文档类定义”可定义合法的XML文档构建模块。它使用一系列合法的元素来定义文档的结构。 DTD 可被成行地声明于 XML 文档中,也可作为一个外部引用。 junite xUnit是一套基于测试驱动开发的测试框架 其中的断言机制:将程序预期的结果与程序运行的最终结果进行比对,确保对结果的可预知性 要求 1.测试方法上必须使用@Test 2.测试方法必须使用 public void进行修饰 3.新建一个源代码目录来存放测试代码 4.测试类的包应该和被测试类的包一样 5.测试单元中的每个方法一定要能够独立测试,其方法不能有任何依赖 mapper MyBatis 通用 Mapper 是一个可以让开发人员更方便使用 MyBatis 的扩展, 通过简单的配置,可以方便的直接获取单表的常见操作,提供如 select, selectAll, selectCount, delete, update 以及 Example 相关的方法。 开发人员不需要编写SQL,不需要在DAO中增加方法,只要写好实体类,就能支持相应的增删改查方法。 MyBatis 是支持普通