当前位置: 首页 > news >正文 做海报有什么好的网站推荐免费logo news 2025/10/20 14:06:10 做海报有什么好的网站推荐,免费logo,班级优化大师手机版下载(免费),有哪些做特卖的网站有哪些目录 一、应用分层 1、介绍 #xff08;1#xff09;为什么需要应用分层#xff1f; #xff08;2#xff09;如何分层#xff1f;#xff08;三层架构#xff09; MVC 和 三层架构的区别和联系 高内聚#xff1a; 低耦合#xff1a; 2、代码重构 controlle…目录 一、应用分层 1、介绍 1为什么需要应用分层 2如何分层三层架构 MVC 和 三层架构的区别和联系 高内聚 低耦合 2、代码重构 controller表现层 service业务逻辑层 dao数据层 model实体类 3、应用分层的好处 二、企业规范 三、学习Spring MVC的总结 之前写了几个简单的练习图书管理系统、留言板...这些只是一点简单的开发但代码也显得比较乱下图是几个类的分区如图 那如果要把完整的图书管理系统开发完了呢那就会更加乱了。所以下面要学习应用分层把代码管理好。 应用分层类似公司的组织架构 公司初创阶段人比较少一个人会身兼数职即做财务又做人事等等。随着公司的逐渐壮大会把岗位进行细分会划为财务部门、人事部门、行政部门等等。 项目开发也是类似最开始功能简单时前后端放在一起开发但随着项目功能的复杂我们分为前端和后端不同的团队甚至更细粒度的团队。后端开发也会根据功能再进行细分。MVC就是其中的一种拆分方式。 随着后端人员不再涉及前端后端开发又有了新的分层方式。 一、应用分层 1、介绍 阿里开发手册中关于工程结构部分定义了常见工程的应用分层结果如图 应用分层 是一种软件开发设计思想它将应用程序分成N个层次这N个层次分别负责各自的职责多个层次之间协同提供完整的功能。根据项目的复杂度把项目分成三层四层或者更多层。其中常见的MVC设计模式就是应用分层的一种具体体现。 1为什么需要应用分层 在最开始的时候为了让项目快速上线我们通常是不考虑分层的。但是随着业务越来越复杂大量的代码混在一起会出现逻辑不清楚、代码扩展性插、改一处导致处处改等问题。学习对项目的分层也是程序员的必修课。 2如何分层三层架构 前面学习了MVC把整体分成了三个层次View视图、Controller控制器、Model模型也就是将用户视图和业务处理隔离开并且通过控制器连接起来很好的实现了表现和逻辑的解耦。是一种标准的软件分层架构。如图 目前现在更主流的开发方式是 “前后端分离” 的方式后端开发工程师不再需要关注前端的实现所以对于Java后端开发者又有了一种新的分层架构把整体架构分为表现层、业务逻辑层、数据层。这种分层方式也称之为 “三层架构”。 1、表现层就是展示数据结果和接受用户指令的是最靠近用户的一层。 2、业务逻辑层负责处理业务逻辑里面有复杂业务的具体实现。 3、数据层负责存储和管理应用程序相关的数据。 之前写的图书管理系统就没有按照上述的设计思想而是代码大杂烩如图 按照上面的层次划分Spring MVC 站在后端开发人员的角度上也进行了支持把上述代码划分为三个部分 1、请求处理、响应数据负责接受页面的请求给页面响应数据。 2、逻辑处理负责业务逻辑处理的代码。 3、数据访问负责业务数据的维护操作包括增、删、改、查。 这三个部分在Spring的实现中都有体现如图 1、Controller控制器。接收前端发送的请求对请求进行处理并且响应数据。 2、Service业务逻辑层。处理具体的业务逻辑。 3、Dao数据访问层也称为持久层。负责数据访问操作包括数据的增、删、改、查。 MVC 和 三层架构的区别和联系 从概念上来说二者都是软件工程领域中的架构模式。 MVC架构模式由三部分组成View视图、Controller控制器、Model模型 三层架构将业务应用划分为表现层、业务逻辑层、数据访问层 MVC中的视图和控制器对应三层架构中的表现层。MVC中的模型对应三层架构中的业务逻辑层、数据层、实体类。 二者都是从不同角度对软件工程进行了抽象。 MVC模式强调数据和视图分离将数据展示和数据处理分开。控制器是它们之间的桥梁通过控制器对两者进行组合。 三层架构强调不同维度数据处理的高内聚和低耦合将交互界面、业务处理、数据库操作的逻辑分开。 角度不同也就谈不上互相替代了在日常的开发中可以经常看到两种共存的情况。比如我们设计模式的时候往往也会拆分出业务逻辑层Service层和数据访问层到层。 但两者的目的都是相同的都是为了“解耦分层代码复用”。、 软件设计原则高内聚低耦合 高内聚 一个模块中各个元素之间的联系的紧密程度如果各个元素语句、程序段之间的联系程度越高则内聚性越高即 “高内聚”。 低耦合 软件中各个层、模块之间的依赖关联程序越低越好。修改一处代码其他模块的代码改动越少越好。 那么高内聚和低耦合矛盾吗其实不矛盾高内聚是指一个模块中的各个元素之间的紧密程度低耦合是指各个模块之间的精密程度。如图 好比在公司里不同部门之间的关联性要尽可能小一个小部分发生问题了要尽可能降低对其他部门的影响这就是低耦合而当一个部门里出现问题时这个部门之间的员工关系要经可能的紧密遇到问题一起解决、克服这就是高内聚。 2、代码重构 上篇博客写了图书管理系统但是代码非常乱现在进行代码重构先创建对应包的路径如图 controller表现层 RestController RequestMapping(/book) public class BookController {RequestMapping(/getBookList)public ListBookInfo getBookList() {BookService bookService new BookService();return bookService.getBookList();} } RestController RequestMapping(/user) public class UserController {RequestMapping(/login)public String login(String userName, String password, HttpSession session) {//1、校验参数//2、校验密码是否正确//3、返回响应结果System.out.println(userName password);if(!StringUtils.hasLength(userName) || !StringUtils.hasLength(password)) {return 用户名或者密码为空;}if(!admin.equals(userName) || !admin.equals(password)) {return 账号或密码错误;}session.setAttribute(userName, userName);return ;} } 原本这里面的数据也是要从数据库里拿的还有逻辑判断但是还没学到数据库的使用先不管。 service业务逻辑层 public class BookService {public ListBookInfo getBookList() {BookDao bookDao new BookDao();ListBookInfo bookInfos bookDao.mockData();for(BookInfo bookInfo : bookInfos) {if(bookInfo.getStatus() 2) {bookInfo.setStatusCN(不可借阅);} else {bookInfo.setStatusCN(可借阅);}}return bookInfos;} } dao数据层 public class BookDao {public ListBookInfo mockData() {//理论上应该从数据库中获取数据当前采用mock方式ListBookInfo bookInfos new ArrayList();for (int i 1; i 15; i) {BookInfo bookInfo new BookInfo();bookInfo.setId(i);bookInfo.setBookName(图书 i);bookInfo.setAuthor(作者 i);bookInfo.setNum(i * 2 1);bookInfo.setPrice(new BigDecimal(i * 3));bookInfo.setPublishName(出版社 i);if(i % 5 0) {bookInfo.setStatus(2); // bookInfo.setStatusCN(不可借阅);} else {bookInfo.setStatus(1); // bookInfo.setStatusCN(可借阅);}bookInfos.add(bookInfo);}return bookInfos;} } model实体类 Data public class BookInfo {private Integer id;private String bookName;private String author;private Integer num;private BigDecimal price;private String publishName;private Integer status;//1-可借阅 2-不可借阅private String statusCN;//状态的中文含义 } 3、应用分层的好处 1降低层与层之间的依赖结构更加的明确利于各层逻辑的复用。 2开发人员可以只关注整个结构中的其中某一层极大地降低了维护成本和维护时间。 3可以很容易的用新的实现来替换原有层次的实现。 4有利于标准化。 二、企业规范 1、类名使用大驼峰风格但以下情形例外DO / BO / DTO / VO / AO。 2、方法名、参数名、成员变量、局部变量统一使用小驼峰风格。 3、包名统一使用小写点分隔符之间有且仅有一个自然语义的英语单词。 常见命名风格 大驼峰所有单词首字母都需要大写又叫帕斯卡命名发比如UserController。 小驼峰除了第一个单词其他单词首字母大写比如userController。 蛇形用下划线_作用单词间的分隔符一般小写又叫下划线命名法比如user_controller。 串形用短横线-作用单词间的分隔符又叫脊柱命名法例如user-controller。 三、学习Spring MVC的总结 1、学校Spring MVC其实就是学习各种Web开发需要用到的注解 a、RequestMapping路由映射 b、RequestParam后端参数重命名 c、RequestBody接收JSON类型的参数 d、PathVariable接收路径参数 e、RequestPart上传文件 f、ResponseBody返回数据 g、CookieValue从Cookie中获取值 h、SessionAttribute从Session中获取值 i、RequestHeader从Header中获取值 j、Controller定义一个控制器Spring框架启动时加载把这个对象交给Spring管理。默认返回视图。 k、RestControllerResponseBody Controller 返回数据 2、Cookie和Session都是会话机制Cookie是客户端机制Session是服务端机制。二者通过SessionId来关联。Spring MVC 内置 HttpServletRequestHttpServletResponse两个对象。需要使用时直接在方法中添加对应参数即可Cookie和Session可以从HttpServletRequest中来获取也可以直接使用HttpServletResponse设置Http响应状态码。 3、JavaEE 学习阶段会涉及较多工具插件的学习来帮助我们提高开发效率比如Postman、lombok、EditStarter后面还会继续学习其他的工具或插件。 都看到这了点个赞再走吧谢谢谢谢谢 文章转载自: http://www.morning.xzkgp.cn.gov.cn.xzkgp.cn http://www.morning.bpmz.cn.gov.cn.bpmz.cn http://www.morning.cjmmt.cn.gov.cn.cjmmt.cn http://www.morning.nhbhc.cn.gov.cn.nhbhc.cn http://www.morning.jxjrm.cn.gov.cn.jxjrm.cn http://www.morning.tlbdy.cn.gov.cn.tlbdy.cn http://www.morning.nlrp.cn.gov.cn.nlrp.cn http://www.morning.dqrhz.cn.gov.cn.dqrhz.cn http://www.morning.tpnx.cn.gov.cn.tpnx.cn http://www.morning.kpbgvaf.cn.gov.cn.kpbgvaf.cn http://www.morning.bgdk.cn.gov.cn.bgdk.cn http://www.morning.dpqqg.cn.gov.cn.dpqqg.cn http://www.morning.xgmf.cn.gov.cn.xgmf.cn http://www.morning.wgrl.cn.gov.cn.wgrl.cn http://www.morning.drwpn.cn.gov.cn.drwpn.cn http://www.morning.kqnwy.cn.gov.cn.kqnwy.cn http://www.morning.dpnhs.cn.gov.cn.dpnhs.cn http://www.morning.yydzk.cn.gov.cn.yydzk.cn http://www.morning.ppghc.cn.gov.cn.ppghc.cn http://www.morning.wtdyq.cn.gov.cn.wtdyq.cn http://www.morning.bpmfz.cn.gov.cn.bpmfz.cn http://www.morning.fwgnq.cn.gov.cn.fwgnq.cn http://www.morning.alwpc.cn.gov.cn.alwpc.cn http://www.morning.litao7.cn.gov.cn.litao7.cn http://www.morning.mxhcf.cn.gov.cn.mxhcf.cn http://www.morning.tpqzs.cn.gov.cn.tpqzs.cn http://www.morning.mjglk.cn.gov.cn.mjglk.cn http://www.morning.fmtfj.cn.gov.cn.fmtfj.cn http://www.morning.qpqb.cn.gov.cn.qpqb.cn http://www.morning.pwqyd.cn.gov.cn.pwqyd.cn http://www.morning.mtbth.cn.gov.cn.mtbth.cn http://www.morning.hgbzc.cn.gov.cn.hgbzc.cn http://www.morning.lzqdd.cn.gov.cn.lzqdd.cn http://www.morning.knczz.cn.gov.cn.knczz.cn http://www.morning.ptmsk.cn.gov.cn.ptmsk.cn http://www.morning.wdhzk.cn.gov.cn.wdhzk.cn http://www.morning.trtdg.cn.gov.cn.trtdg.cn http://www.morning.rstrc.cn.gov.cn.rstrc.cn http://www.morning.btypn.cn.gov.cn.btypn.cn http://www.morning.psgbk.cn.gov.cn.psgbk.cn http://www.morning.rxnxl.cn.gov.cn.rxnxl.cn http://www.morning.cmzgt.cn.gov.cn.cmzgt.cn http://www.morning.txfxy.cn.gov.cn.txfxy.cn http://www.morning.skql.cn.gov.cn.skql.cn http://www.morning.leyuhh.com.gov.cn.leyuhh.com http://www.morning.yqwrj.cn.gov.cn.yqwrj.cn http://www.morning.pynzj.cn.gov.cn.pynzj.cn http://www.morning.rqnhf.cn.gov.cn.rqnhf.cn http://www.morning.cmqrg.cn.gov.cn.cmqrg.cn http://www.morning.ygth.cn.gov.cn.ygth.cn http://www.morning.bwrtp.cn.gov.cn.bwrtp.cn http://www.morning.lqqqh.cn.gov.cn.lqqqh.cn http://www.morning.bpp999.com.gov.cn.bpp999.com http://www.morning.ffbp.cn.gov.cn.ffbp.cn http://www.morning.gllgf.cn.gov.cn.gllgf.cn http://www.morning.fbzyc.cn.gov.cn.fbzyc.cn http://www.morning.qtqk.cn.gov.cn.qtqk.cn http://www.morning.jyjqh.cn.gov.cn.jyjqh.cn http://www.morning.rkyw.cn.gov.cn.rkyw.cn http://www.morning.ctqbc.cn.gov.cn.ctqbc.cn http://www.morning.dqzcf.cn.gov.cn.dqzcf.cn http://www.morning.ylkkh.cn.gov.cn.ylkkh.cn http://www.morning.ymtbr.cn.gov.cn.ymtbr.cn http://www.morning.rwzmz.cn.gov.cn.rwzmz.cn http://www.morning.haibuli.com.gov.cn.haibuli.com http://www.morning.knggj.cn.gov.cn.knggj.cn http://www.morning.kjfsd.cn.gov.cn.kjfsd.cn http://www.morning.ybyln.cn.gov.cn.ybyln.cn http://www.morning.qlxgc.cn.gov.cn.qlxgc.cn http://www.morning.tkhyk.cn.gov.cn.tkhyk.cn http://www.morning.ybshj.cn.gov.cn.ybshj.cn http://www.morning.wmdqc.com.gov.cn.wmdqc.com http://www.morning.qnypp.cn.gov.cn.qnypp.cn http://www.morning.drhnj.cn.gov.cn.drhnj.cn http://www.morning.gmswp.cn.gov.cn.gmswp.cn http://www.morning.ykbgs.cn.gov.cn.ykbgs.cn http://www.morning.lzph.cn.gov.cn.lzph.cn http://www.morning.zshuhd015.cn.gov.cn.zshuhd015.cn http://www.morning.wgxtz.cn.gov.cn.wgxtz.cn http://www.morning.qtwd.cn.gov.cn.qtwd.cn 查看全文 http://www.tj-hxxt.cn/news/234191.html 相关文章: 商业招商网站网站推广培训机构 怎么区别做pc端和手机端网站wordpress网站关键词设置 南山网站建设做网站还是做阿里 模版免费网站做喷绘可以在那个网站找 万网主机怎么上传网站十大计算机培训学校 夏津网站建设价格wordpress悬浮窗安装 网站建设需经历的步骤买模板做网站 莱芜论坛24小时主题帖搜索引擎优化的内容有哪些 回收网站怎么做为公司建立网站 网站建设响应往网站上传照片怎么做 网站优化自己做该怎么做公众号二次开发 计算机网站建设考试试卷软文案例大全 html5网站怎么做商标设计免费 怎么让谷歌收录我的网站品质好茶 网页制作与网站开发从入门到精通 下载网站开发 确认函 重庆网站定制开发做网站好公司哪家好 珠海企业网站h5企业网站定制排名 南阳做做网站成都网站建设 四川冠辰科技公司 淘宝网站制作培训建设工程竣工竣工档案网站 网站建设你懂的深圳南山做网站的公司 深圳网站设计招聘信息国内网站服务器 电子商务网站建设课程设计高端网站建设公司哪家公司好 延边企业网站建设公众号可以开视频号? ipv6网站建设东莞微网站建设公司哪家好 jsp做网站实例教程上海网站建设技术托管 甘肃三北防护林建设局网站网红营销是什么意思 交互动效库 网站吉林电商网站建设价格 企业网站建设记什么会计科目网站开发费用多少钱 长春 行业网站哪个网站可以做图片 打鱼在线游戏网站建设手机网站好还是h5好