项目架构_项目架构图 - CSDN
精华内容
参与话题
  • Web项目基本结构

    万次阅读 2018-09-26 19:08:48
    C/S模式的软件 客户端/服务器 比如QQ,或者一些大型游戏 用户需要先下载软件的...我们在java中要学习的web项目,就是B/S架构项目. 什么是web web项目中,其实就是俩个软件之间的信息交换,客户端机器中的浏览...

    C/S模式的软件
    客户端/服务器 比如QQ,或者一些大型游戏
    用户需要先下载软件的客户端,然后才可以使用.

    B/S模式的软件
    浏览器/服务器 我们上网时候所访问网站的基本全是B/S模式的项目.
    用户不需要下载任何东西,只需要用到浏览器就可以访问到这个项目.
    我们在java中要学习的web项目,就是B/S架构的项目.

    什么是web
    web项目中,其实就是俩个软件之间的信息交换,客户端机器中的浏览器软件和服务器端机器中的web服务器软件之间的交换,比如在我们的学习中,就是客户端的浏览器和服务器端的tomcat进行信息交换。

    浏览器和tomcat是俩个不同的软件,但是在开发这俩个软件的时候,都是加入对http协议的支持,所有它们俩个进行信息交换的时候,是通过http协议规定的方式进行交换的:客户端先发送一个请求,然后服务器端接收到请求后再返回给客户端一个响应,并且把客户端所请求的资源返回给客户端.

    我们要做的时候就是,开发一个web项目,然后把这个web项目放到tomcat里面指的的位置,然后再运行这个tomcat软件,在tomcat运行过程中,其他计算机里面,只要是网络和我们这个服务器是通的,那么都可以通过浏览器来访问我们这个web项目。

    在用浏览器访问tomcat的时候,tomcat会按照浏览器发送的这个请求里面的内容,把浏览器想访问的页面从web项目中找到并返回给这个浏览器,或者是tomcat去调用web项目所写的某些java类中的方法(其实就调用servlet中的方法)

    注意:web项目中,任何一个类里面都不需要写main方法,整个项目的运行,对象的创建,方法的调用,都是由tomcat处理的,我们不需要去管. tomcat根据客户端的要求,会调用某个servlet中的指定方法,然后在这个指定方法里面,我们可以写上调用我们自己写的某个类的方法,类似的这样方法相互调用下去,最后调用到我们sql语句的执行,这样我们的一个功能就走完了,比如说登录或者注册功能。

    一个web项目最基本的项目结构:
    ※ Eclipse中一个web项目的基本结构:
    在这里插入图片描述
    ※ web项目中WebContent文件夹与Tomcat对应关系:
    在这里插入图片描述
    项目名字:jd1812_web
    1.文件夹jd1812_web,项目名字是随便起的
    2.WebTest文件中有文件WEB-INF,WEB-INF这个名字是固定的
    3.WEB-INF文件夹中:classes文件夹,lib文件夹,web.xml文件,这个名字都是固定的。
    4.web.xml文件在tomcat目录中的conf目录里面有一个web.xml模板.

    注意:
    WebContent文件夹下面还可以放文件夹、页面、css样式、js文件、图片等等.
    classes文件夹中放的是编译后的.class文件
    lib文件夹中放的是当前项目中运行所需要的jar包

    ※ tomcat服务器:
    1. bin 目录:启动、关闭tomcat相关的命令。
    2. conf 目录:tomcat的配置文件
    3. lib 目录:tomcat中可以同时部署多个项目,多个项目都需要用到的相同jar包,就可以放在这个目录。
    4. logs目录:记录tomcat日常运行的情况或者错误信息。
    5. temp目录:tomcat运行期间可能会产生一些临时文件,这写临时文件就会放在这个目录.
    6. webapps目录:我们开发好的web项目就是需要放到这个指定的目录下面,默认里面已经有一些tomcat自带的项目样例了.
    7. work目录:编译jsp页面时候需要用到的一个目录.

    访问tomcat中项目里面的资源的方式:

    http://IP:port/项目名字/项目在资源
    
    http://127.0.0.1:8002/WebTest/hello.html
    http://172.16.4.81:8002/WebTest/hello.html
    

    手写一个servlet并且放到tomcat中去运行:
    在这里插入图片描述

    package com.briup.test;
    
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.ServletException;
    
    import java.io.IOException;
    import java.io.PrintWriter;
    
    
    public class FristServletTest extends HttpServlet{
    
    	
    	public void doGet(HttpServletRequest req,HttpServletResponse resp)throws ServletException,IOException{
    		
    		PrintWriter out = resp.getWriter();
    
    		out.println("hello world");
    		out.flush();
    
    		out.close();
    	
    	}
    	
    }
    

    servlet-api.jar在tomcat的lib目录中

    servlet-api.jar和FristServletTest.java都在桌面编译java文件所在的命令窗口的路径也在桌面

    javac -cp servlet-api.jar -d . FristServletTest.java
    

    编译完之后,把这个.class文件已经包目录,放到项目中的classes目录里面,然后再项目中的web.xml文件进行配置,配置的目的是:想把一个路径映射成我们自己一个servlet,这个我们在浏览器里面就可以用个这个映射的路径来来访问这个servlet了.

    浏览器的地址栏中只能提供类似于这样的信息:主要是以路径的形式提供访问的信息:

    /.../.../.../...
    http://172.16.4.81:8002/WebTest/hello.html
    

    但是我们需要的是这样的信息:
    要运行servlet至少要有servlet的对象,所有我们需要这个类的package.类名

    com.briup.test.FristServletTest
    

    所以我们需要把一个路径映射成一个servlet:
    比如:把/first路径映射成FristServletTest这个servlet,将来用户在浏览器中输入/first路径之后,就相当于告诉服务器,需要运行FristServletTest这个servlet.

    例如:
    web.xml文件中加入:

    <servlet>
            <servlet-name>firstservlet</servlet-name>
            <servlet-class>com.briup.test.FristServletTest</servlet-class>
    </servlet>
    	
    <servlet-mapping>
            <servlet-name>firstservlet</servlet-name>
            <url-pattern>/first</url-pattern>
    </servlet-mapping>
    

    <servlet>中的<servlet-name>子标签:
    给你要描述的servlet起一个名字,这个是名字是随便起的,目的是为了在下面做映射的时候能够再找到这个servlet

    <servlet>中的<servlet-class>子标签:
    这个servlet的package.类名

    <servlet-mapping>中的<servlet-name>子标签:
    指明这个映射是给哪一个servlet的做的映射,通过之前随便起的servlet的名字找。

    <servlet-mapping>中的<url-pattern>子标签:
    这个就是我们要映射的路径,将来浏览器里面输入这个路径就相当于要访问我们这个servlet。
    注意:这个路径一定是以/开头的:/a /a/b /a/b/hello

    package com.briup.web.Servelt;
    
    import java.io.IOException;
    import java.io.PrintWriter;
    
    import javax.servlet.Servlet;
    import javax.servlet.ServletConfig;
    import javax.servlet.ServletException;
    import javax.servlet.ServletRequest;
    import javax.servlet.ServletResponse;
    
    /*
     * 负责处理浏览器提交的请求
     * 并回写资源
     */
    public class FirstServlet implements Servlet{
    	//当前Servlet对象销毁的时候调用的
    	@Override
    	public void destroy() {
    		// TODO Auto-generated method stub
    		
    	}
        //获取Servlet的配置对象
    	@Override
    	public ServletConfig getServletConfig() {
    		// TODO Auto-generated method stub
    		return null;
    	}
        //返回Servlet的基本信息
    	@Override
    	public String getServletInfo() {
    		// TODO Auto-generated method stub
    		return null;
    	}
        //对Servlet对象初始化的方法
    	@Override
    	public void init(ServletConfig arg0) throws ServletException {
    		// TODO Auto-generated method stub
    		
    	}
        //处理请求,回写资源
    	//ServletRequest对http请求封装,把各种各样的参数进行提取
    	//servletPesponse给浏览器写内容,写的时候servletPesponse自动封装成http响应格式的数据
    	//servletPesponse内部维护了字节流和字符流
    	@Override
    	public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException {
    		// TODO Auto-generated method stub
    	    //告诉浏览器写回的数据类型
    		arg1.setContentType("text/html;charset=UTF-8");
            //获取网络输出流
    		PrintWriter pw=arg1.getWriter();
    		pw.write("test OK");
    		pw.flush();
    		pw.close();
    	}
    }
    
    
    
    //web.xml文件
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
      <display-name>jd1812_web</display-name>
      <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
        <welcome-file>default.html</welcome-file>
        <welcome-file>default.htm</welcome-file>
        <welcome-file>default.jsp</welcome-file>
      </welcome-file-list>
      <servlet>
      <servlet-name>first</servlet-name>
      <!-- 处理请求的类是谁 -->
      <servlet-class>com.briup.web.Servelt.FirstServlet</servlet-class>
      </servlet>
      <servlet-mapping>
      <!-- 根据name相同,servlet-mapping会找到相应的servlet -->
      <servlet-name>first</servlet-name>
      <!-- 处理资源的名字,斜杠不能省略
      /表示的是项目名 -->
      <url-pattern>/FirstSer</url-pattern>
      </servlet-mapping>
    </web-app>
    
    展开全文
  • 项目架构

    千次阅读 2019-01-08 11:10:00
     传统企业架构(垂直架构):无论项目大小以及业务复杂性,统一在一个项目中实现。 特点:优点:结构简单、易于开发;  缺点:耦合度高(各个模块不易分离、模块间影响较大一个模块出现问题同样也会导致其他模块...

    一、架构演进

           传统企业架构(垂直架构):无论项目大小以及业务复杂性,统一在一个项目中实现。

    特点:优点:结构简单、易于开发;

               缺点:耦合度高(各个模块不易分离、模块间影响较大一个模块出现问题同样也会导致其他模块跟着出现问题,而咱们开发是本着“高内聚、低耦合”的标准进行的。)、不利于扩展、部署不够灵活。

           SOA分布式体系架构:是一种支持面向服务的架构样式。从服务、基于服务开发和服务的结果来看,面向服务是一种思考方式。更多的应用于互联网项目开发。从来看分布式架构也是应运而生(互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,迫切需一个治理系统确保架构有条不紊的演进。)。

    特点:优点:项目各个模块耦合度低、部署灵活、方便扩展;

               缺点:结构复杂、开发难度大、成本高。

    二、架构

    三、项目涉及技术介绍

    项目中所使用到的技术也可以被其同类技术进行替换,技术本身没有好坏,我们要将其用到合适的位置上去,这样才能更好的发掘这项技术的价值。并且,在面试过程中我也更希望听到你能够对所使用的技术进行比较然后再做出选择。比如:“为什么使用redis而不是memcached呢?
     

     

     

     

    展开全文
  • JAVA项目架构→我的见解

    千次阅读 2009-12-19 10:33:00
    再这里也来说说自己对软件架构,特别是在JAVA项目架构方面的看法。说得不一定对,但这也是我几年来的总结吧。1. 尽量不要考虑项目外的重用 许多人认为能提高软件的重用度是最好的,然而每个项目实际情况都会有所不同...

    在网上也看了很多东西,关于JAVA软件架构方面的东西,现在还真是很难找到,不过,软件开发的架构基本是相同的。所以,我在网上查找了很多其他语言关于软件架构方面的文章。再这里也来说说自己对软件架构,特别是在JAVA项目架构方面的看法。说得不一定对,但这也是我几年来的总结吧。

    1. 尽量不要考虑项目外的重用

    许多人认为能提高软件的重用度是最好的,然而每个项目实际情况都会有所不同,在设计项目中的某个模块、方法时,过多的考虑项目外的重用,必然会增加项目的复杂度,增加对开发时间的开销。也许有人会说,这会减少下一项目的开销,试问,下一项目是什么项目?有什么需求?各方面有什么影响因素?有谁会在当前知道这一切。 如果真要重用,应该是在项目结束后再将可重用的部分提取出来,经过修改、优化后做为企业的可重用资产,而不是当前项目中的一厢情愿。考虑项目外的重用性,这是很多刚从事软件工作的程序员常犯的错误,往往是考虑得越多,反而做出来的软件达不到设计的效果,完不成基本的功能或者代码逻辑过多,程序功能不完善等等。

    2.经常检查项目架构

    项目架构通常是在项目实现开始前就已确定的东西,是一个总体的设计。然而,在这时,对项目需求的理解、复杂度的估计都还停留在一个初始阶段。如果在项目开发过程中不能随着对项目的理解而改进架构,必然让项目中的成员都按错误的架构去开发项目。所以,必须经常检查项目的架构,进行必要的重构。

    3.重构

    有人说,都写了这么多了,再修改不是浪费时间嘛。他可能没有想过,一个下午的重构可以加快以后几个月的开发速度,这节省下来的时间是无法想象的。再者,通过重构,通常能想到更多简单的方法来代替现有的实现,这样的经验,同样可以简化其他模块的开发。

    4.避免过度集成,让每个模块只做自己的事

     一个常见的OA开发例子是,在业务系统中通常会有许多的审批,很多人一下子肯定会想到把审批做成一个通用的模块。这是没有问题的,然而通常的问题是,太多的人将审批结束后的业务处理也放到了审批模块的业务逻辑中,其实,那些是各业务模块自己的事,审批应该只完成审批即可,至于审批结束后怎么办,让该干这事的模块自己去处理。

    5.避免过度灵活

    设计和代码并不是越灵活越好的。一个常见的例子是,使用泛型时可以使类或者方法操作不同的对象,然而,在 JAVA 常用的 层架构中,如果一系列的类本来就是针对某个特定实体的操作,就没有必要还指定为泛型,再在使用时指定为使用特定的实体类。这颇有画蛇添足的感觉。

    6.减少锦上添花的功能

    页面无刷新,更酷的显示效果等等,对于业务系统来说都是些锦上添花的事,如果因为这些而使业务界面非常复杂,给业务处理带来一系列的问题,极端情况是业务处理无法继续时,再漂亮的界面也是无用的。一个忠告时,仅在确保业务处理正确进行的前提下再考虑其他的。这一点有一个前提是与用户进行必要的沟通。也就是说,JAVA实现的项目,重点在于对业务的处理上,只有很好的实现了业务处理,才能去考虑界面的美观与用户的视觉感官

    7.适当拆分

     这一点与 4 类似。尽量降低每个模块的复杂度,让脑力劳动转化成体力劳动。一个常见的例子是,通常对某个表单都会有增加、修改、删除和查看的功能。但是,前三种操作通常仅在某个功能点上、特定状态和特定权限的人进行操作(也许仅在在系统中的唯一一个界面中)。而查看操作却会分布在项目的各个角落,如果将这四种操作都放在同一界面中,虽然可以减少界面数,但增加的却是这一界面的复杂度,要对各种状态、条件进行必须的判断来进行界面元素的只读设置,这个复杂度的增加是指数级的,而如果将查看拆分开,工作量将是线性的,就算要做10个查看界面,总比复杂度变成 10*10 要容易处理得多,况且还可以组件化。

    8.与客户保持良好的沟通

    很多人都没有注意去保持和客户的沟通,很多架构师都认为,只在项目的需求阶段才需要和客户有沟通和交流,这点是很不好的习惯,因为客户的要求会随着时间的变化而变化,只有经常和客户保持良好的沟通,才能在第一时间内了解客户的需求变化,从而调整自己的项目架构方案,在最短的时间满足客户的需求。

    9.项目架构与数据库架构的联系

    很多人都认为,项目在开发的过程中,是不需要数据库的,只要在内存中实现就可以了。我个人认为,这是一种很不好的开发习惯。数据库虽说是根据项目的具体需求而定。但一个项目在架构过程中完全不考虑数据库的架构,那很可能就会使项目中实现的东西,在数据库中很难记录或者是数据库设计很麻烦,无形中增加了项目开发的难度。并且,在项目的开发过程中不考虑数据库,可能会使项目在挂靠数据库后,出现部分业务逻辑的无法实现,数据的丢失等等问题。

    当然,很多人的架构风格的不同,会有不同的架构见解,我的见解也不一定是正确的。希望大家可以从我的东西都学到一些东西,也希望大家可以多多交流在架构方面的看法

     

     

     

     

                                                 书写人:爱旦

                                                   间:2009-11-30

    展开全文
  • 项目架构

    2019-08-06 20:19:04
    转载于:https://www.cnblogs.com/WBaiC1/p/11099751.html

     

    转载于:https://www.cnblogs.com/WBaiC1/p/11099751.html

    展开全文
  • 软件项目组织架构安排

    万次阅读 2019-04-06 19:57:49
    这个主题涉及到三个方面,项目计划管理、组织管理和技术管理范畴。 项目计划管理是项目管理中的一个大... 从软件企业整体的组织架构来说,不外乎包括项目型、职能型、矩阵型几类。当然其中有偏项目型的组织结构,...
  • web项目项目结构解析

    万次阅读 多人点赞 2018-06-15 09:09:26
    一般来说,我们对Java web的理解为,我的前台通过Ajax发出一个请求(requset)数据到Servlet,然后在Servlet进行一系列的处理之后传入到DAO层,与数据库内的数据进行匹配等一系列操作,然后对传来的数据返回一个响应...
  • 结合实例谈项目架构设计

    千次阅读 2018-01-17 16:36:50
    作为一个移动端开发人员来讲,是很难接触到后端项目架构的,所幸,从2015年开始,负责部分管理工作,参与了项目架构相关的工作。项目从小到大,架构也越来越复杂,特别是最近做的一个跨国型项目,涉及到国内国外...
  • 项目架构分析

    千次阅读 2016-11-18 11:16:17
    项目架构分析 1.1-什么是架构 1.2-从系统层次进行架构分析 1.2.1-iOS系统框架介绍 1.2.2-软件架构分析 1.3-从应用层次进行架构分析 1.1-什么是架构? 我们人类在做事之前喜欢先把它的整体结构设想一下,就像盖一座...
  • 警告:所生成项目的处理器架构“MSIL”与引用“***”的处理器架构“x86”不匹配。这种不匹配可能会导致运行时失败。请考虑通过配置管理器更改您的项目的目标处理器架构,以使您的项目与引用间的处理器架构保持一致,...
  • .NET C#错误:所生成项目的处理器框架“MSIL”与引用“wdapi_dotnet1021”的处理器架构“AMD64”不匹配。 直接在项目右键属性-&gt;生成-&gt;x64。 即可解决 ...
  • java 各种架构图汇总

    万次阅读 多人点赞 2019-07-09 22:09:34
    java 类加载器架构 2. JVM 架构 Java 技术体系 线程运行架构   Java 体系(编译与运行)结构 JMS 技术架构 7. JMX 技术架构 Spring 架构 9. Hibernate 架构 ...
  • web项目部署架构

    万次阅读 2018-11-22 10:21:22
    为大家做了一张web项目架构图,希望大家看了后能够对项目部署有一个清楚直观的认识. 如有任何技术疑问都可以在下方留言评论,每天将抽出部分留言进行解答 做个简单解释: 多个服务器的,被称之为集群环境,如上图...
  • 初步了解架构

    千次阅读 2019-03-17 21:54:09
    我们通常定义架构有几个层次,分业务架构、产品架构、应用架构和技术架构。 业务架构:描述一个企业围绕一个行业做了哪些业务,例如支付行业的收单、退款、出款、充转提等能力,这与公司对外和对内定义的产品无关。 ...
  • 软件架构演进 软件架构的发展经历了从单体结构、垂直架构、SOA架构到微服务架构的过程,博客里写到了这四种架它们的特点以及优缺点分析,个人学习之用,仅供参考!1.1.1 单体架构 特点:... 优点:1、项目架构简...
  • 系统架构设计方法论——TOGAF

    万次阅读 2017-08-27 15:49:35
    1、ADM的架构开发阶段 ADM方法是由一组按照架构领域的架构开发顺序而排列成一个环的多个阶段所构成。通过这些开发阶段的工作,设计师可以确认是否已经对复杂的业务需求进行了足够全面的讨论。TOGAF中最为著名的一个...
  • 通用 漂亮 功能强大的BS架构系统框架

    万次阅读 热门讨论 2016-04-19 15:55:26
    不需要写任何代码就可以创建一个漂亮,功能强大的应用系统框架,...此项目模板在.net4.0环境下开发,可以部署到VS2010及以上版本的开发工具里。 模板文件【CS.NET.zip】一份、数据库创建脚本【CS.NET_SQL2008R2.sql】
  • (1)项目管理师:掌握信息系统项目管理的知识体系,具备管理大型、复杂信息系统项目和多项目的经验和能力;能根据需求组织制定可行的项目管理计划;能够组织项目实施,对项目的人员、资金、设备、进度和质量等进行...
  • 项目经理 架构师的区别

    千次阅读 2016-05-16 10:44:11
    项目经理和架构师的岗位职责 项目经理和架构师这两个职位虽然在工作内容和职责上不同,但是在国内的企业中这两个职位的职责经常会放在一个人身上,在中小型公司中更是如此,一个人既是项目经理又是系统结构的设计...
  • 2T架构师教学视频打包分享

    万次阅读 2017-08-30 11:31:26
    “一站式架构师学习资料”全共享 第三季“架构师资料共享圈” 【特别圈】 ...一,架构师第一段 ...二,架构师第二段 ...三,架构师第三段 ...四,架构师第四段 ...八,架构师第八段,淘宝商城实战项目
  • 架构-如何画架构

    千次阅读 2019-10-17 11:23:49
    资料 如何画出一张合格的技术架构图? 如何画架构图?...画出你的项目架构图 一个关于“系统架构图怎么画?”的问题 不错的架构图 BFF - Backend for Frontend BFF in Serverless 前端应用框架...
1 2 3 4 5 ... 20
收藏数 733,778
精华内容 293,511
关键字:

项目架构