持久层

【转载】@Component, @Repository, @Service的区别

纵饮孤独 提交于 2019-12-01 01:59:01
@Component, @Repository, @Service的区别 官网引用 引用spring的官方文档中的一段描述: 在Spring2.0之前的版本中, @Repository 注解可以标记在任何的类上,用来表明该类是用来执行与数据库相关的操作(即dao对象),并支持自动处理数据库操作产生的异常 在Spring2.5版本中,引入了更多的Spring类注解: @Component , @Service , @Controller 。 @Component 是一个通用的Spring容器管理的单例bean组件。而 @Repository , @Service , @Controller 就是针对不同的使用场景所采取的特定功能化的注解组件。 因此,当你的一个类被 @Component 所注解,那么就意味着同样可以用 @Repository , @Service , @Controller 来替代它,同时这些注解会具备有更多的功能,而且功能各异。 最后,如果你不知道要在项目的业务层采用 @Service 还是 @Component 注解。那么, @Service 是一个更好的选择。 就如上文所说的, @Repository 早已被支持了在你的持久层作为一个标记可以去自动处理数据库操作产生的异常(译者注:因为原生的java操作数据库所产生的异常只定义了几种

零基础学习java------36---------xml,MyBatis

女生的网名这么多〃 提交于 2019-11-30 23:28:59
一. xml 1. 文档的声明 2. 文档的约束,规定了当前文件中有的标签(属性),并且规定了标签层级关系 其叫html文档而言,语法要求更严格,标签成对出现(不是的话会报错) 3. 作用:数据格式,存储数据,传输数据 配置文件(主要的作用) 4. xml 解析: (1).DOM 将数据加载到对象中,不适合解析大文件 xml操作 (2)SAX 解析大文件(一行一行的进行解析) 无法操作 二. mybatis简介(知道) MyBatis本是apache的一个开源项目iBatis, 2010年这个项目由 apache software foundation 迁移到了 google code,并且改名为 MyBatis 。 2013年 11月迁移到 Github。 是一个基于java的持久层框架 。iBATIS提供的持久层框架包括 SQL Maps 和Data Access Objects(DAOs),MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及 高级映射。 MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。 MyBatis 可以使用简 单的 XML 来配置和 映射 原生信息 ,将接口和 Java 的 POJO s(Plain Ordinary Java Object,普通的 Java对象)映射成数据库中的记录。 MyBatis

系统拆分解耦利器之消息队列---RabbitMQ-Persistence Configuration

南笙酒味 提交于 2019-11-30 22:15:42
[一曲广陵不如晨钟暮鼓] 鉴于RabbitMQ官方文档的内容过多,且大部分内容在应用时基本使用默认配置,因此,后续我们将只翻译部分文档。更多内容请各位看官参考其他资料吧。 本文,我们将介绍RabbitMQ持久化配置相关的内容,废话不表,马上开始正文部分吧。 -------------------------------------------------------------------------------------------------------------------------------------------------------- Persistence Configuration RabbitMQ的持久层是为了在大多数没有配置的情况下,仍然提供相对较好的服务。但其中的一些配置,在某些情况下,是非常有用的。接下来,我们就来解释如何配置它们。强烈建议你在开始修改这些配置之前先 阅读本文相关内容 。 How persistence works 首先,在某些场景下:持久的和临时的消息都被写入到磁盘中。其中,持久的消息将在其到达队列之时就会被写入到磁盘之中,而临时的消息只会在内存不够用时,为了释放内存压力而被临时的写入磁盘当中。此时,持久化的消息也采用了同样的策略。持久层的作用是将这两种类型的消息都写入到此到磁盘当中。 在本文中我们说“队列queue

@Component, @Repository, @Service的区别

倾然丶 夕夏残阳落幕 提交于 2019-11-30 19:12:11
@Component, @Repository, @Service的区别 官网引用 引用spring的官方文档中的一段描述: 在Spring2.0之前的版本中, @Repository 注解可以标记在任何的类上,用来表明该类是用来执行与数据库相关的操作(即dao对象),并支持自动处理数据库操作产生的异常 在Spring2.5版本中,引入了更多的Spring类注解: @Component , @Service , @Controller 。 @Component 是一个通用的Spring容器管理的单例bean组件。而 @Repository , @Service , @Controller 就是针对不同的使用场景所采取的特定功能化的注解组件。 因此,当你的一个类被 @Component 所注解,那么就意味着同样可以用 @Repository , @Service , @Controller 来替代它,同时这些注解会具备有更多的功能,而且功能各异。 最后,如果你不知道要在项目的业务层采用 @Service 还是 @Component 注解。那么, @Service 是一个更好的选择。 就如上文所说的, @Repository 早已被支持了在你的持久层作为一个标记可以去自动处理数据库操作产生的异常(译者注:因为原生的java操作数据库所产生的异常只定义了几种

以及Hibernate和Mybatis区别

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

Java Web 三层架构详解

醉酒当歌 提交于 2019-11-30 02:06:21
java 三层架构ssh 一个spring2.5+hibernate3.2+struts2.0组合框架,使用spring 的 IoC来管理应用 的 所有bean,包括struts2 的 action,充分发挥了spring轻量级框架 的 优势。 摘 要: 针对当前Web应用程序开发面临的问题,结合目前比较流行的开源框架Spring、Struts和Hibernate,提出了一种开发J2EE Web应用的轻量级解决方案,以帮助开发人员在短期内搭建结构清晰、可复用性好、维护方便的Web应用程序。并且,通过案例具体说明了如何将这一方案应用到实际项目中。 关键词: J2EE MVC Struts Spring Hibernate 大型企业级Web应用系统的开发通常要求有一个良好的软件架构、便于协作开发和扩展升级,而传统的开发模式不能很好地满足这些要求。本文针对当前Web应用程序开发面临的问题,结合目前比较流行的开源框架SSH(Spring、Struts、Hibernate),提出一种开发J2EE 企业级Web应用的轻量级解决方案,并通过案例具体说明如何将这一方案应用到实际项目中。 1 框架技术 著名的软件大师Ralph Johnson对框架(Framework)进行了如下的定义: 框架是整个系统或系统的一部分的可重用设计,由一组抽象的类及其实例间的相互作用方式组成[1] 。

1.mybatis简介

五迷三道 提交于 2019-11-29 12:05:29
mybatis简介 MyBatis 是apache的一个开源项目 iBatis , 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。 iBATIS一词来源于"internet"和"abatis"的组合,是一个基于Java的持久层框架。iBATIS提供的持久层框架包括 SQL Maps和Data Access Objects(DAO) MyBatis 是支持普通 SQL查询,存储过程和高级映射的优秀 持久层 框架。MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。 MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。 每个MyBatis应用程序主要都是使用 SqlSessionFactory 实例的,一个SqlSessionFactory实例可以通过SqlSessionFactoryBuilder获得。SqlSessionFactoryBuilder可以从一个xml配置文件或者一个预定义的配置类的实例获得。 用xml文件构建SqlSessionFactory实例是非常简单的事情

JAVA后端常用框架SSM,Mybatis,Dubbo,RabbitMQ,Redis,Docker

南笙酒味 提交于 2019-11-29 11:52:07
01 前言 Java框架一直以来都是面试必备的知识点,而掌握Java框架,不管在成熟的大公司,快速发展的公司,还是创业阶段的公司,都能对当前正在开发中的系统有整体的认知,从而更好的熟悉和学习技术,这篇文章胖达就打算给大家介绍几款现阶段流行的框架组合,不管是在传统企业开发还是在互联网开发领域,这几种框架应该都是比较常用的。 02 三层架构 说到框架首先需要明确的是,在Web开发领域一般会将架构分为三个部分:表示层、持久层、业务层,之所以将整体架构分为三个层面,主要目的是让整个系统更具有条理性,通过分配任务的方式进行系统的解耦,让每一层只关心自己内部的事情,只知道下层的存在,不知道上层的存在。达到局部改变而不影响全局的目的,就比如餐馆中有服务员、厨师、收银员一样,各司其职,让系统有条不紊的运行下去。三层架构如下图所示(图中的数据访问层就是文中的持久层): 下面就简单介绍一下三层架构: 1.表示层 表示层其实就是用户能够看到的界面显示层,但是它的职责并不仅仅是显示界面那么简单,而是需要完成三件事情: 从界面中取得数据跟后台服务器交互 跟后台交互后进行数据绑定 将绑定的数据呈现在页面中 一般来说,这一层的设计会采用MVC的模式,M称为模型也就是实体类,用于数据的封装和数据的传输;V也就是页面组件,用于数据的展示;C为控制也就是流程事件,用于流程的控制。 2.业务层

Spring知识点总结大全

不想你离开。 提交于 2019-11-29 09:59:31
chapter01 Spring简介 一、Spring是什么? 在了解Spring之前,我们来了解在Java EE框架下企业级开发采用EJB框架的一些不足: (1) EJB太笨重,而且Entity EJB不能脱离容器 (2) 企业级服务使用困难 (3) 开发的复杂度太高 (4) 侵入式方案,EJB要使用特定的接口 因此,Spring应运而生。 Spring是一个开源的用于简化采用Java语言开发企业级程序的一个分层的框架。 关于程序的分层结构: 1、Presentation layer(表示层) (1) 表示逻辑(生成界面代码) (2) 接收请求 (3) 处理业务层抛出的异常 (4) 负责规则验证(数据格式,数据非空等) (5) 流程控制 2、Service layer(服务层/业务层) (1) 封装业务逻辑处理,并且对外暴露接口 (2) 负责事务,安全等服务 3、Persistence layer(持久层) (1) 封装数据访问的逻辑,暴露接口 (2) 提供方便的数据访问的方案(查询语言,API,映射机制等) Domain layer(域层) (1) 业务对象以及业务关系的表示 (2) 处理简单的业务逻辑 (3) 域层的对象可以穿越表示层,业务层,持久层 二、Spring的作用 为什么要使用Spring? (1) 简化企业级开发 ① 封装了大部分的企业级服务

iBatis和Hibernate浅析

为君一笑 提交于 2019-11-29 01:08:04
iBatis和Hibernate浅析 Hibernate Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。 一、基本功能 Hibernate作为数据持久化的中间件,足以让数据库在业务逻辑层开发中去冬眠。它通过可扩展标记语言(XML)实现了类和数据表之间的映射,使程序员在业务逻辑的开发中面向数据库而改为面向对象开发。使整个项目开发分工更加明确,提高了程序开发的效率。 configuration对象: Configuration 类负责管理Hibernate 的配置信息。Hibernate 运行时需要 获取一些底层实现的基本信息,其中几个关键属性包括: 1. 数据库URL 2. 数据库用户 3. 数据库用户密码 4. 数据库JDBC驱动类 5. 数据库dialect,用于对特定数据库提供支持,其中包含了针对特定数据库特性的实现,如Hibernate数据类型到特定数据库数据类型的映射等。以上信息一般情况下由hibernate.cfg