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还不能成为行业内的标准设计模式.这会 ...
 
随机推荐
- DevExpress WinForms使用教程:WinForms Fluent Design和Acrylic Effects
			
在先前的版本发布中,宣布支持Fluent Design Form和Acrylic effects——旨在复制Microsoft下一代UI metaphor的新功能.本文主要介绍如何实现此功能,并明确说 ...
 - DevExpress v18.1新版亮点——CodeRush for VS篇(二)
			
用户界面套包DevExpress v18.1日前正式发布,本站将以连载的形式为大家介绍各版本新增内容.本文将介绍了CodeRush for Visual Studio v18.1 的新功能,快来下载试 ...
 - Intellij IDEA生成foreach或者loop 快捷键
			
iter Iterate (for each..in) itin Iterate (for..in) itli Iterate over a List itar Iterate elements of ...
 - oracle 实例名,数据库名概念
			
拷贝于https://www.cnblogs.com/ahudyan-forever/p/6016784.html 在实际的开发应用中,关于Oracle数据库,经常听见有人说建立一个数据库,建立一个I ...
 - 搭建Django项目
			
命令行搭建Django项目 1.安装django 在指定解释器环境下安装django 1.11.9 在真实python3环境下: pip3 install django==1.11.9 在虚拟环境下: ...
 - 利用Hackrf One进行GPS定位欺骗制作超级跑马机
			
0×00 驾校的困惑 现行规定要求每个学员都必须在驾校练习够规定的学时,才能参加考试,在每台教练车上都安装有计时计程终端,学员刷卡刷指纹后开始累计里程.但是目前中国的很多驾校,存在车少人多的情况,假设 ...
 - outlook vba开发要点
			
1.学学基础的VB语法 https://www.yiibai.com/vba/vba_programming_charts.html 2.找一个样例看看 VBA编程实现自动回复邮件 https://b ...
 - L1-028. 判断素数
			
本题的目标很简单,就是判断一个给定的正整数是否素数. 输入格式: 输入在第一行给出一个正整数N(<=10),随后N行,每行给出一个小于231的需要判断的正整数. 输出格式: 对每个需要判断的正整 ...
 - python自定义异常抛出接受多个数值
			
在使用Python的时候,有时候想自己自定义异常错误,同时抛出多个参数,比如对数据库查找一条数据,如果没有找到,返回 {"errCode":"-1", &quo ...
 - background-position 的设置
			
不应该按移动端的实际宽度或高度设置,应该按切出来图片的宽度设置,比如精灵图中有两个图片,各宽500px,那position应该设置为500px 0:而不是250px 0