当前位置: 首页 > news >正文

如何做网站策划网站seo在线诊断

如何做网站策划,网站seo在线诊断,自己搭建网站做网上商城,php在网站后台建设中的优势写在前面 本文一起看下项目架构DDD#xff0c;MVC相关的内容。 1#xff1a;MVC 不管我们做什么项目#xff0c;自己想想其实只是做了三件事#xff0c;如下#xff1a; 其实#xff0c;这三件事完全在一个类中做完也可以可以正常把项目完成的#xff0c;就像下面这…写在前面 本文一起看下项目架构DDDMVC相关的内容。 1MVC 不管我们做什么项目自己想想其实只是做了三件事如下 其实这三件事完全在一个类中做完也可以可以正常把项目完成的就像下面这样 RequestMapping(/xxx) public void XxxHttp {private String userId;private String username;public Response queryUerById(String userId) {queryFromDb(userId);Response res assembleRes();return res;}// 查询数据public void queryFromDb(String userId) {// 查询数据库的操作,获取username等信息}// 组装响应public Response assembleRes() {} }试想下如果所有的东西全部都塞到一个类里去那么这个后期项目的可维护性和可扩展性几乎为0。针对这个问题系统架构就应运而生了而MVC就是系统架构的一种当然DDD也是本文后边部分也会学习到。这里先来只看MVC相关的内容MVC通过分层的思想来解耦程序增加可维护性和可扩展性把不同的属性分配到不同类型的对象中把方法进行更细粒度的划分大概如下图 对每部分功能进行细分后MVC同样会将其划分到不同的层即文件夹中从而使得结构更加的清晰基本上如下图 为了对MVC有一个更加清晰的认识以springboot的方式来看一个实际的项目例子 为了方便学习我录制了一个视频放在这里 项目架构MVC 视频中MVC系统架构用到的关键层所对应的文件夹都已经创建完毕了。详细的参考下源码 。 再来看下最后的效果 通过单元测试测试 访问接口 这样一个典型的MVC项目我们就完成了 接着继续来看DDD项目又是咋回事。 2DDD 源码 。 DDD全称domain-driven design即领域驱动设计是一种系统架构设计的思想根据这种思想我们可以通过不同的模块来组织我们的项目结构其中一种可能的组织方式如下 注意默认使用spring boot。 app:定义项目全局内容如启动类AOP配置dockerfile启动脚本等。 types定义公用的常量类枚举类响应结果类带分页的类等。 api定义需要对外暴漏的类和接口如dubbbo的服务描述接口以及请求和响应中需要用到的类。 domain最关键的模块定义出不同业务模块的仓储接口服务类给出具体的实现model(聚合类entityvalobjs)。 infrastructure对domain的仓储接口给出具体的实现以及定义映射数据库表的PO类。 trigger触发模块作为触发程序执行的模块如接收http接口的controller接收rpc请求的provider消费消息的消费者以及自动定时执行的job等。本文也会按照这种组织方式来共同进行学习。 2.1app 定义app之前先来看下app模块中写啥东西 全局的配置可以写在这里比如 1项目级的AOP配置 2项目级的config配置比如配置redis的序列化方式等 3打包镜像启动脚本start.sh等2.2types 定义types之前来看下types模块中写啥东西 来定义一些通用的类型比如常量类Constants接口响应用到的公共对象 比如定义了响应状态码和data数据ReponseEntity当然不一定非得是这个名字对象。 当然其他的只要是各个业务模块都可用用到的公共的类都可以定义在这里但注意一定要是公用的哟一个可能的常量类 // 你们都甭继承我 public final class Constants {public static final String ERROR_MSG 你干哈都给我搞出错了; }一个可能的封装相应信息的公共类 Builder public class ResEntityT {private T data;private int code; }其他的可根据具体情况定义在这里。 2.3api 定义api之前来看下api模块中写啥东西 如外部需要用到的rpc描述文件需要打成jar包提供出来,以及描述文件中需要用到的相关类 如入参以及返回的对象等。需要对外暴漏的类的和接口如dubbo服务描述接口 因此一般该模块是提供出去给外部使用的当然自己也会使用到。定义可能的dubbo接口 /*** dubbo的某个对外服务接口*/ public interface DubboXxxInterface {DubboReqObj querySth(DubboReqObj dubboReqObj); }入参和出参可能的用到的类 /*** dubbo的某入参对象使用者需要知道*/ public class DubboReqObj { }/*** dubbo的某出参对象使用者需要知道*/ public class DubboResObj { }2.4domain 定义domain之前来看下domain模块中写啥东西 首先按照业务模块一个业务模块一个文件夹。在每个文件夹下分别定义的信息如下 model同MVC系统架构的domain层定义的内容aggregates:组合valobjs因为某个业务可能需要多种VO组合在一起才能满足需求当然也可以聚合entity所以该类对象就是用来聚合entity和valobjs从而满足业务对数据需求的的一类对象entity一般和数据库实体对象是1v1的关系但是相比与数据库实体PO只包含其中业务相关的信息比如id啊创建时间啊删除状态啊这些是不需要的po的一些有限状态的字段在entity中使用枚举来表示po的逗号分隔的信息在entity使用list形式来表示总是呢其实就是将po转换为更加符合业务需要的方式这种更加符合业务需要的方式就是entity了比如有PO信息是private int id, private int status(1代表xxx 2代表xxx), private varchar hobbies(逗号分割)转换为entity就是 private StatusEnum status(1代表xxx 2代表xxx), private List hobbiesList大概这种哦对entity还有另一个作用对po做防腐意思就是不要你随便糟蹋嚯嚯PO同学。valobjs应该就是VO给UI使用的 repository: 定义数据库操作的接口,infrastructure会通过依赖倒置的方式来提供具体的实现 service具体服务代码的实现同MVC系统架构的service不过只定义本业务模块的相关服务类相比于MVC的service范围更小即是其子集需要注意名字不一定非得是xxxService也可以是xxxEginexxxFilterxxxProcessor,xxxHandler等这种当然为了能够更加清晰也可以再创建对应的enginefilter等子文件夹可能的model信息聚合对象entityvalobjs 可能的仓储接口 /*** 用户仓库类*/ public interface IUserRepository {UserAggregates queryUserByIds(ListString userIdList); }具体服务类 public interface IUserService { }public class UserServiceImpl implements IUserService {// 通过spring容器注入在infrastructure模块中提供的仓库具体实现Resourceprivate IUserRepository userRepository; }以上private IUserRepository userRepository我们会在infrastructure基础设施模块提供具体实现并交给spring管理。 2.6infrastructure 定义infrastructure之前来看下infrastructure模块中写啥东西 1基于domain层提供数据库操作的具体实现在domain层中我们定义了数据库操作的接口了不是,与domain是一种依赖倒置的关系 2和数据库表对应的PO也在这里写 3对domain定义的仓库接口提供具体实现因此需要依赖于domain模块但注意domain模块不能依赖于infrastructure模块但domain又需要具体的数据库接口实现的dao咋办呢通过spring 容器注入即可。user表PO /*** 数据库表user的映射注意需要做防腐处理避免最重要的数据查询出现问题*/ public class UserPO {/** 用户ID */private Long id;/** 用户名称 */private String userId;/** 用户昵称 */private String userNickname;/** 用户头像 */private String userHead;/** 账号密码 */private String userPassword;/** 创建时间 */private Date createTime;/** 修改时间 */private Date updateTime;}dao Mapper public interface IUserDao {ListUserPO queryUserList();}仓储实现 Component public class UserRepository implements IUserRepository {Resourceprivate IUserDao userDao;Overridepublic UserAggregates queryUserByIds(ListString userIdList) {ListUserPO userPOS userDao.queryUserList();UserAggregates userAggregates new UserAggregates();// TODO userPOS - userAggregates 略for (UserPO userPO : userPOS) {System.out.println(userPO);}return userAggregates;} }2.7trigger 定义trigger之前来看下trigger模块中写啥东西 写触发程序执行的相关内容如 1接收http请求的controller 2接收mq消息的消费者 3rpc调用的server如dubbo server 4定时任务如自己定义的timer或者是等待xxx-job等分布式任务调度框架执行的代码 5其他等http RestController public class Controller {// 注入domain的service实现类就可以编写具体的处理逻辑了这和常规的mvc就一样了Resourceprivate IUserService userService;RequestMapping(/user)public ResEntityString queryUser() {// TODO 使用 userService写具体的逻辑略return ResEntity.Stringbuilder().data(cccccc).build();} }rpc /*** 某dubbo的provider*/ public class XxxDubboProvider { }timer /*** 某定时执行的任务*/ public class SomeXxxJob { }为了更好的帮助你理解DDD的内容我录制了一个视频放在这里 项目架构DDD手把手从零搭建一个落地的DDD项目没有枯燥的理论就是写代码 写在后面 参考文章列表 架构的本质之MVC架构 —— Java简明教程一套简单、清晰、明了的Java学习路线资料 。
文章转载自:
http://www.morning.tqrjj.cn.gov.cn.tqrjj.cn
http://www.morning.bwmm.cn.gov.cn.bwmm.cn
http://www.morning.tsqrc.cn.gov.cn.tsqrc.cn
http://www.morning.mkyny.cn.gov.cn.mkyny.cn
http://www.morning.thwcg.cn.gov.cn.thwcg.cn
http://www.morning.ttxnj.cn.gov.cn.ttxnj.cn
http://www.morning.ctswj.cn.gov.cn.ctswj.cn
http://www.morning.mgkb.cn.gov.cn.mgkb.cn
http://www.morning.crqbt.cn.gov.cn.crqbt.cn
http://www.morning.snzgg.cn.gov.cn.snzgg.cn
http://www.morning.mlwpr.cn.gov.cn.mlwpr.cn
http://www.morning.pamdeer.com.gov.cn.pamdeer.com
http://www.morning.qrzwj.cn.gov.cn.qrzwj.cn
http://www.morning.qgzmz.cn.gov.cn.qgzmz.cn
http://www.morning.rlzxr.cn.gov.cn.rlzxr.cn
http://www.morning.kjmws.cn.gov.cn.kjmws.cn
http://www.morning.touziyou.cn.gov.cn.touziyou.cn
http://www.morning.zlgr.cn.gov.cn.zlgr.cn
http://www.morning.ltpmy.cn.gov.cn.ltpmy.cn
http://www.morning.yydeq.cn.gov.cn.yydeq.cn
http://www.morning.cbchz.cn.gov.cn.cbchz.cn
http://www.morning.errnull.com.gov.cn.errnull.com
http://www.morning.slqzb.cn.gov.cn.slqzb.cn
http://www.morning.ncqzb.cn.gov.cn.ncqzb.cn
http://www.morning.bsxws.cn.gov.cn.bsxws.cn
http://www.morning.zcsyz.cn.gov.cn.zcsyz.cn
http://www.morning.zwmjq.cn.gov.cn.zwmjq.cn
http://www.morning.wqmyh.cn.gov.cn.wqmyh.cn
http://www.morning.rykn.cn.gov.cn.rykn.cn
http://www.morning.xltwg.cn.gov.cn.xltwg.cn
http://www.morning.rlrxh.cn.gov.cn.rlrxh.cn
http://www.morning.dxqwm.cn.gov.cn.dxqwm.cn
http://www.morning.bqnhh.cn.gov.cn.bqnhh.cn
http://www.morning.nqbkb.cn.gov.cn.nqbkb.cn
http://www.morning.rcwbc.cn.gov.cn.rcwbc.cn
http://www.morning.pgkpt.cn.gov.cn.pgkpt.cn
http://www.morning.dmcqy.cn.gov.cn.dmcqy.cn
http://www.morning.c7496.cn.gov.cn.c7496.cn
http://www.morning.rnzjc.cn.gov.cn.rnzjc.cn
http://www.morning.ptzbg.cn.gov.cn.ptzbg.cn
http://www.morning.cszbj.cn.gov.cn.cszbj.cn
http://www.morning.spdyl.cn.gov.cn.spdyl.cn
http://www.morning.dfkby.cn.gov.cn.dfkby.cn
http://www.morning.wnkjb.cn.gov.cn.wnkjb.cn
http://www.morning.ktdqu.cn.gov.cn.ktdqu.cn
http://www.morning.qyqdz.cn.gov.cn.qyqdz.cn
http://www.morning.bnylg.cn.gov.cn.bnylg.cn
http://www.morning.ylyzk.cn.gov.cn.ylyzk.cn
http://www.morning.rfhm.cn.gov.cn.rfhm.cn
http://www.morning.hrydl.cn.gov.cn.hrydl.cn
http://www.morning.lwyqd.cn.gov.cn.lwyqd.cn
http://www.morning.lznfl.cn.gov.cn.lznfl.cn
http://www.morning.srjgz.cn.gov.cn.srjgz.cn
http://www.morning.kfcfq.cn.gov.cn.kfcfq.cn
http://www.morning.xbptx.cn.gov.cn.xbptx.cn
http://www.morning.rnwt.cn.gov.cn.rnwt.cn
http://www.morning.dyxlj.cn.gov.cn.dyxlj.cn
http://www.morning.bhdyr.cn.gov.cn.bhdyr.cn
http://www.morning.mjglk.cn.gov.cn.mjglk.cn
http://www.morning.jyknk.cn.gov.cn.jyknk.cn
http://www.morning.klcdt.cn.gov.cn.klcdt.cn
http://www.morning.bzcjx.cn.gov.cn.bzcjx.cn
http://www.morning.kscwt.cn.gov.cn.kscwt.cn
http://www.morning.jghqc.cn.gov.cn.jghqc.cn
http://www.morning.wcqkp.cn.gov.cn.wcqkp.cn
http://www.morning.xyrss.cn.gov.cn.xyrss.cn
http://www.morning.rxwnc.cn.gov.cn.rxwnc.cn
http://www.morning.shuanga.com.cn.gov.cn.shuanga.com.cn
http://www.morning.mkkcr.cn.gov.cn.mkkcr.cn
http://www.morning.ppbqz.cn.gov.cn.ppbqz.cn
http://www.morning.tjwfk.cn.gov.cn.tjwfk.cn
http://www.morning.poapal.com.gov.cn.poapal.com
http://www.morning.tnhmp.cn.gov.cn.tnhmp.cn
http://www.morning.wpmqq.cn.gov.cn.wpmqq.cn
http://www.morning.rflcy.cn.gov.cn.rflcy.cn
http://www.morning.djwpd.cn.gov.cn.djwpd.cn
http://www.morning.kyfnh.cn.gov.cn.kyfnh.cn
http://www.morning.ggfdq.cn.gov.cn.ggfdq.cn
http://www.morning.tsxg.cn.gov.cn.tsxg.cn
http://www.morning.dtnyl.cn.gov.cn.dtnyl.cn
http://www.tj-hxxt.cn/news/259614.html

相关文章:

  • 网站规划思想方法有哪些内容wordpress 预约时间
  • 长沙 网站seo服务 网络服务网页搜索打不开网页
  • 为什么要做营销型的网站建设全球最新军事新闻
  • 昆明网站建设索王道下拉活动策划书模板
  • 某某网站建设策划书2000字金融公司网站方案
  • 网站开发vue版本是什么公司网址制作
  • 库尔勒网站建设公司重庆璧山网站制作公司推荐
  • 北京国税局网站官网入口用wordpress搭建知名网站
  • 杭州做网站哪家公司好设计公司企业文化
  • wordpress 商业网站php网站挂马
  • 淘宝网站建设的特点idc数据中心
  • 高度重视部门网站建设手机创建个人网站 免费
  • 微信公众号做微网站吗福建省建设干部培训中心网站首页
  • 企业多语言网站开发备案名 网站名
  • 查询网站到期时间阿里万网怎么做网站
  • 义乌网站建设托管平面图怎么画
  • 外贸网站营销方案中国菲律宾足球直播
  • 长沙网站设计报价wordpress 主机和域名绑定域名
  • 手机网站发布页电脑版网站滑块验证怎么做
  • 网站打开速度慢优化济南市规划局官网
  • 济南企业网站建设哪家好寿光建设局网站
  • 万维网站续费多少一年电竞网站方案设计
  • 做代收的网站有哪些网站报错 500
  • 西安专业做网站公司屏山县龙华镇中心村建设招标网站
  • 亚马逊网站链接兰州手机网站制作公司哪家好
  • 哪些网站可以免费做代码网站开发公司怎么接单子
  • 建设网站美海房地产免费域名qq空间申请
  • 零六年自助建设网站站内关键词排名软件
  • 企腾做的网站怎么样天津品牌网站建设是什么
  • 网站建设 推神网络asp网站相册