分层解耦
上一次介绍了JavaWeb中请求响应相关的内容,这次来了解一下JavaWeb中分层解耦的思想及其实现,重点在于理解控制反转(IOC)和依赖注入(DI)。
一、三层架构1、概述1.1 controller(接收请求、响应数据)控制层,接收前端发送的请求,对请求进行处理,并响应数据。
1.2 service(逻辑处理)业务逻辑层,处理具体的业务逻辑。
1.3 dao(数据访问)数据访问层(Data Access Object)(持久层),负责数据访问操作,包括数据的增、删、改、查。
1.4 对比以前的方式与三层架构方式对比。
二、分层解耦1、 基本概念1)内聚:软件中各个功能模块内部的功能联系。2)耦合:衡量软件中各个层/模块之间的依赖、关联的程度。
软件设计原则:高内聚低耦合。
2、问题导入探讨传统的MVC模式,三层架构代码书写存在的问题。我们先看一个代码示例,再对问题进行剖析。
注:MVC模式是软件工程中常见的一种软件架构模式,该模式把软件系统(项目)分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。
1)Dao层(dao包下接 ...
前端工程化
学完了前端三剑客和Vue基础,这次来简单学一下Ajax,以及重点学一下前端工程化。
一、Ajax1、概述Ajax(Asynchronous JavaScript And XML),异步的JavaScript和XML。
2、作用1)数据交换: 通过Ajax可以给服务器发送请求,并获取服务器响应的数据。2)异步交互: 可以在不重新加载整个页面的情况下,与服务器交换数据并更新部分网页的技术,如:搜索联想、用户名是否可用的校验等。
注:同步与异步的区别,如下
3、原生Ajax(了解)
二、Axios1、 简述Axios对原生的Ajax进行了封装,简化书写,快速开发。中文官网:https://www.axios-http.cn/
2、 使用步骤1)步骤如下2)通过Axios请求方式别名发起get和post请求(推荐)
三、前端工程化
所谓前端工程化,是指在企业级的前端项目开发中,把前端开发所需的工具、技术、流程、经验等进行规范化、标准化。
1、概述1.1 前后端分离开发方式(了解)
1.2 YApi (接口文档管理平台)1)简述YApi是高效、易用、功能强大的api管理平台,旨在为开发、 ...
Shell流程控制
大家好呀!今天简单聊一聊Shell的流程控制。任何一门编程语言的学习,在了解了其基本的语法规则和变量外,都是从基础的流程控制语句开始学习。流程控制无非是顺序、分支(选择)加上循环,对于任何一门编程语言而言都是类似的。
一、选择语句1、语法结构1)if语句
只有条件为真才会执行command命令
123456if [ condition ];then command commandfi[ 条件 ] && command
2)if-else语句
只有条件为真才会执行command1,否则执行command2
12345if [ condition ];then command1 else command2fi
或使用条件判断(逻辑与、逻辑或)
1[ 条件 ] && command1 || command2
&&:前面的表达式为真,才会执行后面的内容||:前面的表达式为假,才会执行后面的内容
3)if-elif-else语句
如果条件1满足,执行命令1后结束;如果条件1不满足,再看条件2,如果条件2满足执行命令2后结束;如果条件1和条 ...
Shell条件判断
大家好呀!今天简单聊一聊Shell条件判断相关的内容,如文件比较、整数及字符串之间的判断、多重条件判断等。
1、语法格式三种语法格式:
1)test 条件表达式
test -e file:文件file存在则为真
2)[ 条件表达式 ]
[ -d /shell01/dir1 ]:目录dir1存在则为真[ ! -d /shell01/dir1 ]:目录dir1不存在则为真
3) [[ 条件表达式 ]],支持正则
[[ -f /shell01/1.sh ]]:文件1.sh存在且为普通文件,则为真
注意中括号前后都要有空格
通过man test查看对应参数及其用法,0为真,1为假。与通常的1真0假不同。
2、条件判断相关参数2.1 文件存在与否判断1)常用
1234-e 是否存在(不管是文件还是目录,只要存在,条件就成立)-f 是否为普通文件-d 是否为目录-s 判断文件是否有内容(大小),非空则为真
!表示取反,eg:-s表示非空,! -s 表示空文件。-d表示目录存在,! -d表示目录不存在。
2)其他
12345-S socket-p pipe-c character-b blo ...
Shell编程(2)
大家好呀!今天简单介绍一下Shell基础,包括变量、数组以及四则运算等方面内容。
1、变量1.1 变量分类1)本地变量:当前用户自定义的变量。当前进程中有效,其他进程及当前进程的子进程无效。2)环境变量:当前进程有效,且能够被子进程调用。
env:查看当前用户的环境变量set:查询当前用户的所有变量(临时变量与环境变量)export:将当前变量变成环境变量
1234567# 临时将一个本地变量(临时变量)变成环境变量export A=hello env|grep ^A# 永久生效:vim /etc/profile 或者 ~/.bashrc# 系统中有一个变量PATH,即环境变量
3)全局变量:全局所有的用户和程序都能调用,且继承,新建的用户也默认能调用。
12345678910111213141516$HOME/.bashrc #当前用户的bash信息(aliase、umask等)$HOME/.bash_profile #当前用户的环境变量$HOME/.bash_logout #每个用户退出当前shell时最后读取的文件/etc/bashrc #使用ba ...
Shell编程(1)
大家好呀!今天来简单介绍一下Shell基础,Shell介于内核与用户之间,是一个命令解释器,负责命令的解释。简单理解,Shell既是一个程序也是一种脚本语言。
1、shell介绍1.1 概述shell介于内核与用户之间,是一个命令解释器,负责命令的解释。shell是人机交互的桥梁,通过在终端上输入shell命令来控制linux内核,进而控制系统硬件。
1.2 shell的种类1cat /etc/shells
终端输入ps命令,可以看到bash的进程。当用户在终端上输入命令后,会由该bash进行解析,所以解析命令的是bash,而不是终端(终端只是一个程序,而真正解析的是bash)
终端可以看做是bash的接口,而bash就是shell的一种类型(bash shell)
2、shell脚本2.1 概述1)什么是shell脚本?
简单理解,将需要执行的命令保存到文本中,按照顺序执行。由于shell是解释型的,所以无需编译。
概括而言,若干命令 + 脚本的基本格式 + 脚本特定语法 + 思想= shell脚本
2)什么时候用到脚本?
对于重复化、复杂化的工作,通过把工作的命令写成 ...
DNS服务
今天来简单聊一聊DNS服务,众所周知,在网络中计算机之间是通过IP地址进行互相访问的,当我们访问某个域名时,其背后是DNS服务器进行了域名解析,并得到对应的IP地址。域名相比于IP地址而言,更加简单易记,从而可以更方便地访问。
一、背景引入及DNS概述我们先从背景出发,然后具体介绍什么是DNS,最后通过搭建DNS服务器进行上手实战。
1、背景引入公司内网中需要通过域名访问到开发的web应用,以获得更好的访问体验。为此需要在内网中搭建DNS服务器解析域名,通过内网DNS服务,访问到公司内部应用。
如下图例,我们PC端在访问某个域名时,其实背后是DNS服务器先进行了域名解析,得到对应的IP地址,域名只是一种访问的形式,其底层还是IP地址。
2、DNS概述DNS(domain name system),即域名管理系统。域名由特定的格式组成,用来表示互联网中某一台计算机或者计算机组的名称,域名的好处是实现更方便的访问,而不用去记复杂的IP地址。
互联网中,计算机都是通过IP地址进行互相访问的。计算机 => IP地址。
由于IP地址复杂难记,如192.168.91.10,所以一般使用域名 ...
SAMBA服务
大家好呀!这里是码农后端。今天来简单聊一聊SAMBA服务。SAMBA服务主要用于实现windows和Linux下的文件共享、打印共享等。
一、SAMBA文件共享1、什么是SAMBA?SMB(Server Message Block)协议实现文件共享,也称为CIFS(Common Internet File System),是Windows和类Unix系统之间共享文件的一种协议。客户端主要是Windows,支持多节点同时挂载以及并发写入;主要用于windows和Linux下的文件共享、打印共享,实现匿名与本地用户文件共享。
2、SAMBA主要进程2.1 smbd进程控制发布共享目录与权限、负责文件传输 ,TCP,139 445
2.2 nmbd进程1)用于名称解析netbios,UDP,137 138 ;2)基于NETBIOS协议获得计算机名称 => 解析为相应IP地址,实现信息通讯
NetBIOS(Network Basic Input/Output System),一般指用于局域网通信的一套API
3、SAMBA环境准备1)从模板机中克隆一台Linux服务器SA ...
什么是生成式AI?
大家好呀!这里是码农后端。近些年来,AI技术的持续火爆,无不印证了AI将引领下一场工业革命。认识AI并发展使用AI,是顺应时代和技术变革的需要。今天来简单聊一聊什么是生成式AI、什么是AIGC,及其背后的工作原理和关键技术。
一、背景引入过去十年以来,AI 一直是热门技术话题,但生成式 AI,尤其是 2022年ChatGPT 的出现,使 AI 成为全球头条新闻,并掀起了前所未有的 AI 创新和采用浪潮。
生成式 AI 为个人和组织提供了巨大的工作效率优势,同时也产生了非常现实的挑战和风险,但企业正在向前迈进,深入了解该技术如何能改善其内部工作流程,并丰富其产品和服务。
管理咨询公司 McKinsey 的研究显示,三分之一的组织至少已经在一项业务职能中定期使用生成式 AI。行业分析机构 Gartner 预计,截至 2026 年,超过 80% 的组织将部署生成式 AI 应用程序,或使用生成式 AI 应用程序编程接口 (API)。
二、什么是生成式 AI?回归正题,那么到底什么是生成式 AI呢?
生成式 AI,也称作 gen AI,是一种人工智能 (AI),能够创建原创内容,如文本、图像、视 ...
NFS服务
大家好呀!这里是码农后端。今天来简单聊一聊NFS服务。NFS(Network FileSystem,网络文件系统),是一个比较轻量级的服务,如果想要搭建一个大容量的存储平台,那么使用NFS既简单又快速。
一、NFS服务概述1、背景引入为了提高用户的访问效率,现需要将原有web服务器上的静态资源文件分离出来,单独保存到一台文件服务器上。
1)搭建NFS服务器(用于静态资源的存储如图片、视频、附件)
2)使用mount指定对NFS服务器进行挂载,挂载到Web服务器中
2、环境准备由模版机CentOS7.6(通过恢复到快照还原为系统初始状态)在关机情况下使用完整克隆,克隆出3台一模一样的机器,分别为Web、NFS和Backup。
编号
主机名称FQDN
IP地址
作用
1
web.itweb.cn
10.1.1.11
Web服务器
2
nfs.itweb.cn
10.1.1.12
NFS服务器
3
backup.itweb.cn
10.1.1.13
Backup服务器
FQDN(Fully Qualified Domain Name),是一种网络标识符,用于唯一地标 ...