不做笔记了
Java反射机制主要提供了以下功能: 在运行时判断任意一个对象所属的类;在运行时构造任意一个类的对象;在运行时判断任意一个类所具有的成员变量和方法;在运行时调用任意一个对象的方法;生成动态代理。



比如加新的付款方法,有活动,要改里面的付款流程等等,卧槽,想想就可怕,改一个地方,其他地方,BOOM的就炸了


这里面的user也应该是一个完整的对象

比如它的个人信息,邮箱之类的

卧槽,等会!!!!!!要是我的某一个付款平台变了,这个统一的接口肯定就不能要了,那我怎么办,用动态代理实现执行部分功能不就行了嘛
比如统一的接口肯定有一些什么用户校验之类的, 这些都是一样的,但是肯定有一些是不一样的,比如活动判断,我CNMD,NB啊

一个接口,各自的平台写各自的

这样就能计算时间了





1、代码严重重复:重复添加,重复删除
2、辅助性的业务功能代码与核心业务代码偶合在一起,代码混乱;很容易造成bug,不好调试维护,升级维护都困难
对!!!!!就整个,妈的,测个核心代码,我还有跑一下辅助代码,之前可烦死我了,我就是想知道核心代码的问题
3、万一之后我的计算时间有bug,或者计算逻辑要改,那就是一个一个个改,我超





就是我把辅助业务也封装成对象了
但是这个东西怎么用呢??
我要是把这个对象new 在这里,然后set数据进去,不是根之前一样了吗

我是需要用一个静态代理把支付功能包进去吗
因为它的pay方法里面只有核心的业务逻辑
我想在这个核心的代码前后 加上我的日志代码
那我就给他创建代理




笑死了,老师Date 转时间也不会了,老师说他一直用的都是工具类

要不在创建代理的时间,把支付类型放进去(肯定不用这种啊,多蛋疼啊)

要不直接通过 看它走的是哪个实现类 ,去通过反射获取它的类名,当做付款渠道


添加链接描述

建立辅助对象

插入耗时代码










它里面这个








当运行未知的Java程序的时候,该程序可能有恶意代码(删除系统文件、重启系统等),为了防止运行恶意代码对系统产生影响,需要对运行的代码的权限进行控制,这时候就要启用Java安全管理器。
添加链接描述
添加链接描述
先这样吧,我大概有那么一点朦胧的印象 关于 动态代理怎么实现的






代码还是混杂的,只不过是在代理类里面混杂的




错了,因为不确定性,最终里面只能获取到连接点信息
连接点信息,就是上面那一大堆


连接点信息是spring帮我封装起来的一堆东西






1.getMethods是获取类中所有公共方法,包括继承自父类的
2.getDeclaredMethods是获取类中自己声明的方法,即自己声明的任何权限的方法,包括私有方法



连接点方法,需要被扩展的方法




所谓环,就是环绕着这个方法在执行了就是


这个里面可以直接调用 jp 来获取所有需要的属性





除了连接点信息,还能取到返回值信息




spring-context
Context可以理解为对BeanFactory的封装.包含BeanFactory选择/配置/Bean来源加载/定义容器启动流程,为其提供上下文以及丰富的拓展,这是直面使用者的接口.




就是这玩意

老师说这个在项目中是不用的。。。??





二、ThreadLocal与Synchronized的区别
ThreadLocal其实是与线程绑定的一个变量。ThreadLocal和Synchonized都用于解决多线程并发访问。
但是ThreadLocal与synchronized有本质的区别:
1、Synchronized用于线程间的数据共享,而ThreadLocal则用于线程间的数据隔离。
2、Synchronized是利用锁的机制,使变量或代码块在某一时该只能被一个线程访问。而ThreadLocal为每一个线程都提供了变量的副本
,使得每个线程在某一时间访问到的并不是同一个对象,这样就隔离了多个线程对数据的数据共享。
而Synchronized却正好相反,它用于在多个线程间通信时能够获得数据共享。
一句话理解ThreadLocal,向ThreadLocal里面存东西就是向它里面的Map存东西的,然后ThreadLocal把这个Map挂到当前的线程底下,这样Map就只属于这个线程了。

老师好像有解决办法,但是说那是新技术,先不讲

@PostContruct是Java自带的注解,在方法上加该注解会在项目启动的时候执行该方法,也可以理解为在spring容器初始化的时候执行该方法。
添加链接描述
添加链接描述
添加链接描述




不对,上面的理解错了



超了,我要是不懂 Alias 这个英文,这个知识点又要模模糊糊的过去了,学学英文然后去google问题啊,加油!!












懂了,只进了一个方法,不是进了一个数组
