java动态代理
动态代理: 基于反射机制
什么是动态代理
知道动态代理能做什么
代理含义
代理模式是指,为其他对象提供一种代理以控制对这个对象的访问,
在某些情况下,一个对象不适合或者不能直接应用另一个对象,
而代理对象可以在客户类和目标对象之间起到中介的作用
代理对象,是为了不修改在目标对象的基础上,增强主业务逻辑。
客户真正想要访问的目标对象是通过代理对象来实现的
代理类与目标类实现同一接口
代理模式的作用
1、功能增强:在原有的功能的基础上,增加了额外的功能,新增增加的功能,叫做功能增强
2、控制访问:代理类代替客户类对目标对象进行访问,目标对象无法直接被客户类访问,需通过代理类访问
实现代理的方式
1、静态代理:
代理类是自己手工实现的,自己创建一个java类,表示代理类
同时你所要使用代理的目标类是确定的
特点:实现简单,容易理解
例题:模拟用户购买u盘的行为
用户是客户端类,商家是代理类,产家是目标对象
用户—访问—>商家—访问—>产家
其中商家和产家都是买u盘的,他们的功能是一致的
实现方式:
1、创建一个接口:定义卖u盘的方法,表示你的产家和商家做的事情
2 ...
自动化测试
selenium——— 自动化测试selenium 简介主流的web自动化测试工具1、QTP:QTP是一个商业化的功能测试工具,支持web测试和,桌面自动化测试
2、selenium:是一个开源的自动化测试工具,主要是功能测试
3、Robot framework:是一个基于python可拓展关键字驱动的测试自动化框架
元素定位 元素:页面内的元素,代码和元素是一一对应的关系,通过属性 与 属性值(key=value)键值对,进行元素定位
元素定位方式
id定位(id值 定位)
find_element(By.ID,’path’)
name定位(通过name属性定位)
find_element(By.NAME,’path’)
class_name定位(通过class_name定位)
find_element(By.Class_Name)
tag_name(标签元素)(tag_name定位
link_text 定位
partical_link_text(超链接元素)
XPath(页面元素中的连接路径)
Css()
Xpath 路径文件
语法1://标签名[@属性=’属 ...
python[Logging 内置函数]
logging—日志处理logging 日志级别——默认级别时warning
级别
级别数值
使用时机
DEBUG
10
详细信息,常用与调试
INFO
20
程序正常允许过程中产生的一些信息
WARNING
30
警告用户,虽然程序还在允许,但是可能发生错误
ERROR
40
由于更严重的问题,程序已经不能执行一些功能了
CRITICAL
50
严重错误,程序已经不能允许
123456789101112131415161718# 使用 basicConfig() 来指定 日志 的 输出 格式# filename 为 要将 日志保存 的 文件 # filemode 为 写入 方式 默认是(默认是 追加方式) ‘w’ 是 先清空 后 写入logging.basicConfig(filename="./demo.log",filemode="w",level=logging.DEBUG)logging.debug("this is debug level")logging.info(" ...
springAOP思想
AOP 面向切面
aop思想的实现方案
动态代理技术,在运行期间,对目标对象的方法进行增强
代理对象同名方法内可用执行原有逻辑的同时嵌入执行其他增强方法
逻辑或其他对象的方法
AOP (Aspect Oriented Programming) 面向切面编程,
该编程是对oop编程的一个提升
oop是纵向对一个事务的抽象
一个对象包括静态的属性信息,包括动态方法信息
aop是横向的对不同事务的抽象,
属性与属性,方法与方法,对象与对象可以组成一个切面
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475// 代理目标对象实现接口public interface UserService { void said(); void talk();}// 代理的目标对象@Repository("userService ...
关于ssm框架学习
1、Mybatis环境部署1、创建maven工程mybatis2、配置相关依赖3、添加
2、MyBatis工作原理
3.1 动态sql中的元素元素
: 判断 语句,用于条件判断
(): 相当于 java 中switch
: 简化sql 语句中 where 判断
: 可以灵活去除多余的关键字
: 用于sql语句的动态更新
:循环语句,常用于in 语句 等列举条件
mybatis 的 关联映射
关联映射
- 了解数据表之间的三种关系
- 了解对象之间的三种关系
- 熟悉关联关系中的嵌套查询和嵌套结果
- 掌握一对一关联映射
- 多对多关联映射
- 熟悉mybatis的缓存机制
通过关联映射可以很好的处理表与表之间、对象与对象之间的关系的关联映射关系
1.一对一关系* 就是在类中定义与之关联的类的对象作为属性
* 例如:A类中定义B类 对象b 作为 属性
* B类中定义A 类 对象a 作为属性
伪代码:
123456public class StudentA{ // 学生 StudentCarB b;// 学生卡}public class ...
spring 知识1
Spring1. spring IOC(控制反转) (将控制权转移到ApplicationContext)1. 控制反转(Inversion of Control)
是面向对象编程中一个设计原则
用来降低程序代码之间的耦合度
2. 传统面向对象编程中,获取对象的方式通过
new关键字主动床i教案一个对象,也就是说应用程序
掌握着对象的控制权,
3. IoC控制反转机制指的是对象有Ioc容器同意管理,
单程序需要使用对象是,可以直接从ioc 容器中获取,
这样对象的控制权就转移到了ioc容器
它是借助ioc容器实现具有依赖关系对象
之间的解耦,给个对象类封装之后
通过ioc容器来关联这些对象类
2. 依赖注入(dependency inject)1、 依赖注入的作用就是在使用Spring框架创建对象时
动态的将其所依赖的对象注入到Bean组件中
依赖注入通常有两种实现凡是
一种时构造方法注入
另一种时属性setter方法注入
构造方法注入
构造方法注入是指Spring容器条用钩爪 ...



![python[Logging 内置函数]](https://pic.imgdb.cn/item/663639b50ea9cb14035a6afc.png)
