java_架构与模式
框架有哪些?
C++语言的QT、MFC、gtk,
Java语言的SSH,
php语言的 smarty(MVC模式),
python语言的django(MTV模式)等等
设计模式有哪些?
工厂模式、适配器模式、策略模式等等
简而言之:框架模式是大智慧,用来对软件设计进行分工;
设计模式是小技巧,对具体问题提出解决方案,使得代码复用率和耦合度降低。
===============
设计模式
http://www.cnblogs.com/maowang1991/archive/2013/04/15/3023236.html
===============
设计模式和体系结构模式
建立模式(模型)
环境:
问题:
方案:
模式是一条由三部分组成的规则,一个特定的环境,一个问题,一个解决方案
模式的核心思想:进行设计的复用
SSH
Struts(Struts MVC)+Spring+Hibernate
MVC
之前的项目比较简单,多是用JSP 、Servlet + JDBC 直接搞定,在项目中尝试用 Struts(Struts MVC)+Spring+Hibernate, 严格按照分层概念驱动项目开发,
MVC作为WEB项目开发的核心环节,正如三个单词的分解那样,C(控制器)将V(视图、用户客户端)与M(模块,业务)分开构成了MVC ,这边不去讨论项目中是否应用MVC ,也不针对MVC的实现原理进行讲解,而是探讨实践中如何从应用SSH, 到Struts(Struts MVC)+Spring+Hibernate的演化过程。
一、Spring MVC环境搭建:(Spring 2.5.6 + Hibernate 3.2.0)
1. jar包引入
Spring 2.5.6:spring.jar、spring-webmvc.jar、commons-logging.jar、cglib-nodep-2.1_3.jar
Hibernate 3.6.8:hibernate3.jar、hibernate-jpa-2.0-api-1.0.1.Final.jar、antlr- 2.7.6.jar、commons-collections-3.1、dom4j-1.6.1.jar、javassist- 3.12.0.GA.jar、jta-1.1.jar、slf4j-api-1.6.1.jar、slf4j-nop-1.6.4.jar、相应数据库的 驱动jar包
SpringMVC是一个基于DispatcherServlet的MVC框架,每一个请求最先访问的都是 DispatcherServlet,DispatcherServlet负责转发每一个Request请求给相应的Handler,Handler处理 以后再返回相应的视图(View)和模型(Model),返回的视图和模型都可以不指定,即可以只返回Model或只返回View或都不返回。
DispatcherServlet是继承自HttpServlet的,既然SpringMVC是基于DispatcherServlet的,那么 我们先来配置一下DispatcherServlet,好让它能够管理我们希望它管理的内容。HttpServlet是在web.xml文件中声明的。
spring 3.2不支持1.8编译环境,解决办法就是降为1.7编译环境
spring官网说了,要使用java8,只支持spring 4.X以上版本,而spring的使用最低Java要求java5及以上,
如果出现例外,那就例外说了,比如一开始spring 3.1就可以在java8上编译。
cxf
springmvc
http://www.jianshu.com/p/0ccaa4af05fc
三分钟学会用SpringMVC搭建最小系统(超详细)
=========
xml
json
=========
soap
restful
==========
CXF
Apache CXF™ is an open source services framework. CXF helps you build and develop services using frontend programming APIs, like JAX-WS and JAX-RS. These services can speak a variety of protocols such as SOAP, XML/HTTP, RESTful HTTP, or CORBA and work over a variety of transports such as HTTP, JMS or JBI.
=================================
restful
路径又称"终点"(endpoint),表示API的具体网址。
服务器返回的数据格式,应该尽量使用JSON,避免使用XML。
REST(英文:Representational State Transfer,简称REST)描述了一个架构样式的网络系统,比如 web 应用程序。它首次出现在 2000 年 Roy Fielding 的博士论文中,他是 HTTP 规范的主要编写者之一。在目前主流的三种Web服务交互方案中,REST相比于SOAP(Simple Object Access protocol,简单对象访问协议)以及XML-RPC更加简单明了,无论是对URL的处理还是对Payload的编码,REST都倾向于用更加简单轻量的方法设计和实现。值得注意的是REST并没有一个明确的标准,而更像是一种设计的风格。
REST 指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是 RESTful。
rest文档化,wsdl和wadl
WSDL(Web Services Description Language,Web服务描述语言), 是W3C提出的,通常用于SOAP服务器描述其所能提供的服务。WSDL的服务绑定选项灵活(例如,可以通过SMTP邮件服务器提供服务),除了GET和POST之外,并不支持HTTP操作。由于REST服务通常使用HTTP动作,例如PUT和DELETE,所以选择WSDL作为REST服务的文档描述显然不太合适。
在 version 2.0中,WSDL支持所有的HTTP动作,因此目前可以考虑作为REST服务的文档描述。
第二个选择是WADL(Web
Application Description Language,Web应用描述语言)。
WADL由Sun公司来主导,同REST类似,WADL是轻量级、易于理解、更易编写。在某些方面,WADL并没有WSDL灵活(没有绑定到SMTP服务),但是但是这对REST来说已经足够了,并且动作更少。
==========================================
http://www.json.org/
json的一种java实现就是json-lib
http://json-lib.sourceforge.net/index.html
json-lib-2.4-jdk15.jar
commons-lang-2.3.jar
commons-logging-1.2.jar
ezmorph-1.0.6.jar
commons-collections.jar
commons-beanutils-1.8.0.jar
将上面的依赖包导入之后,下面是测试类,如果成功输出,就正常
package com.fgy.java8se;
import net.sf.json.JSONArray;
public class ff {
public static void main(String[] args) {
boolean[] boolArray = new boolean[]{true,false,true};
JSONArray jsonArray = JSONArray.fromObject( boolArray );
System.out.println( jsonArray );
}
}
===========================================
http://www.cnblogs.com/aaronjs/p/3581904.html
1994年,Gof(Gang of Four)在《Design Patterns: Elements of Reusable Object-Oriented Software》一书中对MVC模式做了深入的解析。
为什么GOF的23种设计模式里面没有MVC?
好了,到这里应该来解释为什么MVC不是一种设计模式这个问题了。
GoF (Gang of Four,四人组, 《Design Patterns: Elements of Reusable Object-Oriented Software》/《设计模式》一书的作者:Erich Gamma、Richard Helm、Ralph Johnson、John Vlissides)并没有把MVC提及为一种设计模式,而是把它当做“一组用于构建用户界面的类集合”。在他们看来,它其实是其它三个经典的设计模式的演变:观察者模式(Observer)(Pub/Sub), 策略模式(Strategy)和组合模式(Composite)。根据MVC在框架中的实现不同可能还会用到工厂模式(Factory)和装饰器(Decorator)模式。
java_架构与模式的更多相关文章
- 架构和模式的区别:三层架构和MVC在应用开发中的位置
架构是系统层面的,可以是多层架构,也可以是事件驱动架构,也可以是微服务架构. 模式是GUI应用的一种职责分离设计. 三层架构(包含多层架构)和 MVC模式(包含MVP, MVVM) 没什么关系,它们不 ...
- 用VS2010创建三层架构开发模式及三层架构的研究
三层架构的研究 三层体系结构的概念 用户界面表示层(USL) 业务逻辑层(BLL) 数据访问层(DAL) BLL将USL与DAL隔开了,并且加入了业务规则 各层的作用 1:数据数据访问层:主要是对 ...
- Hive基础之Hive体系架构&运行模式&Hive与关系型数据的区别
Hive架构 1)用户接口: CLI(hive shell):命令行工具:启动方式:hive 或者 hive --service cli ThriftServer:通过Thrift对外提供服务,默认端 ...
- MFC软件工程架构模型-模式窗口-非模式窗口
1. SDI单文档界面: MDI多文档界面.有多个"关闭-最大化-最小化"等这样的窗口嵌套 基于对话框的软件模型 2.模式对话框和非模式对话框 模式对话框:使用DoMoel(),弹 ...
- Thinkphp3.2学习——架构_URL模式
入口文件是应用的单一入口,对应用的所有请求都定向到应用入口文件,系统会从URL参数中解析当前请求的模块.控制器和操作: http://serverName/index.php/模块/控制器/操作 这是 ...
- redis架构~哨兵模式
一 哨兵模式稳定版本 redis哨兵模式是redis自带的高可用框架,稳定版本为redis2.8以上二 哨兵模式建立 1 避免单点故障,建立启动多个哨兵进程 2 哨兵模式启动命令 redis-s ...
- 企业级架构 MVVM 模式指南 (WPF 和 Silverlight 实现) 译(3)
第一章 表现模式关注分离(soc)是企业及软件开发中非常有用的核心原则,也是许多表现模式背后的驱动力量.在WPF和Silverlight开发中,MVVM成为了实现关注分离最为有效的设计模式.然而,这种 ...
- 企业级架构 MVVM 模式指南 (WPF 和 Silverlight 实现) 译(2)
本书包含的章节内容 第一章:表现模式,以一个例子呈献给读者表现模式的发展历程,我们会用包括MVC和MVP在内的各种方式实现一个收费项目的例子.沿此方向,我们会发现每一种模式的问题所在,这也是触发设计模 ...
- 企业级架构 MVVM 模式指南 (WPF 和 Silverlight 实现) 译(1)
前言对于WPF和Silverlight来讲,MVVM是微软设计师和业内专家高度推荐的非常棒的一种设计模式.本书会探讨MVVM设计模式的一些自身缺陷以及为什么MVVM还不能成为行业内的标准设计模式.这会 ...
随机推荐
- 第六节 静态的(static)和单例模式
main函数 主函数是一个特殊的函数,作为程序的入口,可以被jvm(虚拟器)调用 主函数的定义 public 表示该函数的访问权限是最大的. static 代表主函数随着类的加载就已经存在了. voi ...
- it网站
1:http://www.importnew.com/ importnew 专注于java的论坛 2:Github是最活跃的开源代码库和版本控制平台,可以说是程序员当中知名度最高的技术社区.各 ...
- mvc4使用KindEditor文本编辑器
最近做项目要用文本编辑器,编辑器好多种,这里介绍KindEditor在asp.net mvc4中的使用方法. 一.准备工作: 1.下载KindEditor.去官网:http://www.kindsof ...
- LVS原理详解(3种工作方式8种调度算法)
一.集群简介 什么是集群 计算机集群简称集群是一种计算机系统,它通过一组松散集成的计算机软件和/或硬件连接起来高度紧密地协作完成计算工作.在某种意义上,他们可以被看作是一台计算机.集群系统中的单个计算 ...
- http 协议三次握手
HTTP是超文本传输协议,信息是明文传输.TPC/IP协议是传输层协议,主要解决数据如何在网络中传输.HTTP是应用层协议,主要解决如何包装数据. [HTTP与TCP/IP]和其他的协议在最初OSI模 ...
- python点滴:判断字符串是否为合法json格式
在一些情况下,我们需要判断字符串是否为合法json格式. 思路很简单:尝试对字符串使用json.loads(),如果不是合法json格式,则会抛出ValueError异常. 示例如下: import ...
- laravel 添加验证码
1. 安装依赖 composer require gregwar/captcha 2.使用 use Gregwar\Captcha\CaptchaBuilder; use DB; use Requ ...
- 'autocomplete="off"'在Chrome中不起作用解决方案
1.正确的姿势是: <input type="password" name="password" autocomplete="new-passw ...
- Jsoup的学习
一 . 什么是jsoup jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址.HTML文本内容.它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来 ...
- idea 新建一个java项目并运行
这个只能算是个笔记,参考:参考文档 打开Idea,选择create new project,如图 或选择File ——> New——>Project... 出现以下界面,选中Java,然后 ...