手工搭建ABP框架(1) - Web项目】的更多相关文章

为了防止不提供原网址的转载,特在这里加上原文链接: http://www.cnblogs.com/skabyy/p/7295533.html ABP是 ASP.NET Boilerplate Project 的简称.ABP是基于DDD(领域驱动设计)的框架.ABP包含众多组件,包括依赖注入.动态API.审计日志.权限控制等等.在大部分的ABP教材中,会推荐使用模板(https://aspnetboilerplate.com/Templates)来创建ABP工程.然而在实际使用中(至少在我的情况里…
由于公司的项目才接触到ABP这个框架,当时就觉得高大上,什么IOC.AOP.ddd各种专业词汇让人激情 澎湃,但在使用过程中碰到了许多坑,可能也许是没有去看源码导致的,但工作确实没有那么多时间让人去慢慢研究.很久之前想手动搭建这个框架了,但是各种理由,你懂的.但是要在技术上得到大的提升就得静的下心去研究,学到大神的思想和精髓,运用到实际中去,才能去体验更开阔的天地. 本文以创建博客为思路,一步步构建整个项目,在摸索中进步,也希望能够帮助到有需要的人. 一.基础架构 第一部分主要是搭建好整个项目的…
目前主流的javaweb项目,常会用到ssm(Spring+Spring MVC+Mybatis)框架来搭建项目的主体框架,本篇介绍搭建SSM框架的maven项目的实施流程.记之共享! 一.SSM框架介绍 SSM框架是指:Spring+Spring MVC+Mybatis. [Spring] 轻量——从大小与开销两方面而言Spring都是轻量的,此外,Spring是非侵入式的:典型地,Spring应用中的对象不依赖于Spring的特定类.简单说就是自己需要什么就导入对应的jar的即可,而不是侵入…
  本文主要讲解了如何把ABP官方的在线生成解决方案运行起来,并说明了解决方案中项目间的依赖关系.然后手动实践了如何从0搭建了一个简化的解决方案.ABP官方的在线生成解决方案源码下载参考[3],手动搭建的简化的解决方案源码下载参考[4]. 一.ABP官方在线生成解决方案 1.将在线生成解决方案跑起来 首先进入页面https://abp.io/get-started,然后创建项目: 然后头脑中要有一个项目之间的依赖关系图,不清楚的可以参考<基于ABP实现DDD>: 截止目前为止,项目使用的.NE…
前言 上篇SSM框架环境搭建篇,演示了我们进行web开发必不可少的一些配置和准备工作,如果这方面还有疑问的地方,可以先参考上一篇“SSM框架开发web项目系列(一) 环境搭建篇”.本文主要介绍MyBatis的基础内容,包括基本概念.开发步骤.使用实例等.说起MyBatis,工作中做过SSH/SSM相关Web开发的或者正在学习MyBatis的人或多或少都会接触到类似“MyBatis和Hibernate有什么区别?”,“MyBatis和Hibernate哪个更好?”,“为什么Mybatis用的人越来…
前言 在上篇MyBatis基础篇中我们独立使用MyBatis构建了一个简单的数据库访问程序,可以实现单表的基本增删改查等操作,通过该实例我们可以初步了解MyBatis操作数据库需要的一些组成部分(配置文件.实体类.SQL映射文件.Mapper接口等等)和重要对象(SqlSession.Mapper实例等等).有了整体认知后,我们就可以进一步深入学习MyBatis的使用,resultMap本文主要围绕resultMap展开. resultMap作为MyBatis的Sql映射文件中重要的元素之一,主…
前言 在前面的MyBatis部分内容中,我们已经可以独立的基于MyBatis构建一个数据库访问层应用,但是在实际的项目开发中,我们的程序不会这么简单,层次也更加复杂,除了这里说到的持久层,还有业务逻辑层.视图层等等,随着代码量和需求复杂度逐渐增长,对象的创建.管理以及层与层之间的耦合度等等问题随之而来.Spring是目前比较流行的框架,它解决了诸多例如层次之间松耦合.帮助管理对象等问题.如果是有准备学习MyBatis的人,应该或多或少都学习过或者了解过Spring了,本篇要通过Spring集成M…
Springboot搭建SSM+JSP的web项目 一:创建项目结构: 项目结构分为三个部分: 1 后端项目开发文件: 包: Util         工具包 Mapper      db层 Service       业务逻辑层 Controller    端口发布层 2 配置文件: Springboot配置文件:application.xml Mybatis文件夹:    mybatis文件 mapper文件夹:     mybatis的映射文件 3 静态资源文件: Jsp 文件:存放jsp…
昨天发表了<如何用ABP框架快速完成项目 - 自动化测试 - 前端angular e2e protractor>后,大家十分热情,几个小时内就收到了不少问题,包括: 对于ui自动化测试这方面,是不是ui变化了,无论使用何种测试框架,都避免不了重新编写测试用例的代码? 12月的活动是不是只讲angular,不讲MVC了? abp怎么一个人搞定一个项目的? 坐等群主来开DDD培训 按照老师您的文章来做,跑测试时在最后一步捕捉“注销”按钮处失败了. 特别是最后一个问题,证明了这个同学有按照我的文章去…
要想快速完成一个项目, 自动化是很关键很有用的一块. 自动化测试比人工测试快很多. 特别是在回归测试中. 实践证明, 虽然投入了时间在写自动化测试代码上, 但是在回归测试中节省了大量的时间,同时及时发现bug挽救回来时间收益大大超过了早期写自动化测试代码的投入. 特别是要测试浏览器兼容性的时候,只写一遍自动化测试代码,就能自动的快速的在所有浏览器跑完测试. 我们这系列文章是使用abp里的asp.net core + angular结构. angular里的UI自动化测试(简称e2e)使用的是pr…
正如我在<如何用ABP框架快速完成项目(2) - 快的定义!>提到的, 很多同学在使用ABP中遇到很多问题, 花了很多时间和精力, 然而从最根本的角度和方向上来看这些问题应该是不存在. 这些问题如果你正确使用了ABP是根本不会遇到这些问题的.   那么如何正确使用ABP呢? 首先我们要与时俱进,既然选择了ABP,其他同时代的技术和思想也要一并选择. 举个例子, 我们既然选择了飞机, 就要把导弹也选上, 不要开着飞机然后用弓箭去和敌人开战.   那么同时代和ABP这架飞机匹配的武器有啥呢? .N…
做为一个程序员, 深深知道计算机自动化的速度是比人手动的速度快的, 所以”快速”完成项目的一个重要武器就是: 能自动化就不要手动.   BDD/TDD有很多优势, 其中之一就是自动化, 我们这节文章先讲自动化, 在后面的文章里面会讲到BDD/TDD的其他优势.   在ABP .NET Core + SPA版本和52ABP里面, 可以在以下层面做自动化测试: 前端Angular项目的e2e自动化测试 前端Angular项目的unit test 后端.NET Core项目的unit test 后端.…
一个人写代码不需要担心会和别人的代码冲突, 不需要做代码合并, 不需要担心自己的代码被覆盖. 但是多个人一起写代码就需要担心这些问题.   解决这些问题的方法很多, 比如用AzureDevOps(TFS)来进行代码管理和版本控制等等. 其中有两个办法就是, 业务模块组件化和微服务.   首先ABP是支持业务模块组件化的, 然而我并不推荐在ABP使用业务模块组件化, 因为: ABP更新太快了, 每2周更新一个版本. 除了ABP更新快, 其他技术\框架\工具也更新很快. 正如我在<如何用ABP框架快…
如何有顺序的搭建一个Spring的web项目 一.新建一个简单的maven,war工程 eclipse下如有报错,右键 Deployment 单击 Generate 生成web.xml后可解决报错 二.引入Spring的web依赖 <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.0…
前面的文章我们已经在本机安装好了maven,同时在myeclipse中配置好了maven的插件. 链接如下: Maven安装----在Windows上安装Maven myeclipse安装maven插件 现在我们就开始在myeclipse中新建一个maven框架的web项目 新建项目 填写项目名称,一定记得勾选Add Maven support (java EE如果选取5.0报错,则选6.0) 我们的maven项目就新建好了,相关基本的依赖已经在pom.xml中.项目机构如下: 可能出现的错误及…
在前面随笔介绍了<在基于ABP框架的前端项目Vue&Element项目中采用电子签章处理文件和打印处理>的处理,有的时候,我们在流程中或者一些文件签署的时候,需要签上自己的大名,一般通过签名表的方式(银行很常见)实现电子签名的处理.本篇随笔介绍如何基于Vue &Element前端的技术实现电子签名的处理. 1.实现电子签名的组件 我们知道,很多常见的功能,我们都会引入对应的组件来做页面功能,会非常简洁方便,毕竟不用重复制造轮子. 我们在Github上可以找到很多基于Vue前端技…
前言 开发环境:Eclipse Mars + Maven + JDK 1.7 + Tomcat 7 + MySQL 主要框架:Spring + Spring MVC + Mybatis 目的:快速上手搭建SSM开发环境,熟悉客户端请求到数据库操作的流程. 准备工作 本文以"人"Person对象为例,所以首先在数据库中建一张表.这里用的Navicat for MySql,新建一个名为ssm的数据库,然后在库中新建一张名为TBL_PERSON的表,3个字段,分别为主键id,姓名name,性…
这篇文章已被废弃. 现在,Deolin使用Maven构建项目,而不是下载Jar文件,使用Jetty插件调试项目,而不是外部启动Tomcat. SpringMVC比起Servlet/JSP方便了太多 Web容器——Tomcat 访问http://tomcat.apache.org/download-90.cgi, 根据操作系统,选择并下载Binary Distributions - Core下的zip文件,解压. 测试:运行%tomcat%\bin\startup.bat,浏览器访问localho…
前言 我们最初的javaSE部分学习后,基本算是入门了,也熟悉了Java的语法和一些常用API,然后再深入到数据库操作.WEB程序开发,渐渐会接触到JDBC.Servlet/Jsp之类的知识,期间可能会接触一两个关系型数据库,例如MySQL/Oracle等等.像前面的MyBatis部分,主要是针对JDBC的进一步封装,使得更适用于实际项目开发过程,但是JDBC.MyBatis或者Hibernate都是针对持久层数据库操作,例如查询.更新记录等等,我们开发程序最终的展现对象是用户,而用户操作程序往…
首先先讲为什么要使用ABP? 当然是因为使用ABP可以快速完成项目啦. 时间就是金钱, 效率就是生命嘛   有了ABP, 你就节省了写如下模块的时间: CRUD数据库基本操作 校验 异常处理 日志 权限 审计 其他   嗯, 节省时间这个理由已经很有力很充分了, 那么接下来介绍一下ABP.   ABP是ASP.NET Boilerplate的简称. 官网是: https://aspnetboilerplate.com/ 官宣是:  ASP.NET Boilerplate是一个用最佳实践和流行技术…
Day.js 是一个轻量的处理时间和日期的 JavaScript 库,和 Moment.js 的 API 设计保持完全一样. 如果您曾经用过 Moment.js, 那么您已经知道如何使用 Day.js.简单地说,只要你会Moment.js,那么你就会Day.js! 但是我们知道的,Moment.js 的大小是200多KB,而Day.js的大小却是2 KB,瘦身很多但却几乎拥有同样强大的 API. 现在框架基本上都是多端应用的了,所以在ABP框架中整合Winform管理端.Vue&element的…
前言 在上篇Spring MVC入门篇中,我们初步了解了Spring MVC开发的基本搭建过程,本文将针对实际开发过程的着重点Controller部分,将常用的知识点罗列出来,并配以示例.在这之前,我们有必要回顾一下,Spring MVC在我们的WEB开发中,定位或者作用是什么?Spring MVC在项目中,主要作用是接收客户端请求.解析路径并分发请求到相应的控制器即Controller中执行相应方法,在方法中,我们常见的操作有,调用业务逻辑层(后面会介绍到)方法,访问数据库,获取数据或者更新数…
用liteide来开发go的后端项目,需要注意的是环境变量要配置正确了 主要是GOROOT, GOPATH, GOBIN, PATH这几个, GOPATH主要用来存放要安的包,主要使用go get 来获取包,包就存放在gopath里面了. 对于当前的项目,要想当前项目里面的包被发现,需要配置GOPATH添加当前项目的路径 之后就是同一个包里面的引用不需要加import, 其他包里面的, 方法和属性如果要开放给其他 模块使用,名称必须是大写!这点很重要 package util import "f…
一.创建一个Web项目: 1.File->new Project->Java->JavaEE->Web Application 2.为项目起名: 3.配置项目:在项目上击右键->Open Module Settings 进入Project Structure配置界面 4.在Sources标签下,在WEB-INF下添加lib和classes两个文件夹 5.在Paths标签下设置Output Path为刚刚新建的classes路径 6.在Dependencies标签下的添加刚才的…
根据此链接博文学习配置: http://www.cnblogs.com/zyw-205520/p/4767633.html 1.JDK的安装 自行百度,(最好是jdk1.7版本的) 测试如下图,即完成jdk的安装 2.MyEclipse安装 自行下载安装即可,(我使用的是2013版的) 3.Tomcat7安装 Tomcat我使用的版本是7,大家可以到apache的官网上去下载,http://tomcat.apache.org,下载直接解压就行 4.Maven安装配置  4.1maven配置环境变…
一.组件化印象 1.先给大家看一张截图 如果我告诉大家,这就是一个web管理系统发布后的所有内容,你们会不会觉得太简洁了,只有一个web.config.一个Global.asax文件,其它的都是dll文件,没有aspx.cshtml.html页面,没有js css images文件,但它的确能跑起来,跑起来之后的截图如下 2.再看我新建一个项目的流程 新建一个ASP.NET MVC 4的空的项目 点确定之后,创建项目,默认的项目目录结构如下 然后打开nuget包管理界面,选择我们需要安装的组件…
一.通过对比可以原始SSM搭建流程,spring boot省去了大量的配置,极大提高了开发者的效率.原始SSM框架搭建流程见博客: https://www.cnblogs.com/No2-explorer/p/10993868.html 二.下面开展springboot的快速入门之旅吧! 1.创建数据库和em_info(示例员工信息表格) DROP TABLE IF EXISTS `em_info`; CREATE TABLE `em_info` ( `em_id` INT(50) NOT NU…
文档目录 本节内容: 创建动态Web Api控制器 ForAll 方法 重写 ForAll ForMethods Http 动词 WithVerb 方法 HTTP 特性 命名约定 Api 浏览器 RemoteService 特性 动态Javascript代理 AJAX 参数 单独服务脚本 Angular 集成 启用/禁用 包装结果 关于参数绑定 FormUri 和 FormBody 特性 DTO vs 简单类型 创建动态Web Api 控制器 这个文档是关于Asp.net Web Api的,如果…
先进行配置 首先这种需求,一般发生在APP端,我们给APP,不会给所有项目系统的接口给他们用.我们系统有200个接口,但是APP的需求只会用20个.那么这个需求也就应运而生了. 以上为API文件夹中为项目接口,没有啥特别复杂的东西存在. 首先创建好,一个网站项目,进行模块的配置. 首先引入以下的nuget包: 以下是WebApp项目中的packages.config <?xml version="1.0" encoding="utf-8"?> <p…
用ABP一个人快速完成项目有如下要点: 站在巨人的肩膀上 - 使用代码生成器 站在巨人的肩膀上 - 使用成熟控件框架, 一个框架不够就上两个, 两个不够就上三个 通过微服务模式而不是盖楼式来避免难度升级 运用BDD/TDD等先进方法论 运用DevOps 注意!一个人的项目不要执着于设计模式和DDD理论,一切都是自然而然, 要理论为你服务,而不是你为理论服务   要想快速完成项目, 站在巨人的肩膀上是一个很重要很好使的招数. 这节我们先讲代码生成.   首先我们先去https://www.52ab…