后台知识汇总

来源:https://blog.csdn.net/kingscoming/article/details/78837809
没有框架之前:
使用JDBC连接来读写数据库,打开数据库连接、使用复杂的SQL语句进行读写、关闭连接,获得的数据又需要转换或封装后往外传
1、Hibernate 框架 
1)Hibernate 是一种ORM框架,在Java对象与关系型数据库之间建立某种映射,以实现直接存取Java对象(POJO)。
2)ORM框架是一种不同与MVC的另一种思想框架,适用范围也与MVC截然不同。 
3)需要你创建一系列的持久化类,每个类的属性都可以简单的看做和一张数据库表的属性一一对应,当然也可以实现关系数据库的各种表件关联的对应。
4)当我们需要相关操作时,不用再关注数据库表。我们不用再去一行行的查询数据库,只需要持久化类就可以完成增删改查的功能。
5)使我们的软件开发真正面向对象,而不是面向混乱的代码。我的感受是,使用Hibernate比JDBC方式减少了80%的编程量。

2、Struts2框架(Struts框架已经淘汰了)
1)Struts2以WebWork优秀的设计思想为核心,吸收了 Struts框架的部分优点,提供了一个更加整洁的MVC设计模式实现的Web 应用程序框架。
2)Struts2引入了几个新的框架特性:从逻辑中分离出横切关注点的拦截器、减少或者消除配置文件、贯穿整个框架的强大表达式语言、支持可变更和可重用的基于MVC模式的标签API, 
3)Struts2充分利用了从其它MVC框架学到的经验和教训,使得 Struts2框架更加清晰灵活。

3、MyBatis 框架(前身是ibatis)
1)MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。
2)MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。
3)MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Ordinary Java Object,普通的 Java对象)映射成数据库中的记录。

4、Spring 框架
1)Spring的作用就是完全解耦类之间的依赖关系,一个类如果要依赖什么,那就是一个接口。
2)至于如何实现这个接口,这都不重要了。只要拿到一个实现了这个接口的类,就可以轻松的通过xml配置文件把实现类注射到调用接口的那个类里。
3)所有类之间的这种依赖关系就完全通过配置文件的方式替代了。所以Spring框架最核心的就是所谓的依赖注射和控制反转。

来源:http://www.cnblogs.com/rainbow70626/p/9784938.html
spring和spring mvc的区别与l联系
联系:Spring是IOC和AOP的容器框架,SpringMVC是基于Spring功能之上添加的Web框架,想用SpringMVC必须先依赖Spring。 
区别:
1)Spring可以说是一个管理bean的容器,也可以说是包括很多开源项目的总称,spring mvc是其中一个开源项目
2)SpringMVC是一个MVC模式的WEB开发框架;
3)Spring是一个通用解决方案, 最大的用处就是通过Ioc/AOP解耦, 降低软件复杂性, 所以Spring可以结合SpringMVC等很多其他解决方案一起使用, 不仅仅只适用于WEB开发


5、spring MVC 框架
1)Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面
2)它是一个典型的教科书式的mvc构架,而不像struts等都是变种或者不是完全基于mvc系统的框架

正在兴起的框架
1、Jersey 框架
1)Jersey RESTful 框架是开源的RESTful框架, 实现了JAX-RS (JSR 311 & JSR 339) 规范。它扩展了JAX-RS 参考实现, 提供了更多的特性和工具, 可以进一步地简化 RESTful service 和 client 开发
2)尽管相对年轻,它已经是一个产品级的 RESTful service 和 client 框架
3)对于请求式服务,对于GET,DELETE请求,你甚至只需要给出一个URI即可完成操作。 

2、springboot 框架 
1)springboot 框架,被称作一栈式解决方案。
2)比较轻量,也是当前微服务下的趋势;
3)springboot本身就是构建与spring之上,各种思想和特性无需多说,去掉了spring繁琐的配置,简化了原有spring开发的流程,提供了各种实用的特性如metric,actuctor等等;
4)最重要的是springboot附带了整个springcloud生态。两个框架对你解决大,中,小项目都没任何问题

3、play 框架(使用Scala和Java开发,同时支持Java和Scala项目)
1)play可能更加偏向于scala点,本身轻量性能高,随着逐步的优化易用性以及扩展性都变得越来越好;
2)Play Framework是一个开源的Web框架,背后商业公司是Typesafe
3)Play2从诞生起就能很容易的支持RESTful风格的架构

4、jfinal 框架
JFinal 是基于Java 语言的极速 web 开发框架,其核心设计目标是开发迅速、代码量少、学习简单、功能强大、轻量级、易扩展、Restful。在拥有Java语言所有优势的同时再拥有ruby、python等动态语言的开发效率。


框架整合
最初SSH 为 struts2+spring+hibernate 的一个集成框架,是目前较流行的一种JAVA Web应用程序开源框架,在市场的占有率很高
后来Spring + SpringMVC + Hibernate/Mybatis 
最近也慢慢演变为了Springboot + Mybatis。


项目管理工具:Maven
Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。当你使用Maven的时候,你用一个明确定义的项目对象模型来描述你的项目,然后Maven可以应用横切的逻辑,这些逻辑来自一组共享的(或者自定义的)插件。


来源:http://www.cnblogs.com/franson-2016/p/5533146.html
分布式服务:
概念:随着业务拆分越来越小,存储系统越来越庞大,应用系统的整体复杂度呈指数级增加,部署维护越来越困难。由于所有应用要和所有数据库系统连接,在数万台服务器规模的网站中,这些连接的数目是服务器规模的平方,导致存数据库接资源不足,拒绝服务。
既然每一个应用系统都需要执行许多相同的业务操作,比如用户管理、商品管理等,那么可以将这些公用的业务提取出来,独立部署。由这些可复用的业务连接数据库,提供共用业务服务,而应用系统只需要管理用户界面,通过分布式服务调用共用业务服务完成具体业务操作
分布式框架:Dubbo,Zookeeper,RPC,SOA
1、Dubbo 
1)Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。
2)简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需要用的,只有在分布式的时候,才有dubbo这样的分布式服务框架的需求,并且本质上是个服务调用的东东,说白了就是个远程服务调用的分布式框架

Dubbo能做什么?
1.透明化的远程方法调用,就像调用本地方法一样调用远程方法,只需简单配置,没有任何API侵入。      
2.软负载均衡及容错机制,可在内网替代F5等硬件负载均衡器,降低成本,减少单点。
3. 服务自动注册与发现,不再需要写死服务提供方地址,注册中心基于接口名查询服务提供者的IP地址,并且能够平滑添加或删除服务提供者。

Dubbo采用全Spring配置方式,透明化接入应用,对应用没有任何API侵入,只需用Spring加载Dubbo的配置即可,Dubbo基于Spring的Schema扩展进行加载。


2、Zookeeper
1)Zookeeper是Hadoop的一个子项目,它是分布式系统中的协调系统,可提供的服务主要有:配置服务、名字服务、分布式同步、组服务等。
2)
它有如下的一些特点:
简单:Zookeeper的核心是一个精简的文件系统,它支持一些简单的操作和一些抽象操作,例如,排序和通知。
丰富:Zookeeper的原语操作是很丰富的,可实现一些协调数据结构和协议。例如,分布式队列、分布式锁和一组同级别节点中的“领导者选举”。
高可靠:Zookeeper支持集群模式,可以很容易的解决单点故障问题。
松耦合交互:不同进程间的交互不需要了解彼此,甚至可以不必同时存在,某进程在zookeeper中留下消息后,该进程结束后其它进程还可以读这条消息。
资源库:Zookeeper实现了一个关于通用协调模式的开源共享存储库,能使开发者免于编写这类通用协议。
来源:http://www.cnblogs.com/jiyukai/p/9459983.html

3、RPC
RPC(Remote Process Call),即远程服务调用,被广泛地应用在很多企业应用中,是早期主要的服务治理方案,其流程较为简单,客户端consumer携带参数发送RPC请求到服务提供方provider,provider根据参数路由到具体函数,方法,并将执行获得的结果返回,至此一次RPC调用完成。

随着业务的发展,大数据时代的到来,服务提供方的压力也日益增大,单机应用的处理能力无论在软件,硬件上都受到限制,provider也不可能一直无限扩容,即使扩容,也存在着很多问题,即服务的路由,和Consumer的负载均衡问题。因此,分布式服务架构应运而生,RPC发展到一定阶段思考的变革,成为了分布式服务,云计算的计算机基础。
4、SOA
由于简单的RPC调用已经不能随着时代发展满足需求,因此复杂的业务逻辑对于分布式应用架构体系的需求愈发强烈,业务希望自己的服务是分布式部署的,请求是分流的,对数据的操作是能读写分离的,同时能屏蔽许多复杂需要自己编写的底层服务,借助已有的公共服务,去快速的构建自己的应用,降低人力开发维护的成本和提高应用交付的效率,基因此,基于分布式服务思想的SOA(Service-Oriented Architecture)成了新的受追捧的架构。

分布式服务的例子:
1)阿里巴巴的Dubbo,HSF,
2)腾讯的Tars,
3)京东的JSF,
4)新浪的Motan,
都已经是业界非常成熟的解决方案,其中开源的Dubbo和Motan受到了广大开发者的研究对象。


微服务技术 :
1、概念:微服务架构是一项在云中部署应用和服务的新技术。微服务可以在“自己的程序”中运行,并通过“轻量级设备与HTTP型API进行沟通”。关键在于该服务可以在自己的程序中运行。通过这一点我们就可以将服务公开与微服务架构(在现有系统中分布一个API)区分开来。在服务公开中,许多服务都可以被内部独立进程所限制。如果其中任何一个服务需要增加某种功能,那么就必须缩小进程范围。在微服务架构中,只需要在特定的某种服务中增加所需功能,而不影响整体进程
2、特点:
微服务的基本思想在于考虑围绕着业务领域组件来创建应用,这些应用可独立地进行开发、管理和加速。在分散的组件中使用微服务云架构和平台,使部署、管理和服务功能交付变得更加简单。
微服务是利用组织的服务投资组合,然后基于业务领域功能分解它们,在看到服务投资组合之前,它还是一个业务领域。
微服务这一概念出现于2012年,是因软件作者Martin Fowler而流行,他承认这并没有精确地定义出这一架构形式,虽然围绕业务能力、自动化部署、终端智能以及语言和数据的分散控制有一些常见的特性。
3、微服务平台
1)开源工作流平台 “Imixs-Workflow“发布了一款新的微服务架构,作为工作流来管理解决方案。Imixs的微服务( Imixs-Microservice)提供了一个工作流封装成微服务架构。这一服务可以独立于其背后的技术,绑定到任何业务应用中去。这允许业务应用改变业务逻辑的时,不用更改任何代码。这业务目标可以通过工作流模型控制。
2)mixs的微服务是基于Imixs的工作流引擎( Imixs-Workflow Engine)的复杂功能构建的,它可以以多种不同的方法来控制业务数据。Imixs的微服务可以发送电子邮件推送消息、日志业务交换,还可以确保所有类型业务数据的安全。
3)Imixs的工作流模型可以给业务处理模型(Imixs-Workflow Modeller)中的每种状态单独的设计一个ACL。这许可了高度复杂的业务应用程序,并在每个流程实例周围驻起了安全层。 [4] 

4、开发工具
Seneca是构建微服务框架的工具,然后把它们构建到测试和部署的devops工作流中。

前言:
一是 Martin Fowler 在其博客上发表了”Microservices”一文,正式提出微服务架构风格;
二是 Netflix 微服务架构经过多年大规模生产验证,最终抽象落地形成一整套开源的微服务基础组件,统称 NetflixOSS,Netflix 的成功经验开始被业界认可并推崇;
三是 Pivotal 将 NetflixOSS 开源微服务组件集成到其 Spring 体系,推出 Spring Cloud 微服务开发技术栈

Spring Cloud 是一套完整的微服务解决方案,基于 Spring Boot 框架,准确的说,它不是一个框架,而是一个大的容器,它将市面上较好的微服务框架集成进来,从而简化了开发者的代码量

spring-data-jpa的介绍
JPA Spring Data : 致力于减少数据访问层 (DAO) 的开发量, 开发者唯一要做的就只是声明持久层的接口,其他都交给 Spring Data JPA 来帮你完成!

Spring Data JPA 进行持久层(即Dao)开发一般分三个步骤:
1)声明持久层的接口,该接口继承 Repository(或Repository的子接口,其中定义了一些常用的增删改查,以及分页相关的方法)。
2)在接口中声明需要的业务方法。Spring Data 将根据给定的策略生成实现代码。
3)在 Spring 配置文件中增加一行声明,让 Spring 为声明的接口创建代理对象。配置了 <jpa:repositories> 后,Spring 初始化容器时将会扫描 base-package 指定的包目录及其子目录,为继承 Repository 或其子接口的接口创建代理对象,并将代理对象注册为 Spring Bean,业务层便可以通过 Spring 自动封装的特性来直接使用该对象。

任务调度器框架:Quartz
在某一个有规律的时间点干某件事。并且时间的触发的条件可以非常复杂,复杂到需要一个专门的框架来干这个事。 Quartz就是来干这样的事,你给它一个触发条件的定义,它负责到了时间点,触发相应的Job起来干活。

quartz框架是一个全功能、开源的任务调度服务,可以集成几乎任何的java应用程序—从小的单片机系统到大型的电子商务系统。 quartz可以执行上千上万的任务调度。 核心概念quartz核心的概念:scheduler任务调度、job任务、trigger触发器、jobdetail任务细节job任务:其实job是接口,其中只有一个execute方法: package ...
Quartz最重要的3个基本要素:

Scheduler:调度器。所有的调度都是由它控制。
Trigger: 定义触发的条件。例子中,它的类型是SimpleTrigger,每隔1秒中执行一次(什么是SimpleTrigger下面会有详述)。
JobDetail & Job: JobDetail 定义的是任务数据,而真正的执行逻辑是在Job中,例子中是HelloQuartz。 为什么设计成JobDetail + Job,不直接使用Job?这是因为任务是有可能并发执行,如果Scheduler直接使用Job,就会存在对同一个Job实例并发访问的问题。而JobDetail & Job 方式,sheduler每次执行,都会根据JobDetail创建一个新的Job实例,这样就可以规避并发访问的问题。

来源:https://blog.csdn.net/d12345678a/article/details/77837039
缓存框架:
1、Ehcache – Java分布式缓存框架
1)Ehcache是一个Java实现的开源分布式缓存框架,EhCache 可以有效地减轻数据库的负载,可以让数据保存在不同服务器的内存中,在需要数据的时候可以快速存取。
2)同时EhCache 扩展非常简单,官方提供的Cache配置方式有好几种。你可以通过声明配置、在xml中配置、在程序里配置或者调用构造方法时传入不同的参数。
2、Cacheonix – 高性能Java分布式缓存系统
Cacheonix同样也是一个基于Java的分布式集群缓存系统,它同样可以帮助你实现分布式缓存的部署。

3、ASimpleCache – 轻量级Android缓存框架
ASimpleCache是一款基于Android的轻量级缓存框架,它只有一个Java文件,ASimpleCache基本可以缓存常用的Android对象,包括普通字符串、JSON对象、经过序列化的Java对象、字节数组等。
4、JBoss Cache – 基于事物的Java缓存框架
JBoss Cache是一款基于Java的事务处理缓存系统,它的目标是构建一个以Java框架为基础的集群解决方案,可以是服务器应用,也可以是Java SE应用。

5、Voldemort – 基于键-值(key-value)的缓存框架
Voldemort是一款基于Java开发的分布式键-值缓存系统,像JBoss Cache一样,Voldemort同样支持多台服务器之间的缓存同步,以增强系统的可靠性和读取性能。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值