三层架构

三层架构之泛型应用

扶醉桌前 提交于 2019-12-30 05:26:48
一说到三层架构,我想大家都了解,这里就简单说下,三层架构一般包含:UI层、DAL层、BLL层,其中每层由Model实体类来传递,所以Model也算是三层架构之一了,例外为了数据库的迁移或者更OO点,DAL层就衍生出了IDAL接口。Model就是简单的对应数据库里面的类,DAL层就是主要操作数据库的方法了,BLL这个就看业务了。而DAL层大部分的方法都是差不多,无非就是几个Insert,Update,Delete,Select。 再来说下泛型,这个是2.0才开始有的,算是2.0中一个非常重要的技术了,关于泛型有什么好处优点就不说了,网上一大堆,其实说了也没有什么用,大家在实践中运用了就知道,我觉得泛型一个最核心的地方就是,泛型封装了类型,把类型的定义延迟到了客户端,泛型又像一个类型的模板,只要你定义了一个泛型类,就相当于定义了N个类,每个类的类型不一样而已。 上面我们说了,三层架构中的DAL层一般包括Insert,Update,Delete,Select这几种了,那么在泛型还没有到来之前,我们的程序员兄弟一般是怎么做的,首先为每个实体定义一个DAL接口,比如有个User这个实体对象,那么就有一个IUserDAL这个接口以及UserDAL这个实现类,如果有N个实体,那么差不多就需要N个接口和实现类了,而这些接口中的Insert,Update,Delete

三层架构模式(MVC)案例:登录注册功能实现

走远了吗. 提交于 2019-12-27 15:09:09
1.搭建开发环境   1.1 导入项目所需的开发包:      dom4j-1.6.1.jar    jaxen-1.1-beta-6.jar    commons-beanutils-1.8.0.jar    commons-logging.jar    jstl.jar   standard.jar          1.2 创建程序的包名          1.3 在类目录下面,创建用于保存用户数据的xml文件(users.xml)-- 简单实现XML代替数据库users.xml <?xml version="1.0" encoding="UTF-8"?> <users> <user id="51db22dc-f861-417b-b929-588aec86237e" username="abc" password="123" email="abc@sina.com.cn" birthday="1990-8-5 0:00:00"/> </users> View Code 2、开发实体user   1.1 User.java   package com.lich.domain; import java.util.Date; public class User { private String id; private String username; private String

MVC模式(三层架构模式)

家住魔仙堡 提交于 2019-12-26 00:58:38
  (Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。   MVC模式最早由Trygve Reenskaug在1974年提出,是施乐帕罗奥多研究中心(Xerox PARC)在20世纪80年代为程序语言Smalltalk发明的一种软件设计模式。 MVC模式 的目的是实现一种动态的程序设计,使后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能。除此之外,此模式通过对复杂度的简化,使程序结构更加直观。软件系统通过对自身基本部份分离的同时也赋予了各个基本部分应有的功能。专业人员可以通过自身的专长分组: (控制器Controller)- 负责转发请求,对请求进行处理。 (视图View) - 界面设计人员进行图形界面设计。 (模型Model) - 程序员编写程序应有的功能(实现算法等等)、数据库专家进行数据管理和数据库设计(可以实现具体的功能)。 MVC工作原理 MVC是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。 视图   视图是用户看到并与之交互的界面。对老式的Web应用程序来说,视图就是由HTML元素组成的界面,在新式的Web应用程序中

学习spring必了解的三个知识点——注解、反射机制、三层架构

那年仲夏 提交于 2019-12-21 19:28:08
学习spring必了解的三个知识点——注解、反射机制、三层架构 注解、反射机制、三层架构 注解案例 反射机制案例 三层架构案例 注解、反射机制、三层架构 注解:注解的功能类似于代码中的注释,所不同的是注解不是提供代码功能的说明,而是实现程序功能的重要组成部分。注解大多都有自己的配置参数,而配置参数以名值对的方式出现,所以从某种角度来说,可以把注解看成是一个XML元素,该元素可以有不同的预定义的属性。在代码中使用注解,就相当于把一部分元数据从XML文件移到了代码本身之中,在一个地方管理和维护。简单的说,注解跟踪代码依赖性,实现替代配置文件功能。 反射机制:反射是框架的灵魂,它可以有效地降低类之间的耦合,很多框架都运用了反射原理。想要实现反射,就必须先拿到该类的字节码文件对象(.class),通过字节码文件对象,就能够通过该类中的方法获取到我们想要的所有信息,每一个类对应着一个字节码文件也就对应着一个Class类型的对象,也就是字节码文件对象。 三层架构: UI(表现层): 主要是指与用户交互的界面。用于接收用户输入的数据和显示处理后用户需要的数据。 BLL:(业务逻辑层): UI层和DAL层之间的桥梁。实现业务逻辑。业务逻辑具体包含:验证、计算、业务规则等等。 DAL:(数据访问层): 与数据库打交道。主要实现对数据的增、删、改、查。将存储在数据库中的数据提交给业务层

搭建连接MySql的三层架构的ASP.NetCore2.0的WebApi

帅比萌擦擦* 提交于 2019-12-16 17:13:24
这里我们用三层架构搭建一个连接MySql的ASP.netCore模板的WebApi项目 首先添加WebApi项目(ASP.NetCore版本) 右键解决方案>新建项目> 选择Web>ASP.NET Core Web应用程序(.NET Core) 选择Web API 此时的目录结构: 添加实体层Entity 右键添加>新建项目>.Net Core类库 添加后的目录结构 BaseEntity: using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Runtime.Serialization; using System.Text; namespace Entity.Core { /// <summary> /// DB表基础属性 /// </summary> public abstract class BaseEntity<T> { public BaseEntity() { CreteTime = DateTime.Now; } /// <summary> /// 主键Id /// </summary> [DataMember] [Key] public T Id { get; set; } /// <summary> ///

关于MVC与三层架构

独自空忆成欢 提交于 2019-12-11 19:27:17
详情 回答一: 当然啊,你要明白三层架构的MVC的区别和联系: 三层架构是最基本的项目分层结果,而MVC则是三层架构的一个变体,MVC是一种好的开发模式。首先你要明白MVC分别代表的是什么意思. M 即Model(模型层),主要负责出来业务逻辑以及数据库的交互 V 即View(视图层),主要用于显示数据和提交数据 C 即Controller(控制器),主要是用作捕获请求并控制请求转发 三层:UI 界面层 BLL 业务逻辑层,DAL数据访问层,Model 实体层 MVC中的的M 不是三层中的Model(实体层),他其实包括三层中的 BLL,DAL,Model,这是非常要注意的,这也是他们之间的区别的关键所在 其有点有如下: 低耦合性 高重用性和可适用性 较低的生命周期成本 快速的部署 可维护性 有利于软件工程化管理 当然优点也有缺点,那就是内部结构复杂,不容易理解,文件数量大,管理难度自然也就大 回答二: MVC设计模式… 三层架构… 他们细分之后得到的是:View(UI)、BIZ(BLL)、DAO(DAL)、Entity(Model)、Controller MVC把 BIZ(BLL)、DAO(DAL)、Model(Entity) 统一称之为 模型(MODEL),得到:View、Controller、 模型(MODEL) 三层 在我使用中 暂未体会到控制器的存在,完全是:UI、DAO

一篇文章告诉你什么是架构模式和架构风格

久未见 提交于 2019-12-11 10:36:25
本文探讨如下几个问题: 架构模式和架构风格有区别吗? 什么是架构模式? 什么是架构风格? 架构模式和架构风格的区别是什么? 有哪些架构模式? 有哪些架构风格? 架构模式=架构风格? 如果你搜索「架构模式和架构风格的区别」,你会发现答案千差万别: 有的观点认为架构模式和架构风格是一个东西,只是叫法不同 有的观点认为架构风格是架构模式的外在表现 有的观点认为架构模式和架构风格是不同的两个概念(具体有什么不同,又有不同的观点) 有的观点认为架构模式解决问题,架构风格不解决问题(例如:建房子有建房子的模式,而无论是建成哥特风还是现代风,都还是房子) 有的观点认为架构风格是高层级的架构模式 我个人的观点是: 架构模式是特定问题域下,架构风格的具体应用 ! 我们来一个个的说! 什么是架构模式? 在说架构模式之前,我们先来看看我们常挂在嘴边的设计模式是怎么定义的! GOF在《Design Patterns》这本书的「What is a Design Pattern?」小节,对设计模式下了一个明确的定义: The design patterns in this book are descriptions of communicating objects and classes that are customized to solve a general design problem in a

基于三层架构开发DAL层问题总结

六月ゝ 毕业季﹏ 提交于 2019-12-10 22:53:02
基于三层架构开发DAL层问题总结 1.面临多条件查询时sql脚本问题where 1 = 1的使用,可以简便sql脚本的连接 //说明当没有选择班级选项时classId = -1 public SqlDataReader GetReader ( int classId , string studentId , string studentName ) { List < SqlParameters > paramList = new List < SqlParameters > ( ) ; //因为不知道参数有几个,所有不能用数组 string sql = "select StudentId, StudentName, Gender, ClassName from Students " ; sql + = "inner join StudentClass on Students.ClassId = Student.ClassId " ; sql + = "where 1 = 1 " ; if ( studentId . Lenght != 0 ) { sql + = "and StudentId = @StudentId " ; paramList . Add ( "@StudentId" , studentId ) ; } else { if ( classId != - 1 ) {

SpringMvc三层架构注解详解@Controller、@Service和@Repository

旧时模样 提交于 2019-12-09 02:06:06
1. @Controller控制层 2. @Service() 3. @Repository持久层 springvmc采用经典的三层分层控制结构,在持久层,业务层和控制层分别采用@Repository、@Service、@Controller对分层中的类进行注解,而@Component对那些比较中立的类进行注解 1. @Controller控制层 @Controller用于标记在一个类上,使用它标记的类就是一个SpringMvc Controller对象,分发处理器会扫描使用该注解的类的方法,并检测该方法是否使用了@RequestMapping注解。 @Controller只是定义了一个控制器类,而使用@RequestMapping注解的方法才是处理请求的处理器。 @Controller标记在一个类上还不能真正意义上说它就是SpringMvc的控制器,应为这个时候Spring还不认识它,这个时候需要把这个控制器交给Spring来管理。有两种方式可以管理: <!--基于注解的装配--> <!--方式一--> <bean class="com.HelloWorld"/> <!--方式二--> <!--路径写到controller的上一层--> <context:component-scan base-package="com"/> Action层: package com;

4、Spring MVC基础配置

烈酒焚心 提交于 2019-12-08 13:58:25
1、Spring MVC   MVC和三层架构的区别:   MVC:Model+View+Controller 数据模型+视图+控制器   三层架构:Controller+Service+Dao 展现层+应用层+数据访问层 2、常用注解   @Controller:表明这个类是Spring MVC中的控制器,声明为Spring的一个Bean,Dispatcher Servlet会自动扫描注解了此注解的类,并将     Web请求映射到注解了@RequestMapping的方法上   @RequestMapping:用来映射Web请求(访问路径和方法)到处理类和方法上;注解在方法上的路径会继承注解在类上的路径;支持Servlet     Request和Response作为参数,也支持对Request和Response的媒体类型进行配置   @RequestBody:允许request参数在request体内而不是直接链接到地址后面,此注解放置在参数前   @ResponseBody:支持将返回值放在response体内而不是返回一个页面;在Ajax请求中,可以以此注解返回数据而不是页面;此注解可以     放置在返回值前或方法上   @PathVariable:接收路径参数,此注解放置在参数前   @RestController:组合@Controller和