Spring框架介绍
框架什么是(软件)框架
维基百科:软件框架,通常指的是为了实现某个业界标准或完成特定基本任务的软件组件规范,也指为了实现某个软件组件规范时,提供规范所要求之基础功能的软件产品
框架就是制定一套规范或者规则(思想),大家(程序员)在该规范或者规则(思想)下工作。或者说就是使用别人搭好的舞台,来做表演
框架的特点
半成品
封装了特定的处理流程或控制逻辑
成熟、不断升级改进的软件
框架与类库的区别
框架一般是封装了逻辑、高内聚,类库则是松散的工具组合
框架专注于某一领域,类库则是更通用的
为什么使用(软件)框架
软件系统日趋复杂
重用度高,开发效率和质量提高
软件设计人员要专注于对领域的了解,使需求分析更充分
易于上手、快速解决问题
什么是Spring
Spring是一个开源框架,为了解决企业应用开发的复杂性而创建,
是一个轻量级的控制反转(Ioc)和面向切面(AOP)的容器框架
从大小与开销两方面而言Spring都是轻量的
通过控制反转(Ioc)的技术达到送耦合的目的
提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务进行内聚性的开发
包含并管理应用对象的配置 ...
Spring工厂
Spring的工厂类
实例FileSystemXmlApplicationContext读取磁盘系统中的配置文件
目录结构
任意路径下存放配置xml文件:applicationContext.xml
1234567891011<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <!--UserService的创建权交给了Spring--> <bean id="userService" class ...
Spring IOC
Spring的IOC的底层原理
Spring IOC的快速入门案例
新建Maven项目:spring-exmaple
maven的pom.xml文件中引入Spring相关依赖
12345678910111213141516171819202122232425262728293031323334353637383940<!--Spring相关依赖包--> <!--提供了框架的基本组成部分,包括 IoC 和依赖注入功能--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring.version}</version> </dependency> <!--提供 BeanFactory,工厂模式的微妙实现,它移除了编码式单例的需要 ...
Spring Bean 注解方式
开启注解扫描applicationContext.xml中需要开启注解扫描
12345678910111213<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.sp ...
Spring Bean XML方式
Spring XML三种实例化Bean的方式
使用类构造器实例化(默认无参数)
使用静态工厂方法实例化(简单工厂模式)
使用实例工厂方法实例化(工厂方法模式)
第一种:使用类构造器实例化(默认无参数)
创建Bean类
12345678910111213141516package com.example.bean.demo; /** * Bean的实例化的三种方式:采用无参数的构造方法的方式 * * @author jinglv * @date 2020/12/27 */ public class Bean1 { /** * 无参构造方法 */ public Bean1() { System.out.println("Bean1被实例化了..."); } }
编写配置文件
1234567891011<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="ht ...
阿里云服务相关配置搭建
JDKJDK1.8下载:https://www.oracle.com/cn/java/technologies/javase/javase-jdk8-downloads.html
下载需要Oracle登录,注册即可,下载完成后上传至阿里云服务器,进行解压配置环境变量
12345678910[root@localhost ~]# lsjdk-8u281-linux-x64.tar.gz[root@localhost ~]# tar -zxvf jdk-8u281-linux-x64.tar.gz……[root@localhost ~]# lsjdk1.8.0_281 jdk-8u281-linux-x64.tar.gz[root@localhost ~]# mv jdk1.8.0_281/ /usr/local/jdk1.8[root@localhost ~]# cd /usr/local/[root@localhost local]# lsaegis bin etc games include jdk1.8 lib lib64 libexec sbin share ...
正则表达式
正则表达式正则是什么,能做什么?正则,就是正则表达式,英文是 Regular Expression,简称 RE。顾名思义,正则其实就是一种描述文本内容组成规律的表示方式
在编程语言中,正则常常用来简化文本处理的逻辑
在 Linux 命令中,它也可以帮助我们轻松地查找或编辑文件的内容,甚至实现整个文件夹中所有文件的内容替换
在各种文本编辑器中,比如 Atom,Sublime Text 或 VS Code 等,在查找或替换的时候也会使用到它
正则功能:
校验数的的有效性,比如校验手机号、邮箱
查找符合要求的文本内容,比如查找符合某规则的号码
对文本进行切割、替换等操作,比如用连续的空白符切割
正则练习地址
基础篇元字符元字符的概念所谓元字符就是指那些在正则表达式中具有特殊意义的专用字符,元字符是构成正则表达式的基本元件。正则就是由一系列的元字符组成的。
正则元字符特殊单字符
字符
说明
.
任意字符(换行除外)
\d
任意数字
\D
任意非数字
\w
任意字母数字下划线
\W
任意非字母数字下划线
\s
任意空白符
\S
任意非空白符
空白符
...
Requests
RequestsRequests 官方说它是一个简单而优雅的 HTTP 库。
Requests官方文档
Requests使用大纲
HTTP形式的API的请求方式
GET:GET 方法请求一个指定资源的表示形式,使用 GET 的请求应该只被用于获取数据。
HEAD:HEAD 方法请求一个与 GET 请求的响应相同的响应,但没有响应体。
POST:POST 方法用于将实体提交到指定的资源,通常导致在服务器上的状态变化或副作用。
PUT:PUT 方法用请求有效载荷替换目标资源的所有当前表示。
DELETE:DELETE 方法删除指定的资源。
CONNECT:CONNECT 方法建立一个到由目标资源标识的服务器的隧道。
OPTIONS:OPTIONS 方法用于描述目标资源的通信选项。
TRACE:TRACE 方法沿着到目标资源的路径执行一个消息环回测试。
PATCH:PATCH 方法用于对资源应用部分修改。
一般情况下,在测试中使用最多的请求方式是 GET、POST、PUT、DELETE 这四种。并且如果是通过代码方式发送请求,在 Python 里我们最经常用的就是 Requests 库。
...
unittest
unittestunittest 是 Python 自带的类 Junit 单元测试框架。
像 Junit 之于 Java 一样,unittest 可用于单元测试,也可用于 Web 自动化测试甚至接口测试。unittest 支持测试用例/测试用例集的查找、组装,还可以在测试用例/测试用例集内共享数据,也支持根据条件筛选测试用例执行,以及自动化生成测试报告。
使用 unittest 可以快速搭建自动化测试框架进行测试。
unittest 核心组成Test FixtureTest Fixture 通常用来做测试用例的准备或者清理工作。比如测试开始前的数据准备或者测试结束后的数据清理等。Python 通过 setUp()、tearDown()、setUpClass()、tearDownClass() 这 4 个钩子函数(Hook)来实现测试的准备和清理工作。
Test CaseTest Case 是 unittest 的最小单元,一个 Test Case 就是一个测试用例,通常 Test Case 会继承 TestCase 这个基类。
Test SuiteTest Suite 是测试套件,就是 ...
pytest
pytestpytest 是一个成熟、全套的 python 自动化测试工具,旨在帮助你写出更好的程序。它可以用来做单元测试,也可以用来做功能测试、接口自动化测试;相比 unittest,它能支持更多、更全面的功能,有着以下特色和优势。
直接使用纯粹的 python 语言, 不需要你过多学习框架特定的语法,例如 self.assert* 等,以此减少学习成本;
pytest 框架不需要写诸如 setUp()、tearDown() 这样的方法,它可以直接开始测试;
pytest 可以自动识别测试用例,无须像 unittest 一样将测试用例放进 TestSuite 里组装;
test fixtures 包括数据参数化测试非常好用;
pytest 支持错误重试;
pytest 支持并发测试。
pytest安装pytest 不是 python 标准库,故使用时需要安装:
1234# 安装 pip install -U pytest# 查看pytest --version
pytest使用pytest简单使用如下Python脚本:
12345678class TestSample(obj ...