摘要: 3.1 创建Optinoal 创建一个空的Optional Optional empty = Optional.empty(); 创建一个非空的Optional ,如果of参数为null则抛出空指针异常 String str1 = ""; Optional strOptional = Optiona 阅读全文
posted @ 2020-09-22 16:23 maoyan 阅读(188) 评论(0) 推荐(0) 编辑
摘要: spring 支持了三种初始化和销毁方法 1、加注解。@PostConstruct 和 @PreDestroy 这种初始化方法最先执行,是初始化后处理支持的,具体实现类 org.springframework.beans.factory.annotation.InitDestroyAnnotatio 阅读全文
posted @ 2020-09-04 17:15 maoyan 阅读(274) 评论(0) 推荐(0) 编辑
摘要: spring给应用预留扩展最丰富地方了。这里是梳理bean创建的主流程,扩展点,其中很多具体点并没有展开分析。 这个是在IOC刷新主流程中的第十一步的preInstantiateSingletons方法 public void preInstantiateSingletons() throws Be 阅读全文
posted @ 2020-09-01 17:26 maoyan 阅读(544) 评论(0) 推荐(0) 编辑
摘要: 1、aware接口的使用例子 通过Aware接口、ApplicationContextAwareProcessor bean后处理器,将IOC容器中的组件在创建bean的时候通过BeanPostprocessor接口中的postProcessBeforeInitialization方法赋值到需要的地 阅读全文
posted @ 2020-09-01 15:12 maoyan 阅读(281) 评论(0) 推荐(0) 编辑
摘要: 1、准备容器刷新的一些初始化工作 在上下文中初始化一些属性。 校验所有标记为必须的属性,这些属性必须为可解析的,解析的结果不能为空,负责会抛出异常 初始化事件监听器和事件源。 2、获取BeanFactory 这个方法主要是返回一个BeanFactory,这个对象是在创建应用ApplicationCo 阅读全文
posted @ 2020-09-01 10:52 maoyan 阅读(157) 评论(0) 推荐(0) 编辑
摘要: package spring.learn.annotation.aopconfig; import org.springframework.aop.TargetSource; import org.springframework.aop.aspectj.AbstractAspectJAdvice; 阅读全文
posted @ 2020-08-24 16:47 maoyan 阅读(251) 评论(0) 推荐(0) 编辑
摘要: 这个应该是工作中用的最多的。有必要掌握这块知识。 aspect可以通过表达式函数以不同的方式描述连接点,方式包括: 1、方法切点函数:通过描述目标类的方法信息来定位连接点; execution():括号里写,描述要代理方法的信息,支持通配符。 @annotation():括号里写变量名,变量名就是增 阅读全文
posted @ 2020-08-21 13:40 maoyan 阅读(387) 评论(0) 推荐(0) 编辑
摘要: 自动代理抽象: public abstract class AbstractAutoProxyCreator extends ProxyProcessorSupport implements SmartInstantiationAwareBeanPostProcessor, BeanFactoryA 阅读全文
posted @ 2020-08-20 10:19 maoyan 阅读(185) 评论(0) 推荐(0) 编辑
摘要: aop术语: 1、连接点(Joinpoint): 需要增强的具体位置比如某一个方法调用前,调用后,异常后2、切点(pointcut): 用于定位连接点。3、增强(advice):是植入连接点的一段代码4、目标对象(target):连接点所在的类的实例5、引介(introduction):可以为类添加 阅读全文
posted @ 2020-08-20 09:07 maoyan 阅读(343) 评论(0) 推荐(0) 编辑
摘要: 使用: 1、引入spring的jdbc、数据库驱动,数据源 2、配置数据源,注入JdbcTemplate,启用事务管理,注入DataSourceTransactionManager 3、传播机制 @see Propagation#REQUIRED 支持当前事务,如果没有则新建一个事务,例:a方法调用 阅读全文
posted @ 2020-08-18 11:29 maoyan 阅读(268) 评论(0) 推荐(0) 编辑