摘要:
工作中,经常出现提交完代码之后,发现提交的代码还有遗漏的地方没改或者改错了。如果连续的提交,都是同一个需求改动的页面代码,就会导致连续提交记录中有很多无用的提交记录,显得git记录很乱。此时提交就不想保留上一次的提交记录。 还有时,提交完代码之后,发现自己的提交记录描述不正确。 遇到上面这两种情况, 阅读全文
摘要:
@Value 注入int、float、String等基本数据类型,只能标注在成员变量、setter方法上 @Autowired 按类型自动装配,可标注在成员变量(官方不推荐)、构造方法、setter方法上 @Qualifier 按名称自动装配,需要和@Autowired搭配使用,只能标注在成员变量( 阅读全文
摘要:
构造器注入 在初始化的时候,被依赖对象通过构造函数的传参注入到依赖对象 不够灵活,如果需要的依赖对象很多,那么参数列表很长 public class DemoImpl { private IService iService; public DemoImpl (IService iService){ 阅读全文
摘要:
IoC 即控制反转,是指对象的创建和配置的控制权从调用方转移给容器。 有了 IoC 容器,我们可以将对象交由容器管理,交由容器管理后的对象称之为 Bean。 调用方不再负责组件的创建,要使用组件时直接获取 Bean 即可。 调用方只需按照约定声明依赖项,所需要的 Bean 就自动配置完毕了,就好像在 阅读全文
摘要:
Spring AOP 由 BeanPostProcessor 后置处理器开始,这个后置处理器是一个***,可以监听容器触发的 Bean 生命周期事件,向容器注册后置处理器以后,容器中管理的 Bean 就具备了接收 IoC 容器回调事件的能力。 BeanPostProcessor 的调用发生在 Spr 阅读全文
摘要:
Aspect: 切面,一个关注点的模块化,这个关注点可能会横切多个对象。 Joinpoint: 连接点,程序执行过程中的某一行为,即业务层中可以应用通知进行增强的所有方法。 Advice: 通知,指切面对于某个连接点所产生的动作,也就是目标方法执行前后要进行的方法,包括前置通知、后置通知、返回后通知 阅读全文
摘要:
@Aspect: 声明被注解的类是一个切面 Bean。 @Before: 前置通知,指在某个连接点之前执行的通知。 @After: 后置通知,指某个连接点退出时执行的通知(不论正常返回还是异常退出)。 @AfterReturning: 返回后通知,指某连接点正常完成之后执行的通知,返回值使用retu 阅读全文
摘要:
AOP 即面向切面编程,简单地说就是将代码中重复的部分抽取出来,在需要执行的时候使用动态代理技术,在不修改源码的基础上对方法进行增强。 在OOP中,通过分包、分类、分层来封装复用的代码逻辑,这些一般都是核心业务代码。而一些日志记录、性能统计、安全校验、事务管理等辅助代码就难以封装。 如果使用代理模式 阅读全文
摘要:
Java 对象 JVM 退出时会全部销毁,如果需要将对象及状态持久化,就要通过序列化实现,将内存中的对象保存在二进制流中,需要时再将二进制流反序列化为对象。 对象序列化保存的是对象的状态,因此属于类属性的静态变量不会被序列化。 常见的序列化有三种: Java 原生序列化 实现 Serializaba 阅读全文
摘要:
主要分为字符流和字节流,字符流一般用于文本文件,字节流一般用于图像或其他文件。 字符流包括了字符输入流 Reader 和字符输出流 Writer 字节流包括了字节输入流 InputStream 和字节输出流 OutputStream 字符流和字节流都有对应的缓冲流 字节流也可以包装为字符流,缓冲流带 阅读全文