Advisor

SSM框架之Spring

荒凉一梦 提交于 2020-10-28 09:16:29
IoC (Inversion of Control) 控制反转:对 对象(beans) 控制权的转移,从程序代码本身反转到了外部容器(xml配置文件, applicationContext.xml) 对象的创建不是在view层,而是通过xml配置文件生成的容器创建 配置文件: <?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"> <!-- 注册Service 底层相当于ISomeService service = new SomeServiceImpl(); --> <bean id="myService" class="service.SomeServiceImpl"/> </beans> 程序与配置文件: ApplicationContext容器:反应速度快/占用资源

统计信息顾问导致SYSAUX 过快增长 ((Doc ID 2440139.1)

Deadly 提交于 2020-10-25 08:53:18
升级DB到12.2.0.1版本之后,由于统计信息顾问导致SYSAUX 过快增长 (Doc ID 2440139.1) 文档内容 症状 更改 原因 解决方案 参考 适用于: Oracle Database Exadata Express Cloud Service - 版本 N/A 和更高版本 Oracle Database Cloud Schema Service - 版本 N/A 和更高版本 Oracle Database Cloud Service - 版本 N/A 和更高版本 Oracle Database Backup Service - 版本 N/A 和更高版本 Oracle Database - Enterprise Edition - 版本 12.2.0.1 和更高版本 本文档所含信息适用于所有平台 症状 升级DB到12.2.0.1 版本之后,SYSAUX 表空间增长过快并且消耗了大量的空间。 查询视图 V$SYSAUX_OCCUPANTS 显示 SM/ADVISOR 占用空间排名靠前. 进一步查询 DBA_SEGMENTS 显示 WRI$_ADV_OBJECTS 对象消耗了 SYSAUX 大量空间 例如: SQL> SET LINES 120 SQL> COL OCCUPANT_NAME FORMAT A30 SQL> SELECT OCCUPANT_NAME

Spring中异步注解@Async的使用、原理及使用时可能导致的问题

拈花ヽ惹草 提交于 2020-10-21 14:16:29
前言 其实最近都在研究事务相关的内容,之所以写这么一篇文章是因为前面写了一篇关于循环依赖的文章: 《 面试必杀技,讲一讲Spring中的循环依赖 》 然后,很多同学碰到了下面这个问题,添加了Spring提供的一个异步注解 @Async 循环依赖无法被解决了,下面是一些读者的留言跟群里同学碰到的问题: 本着讲一个知识点就要讲明白、讲透彻的原则,我决定单独写一篇这样的文章对 @Async 这个注解做一下详细的介绍,这个注解带来的问题远远不止循环依赖这么简单,如果对它不够熟悉的话建议慎用。 文章要点 @Async的基本使用 这个注解的作用在于可以让被标注的方法异步执行,但是有两个前提条件 配置类上添加 @EnableAsync 注解 需要异步执行的方法的所在类由Spring管理 需要异步执行的方法上添加了 @Async 注解 我们通过一个Demo体会下这个注解的作用吧 第一步,配置类上开启异步: @EnableAsync @Configuration @ComponentScan("com.dmz.spring.async") public class Config { } 第二步, @Component // 这个类本身要被Spring管理 public class DmzAsyncService { @Async // 添加注解表示这个方法要异步执行 public void

Spring AOP学习笔记04:AOP核心实现之创建代理

丶灬走出姿态 提交于 2020-10-03 21:38:19
   上文 中,我们分析了对所有增强器的获取以及获取匹配的增强器,在本文中我们就来分析一下Spring AOP中另一部分核心逻辑--代理的创建。这部分逻辑的入口是在wrapIfNecessary()方法中紧接着增强器的获取之后的createProxy(): protected Object createProxy( Class <?> beanClass, String beanName, Object[] specificInterceptors, TargetSource targetSource) { ProxyFactory proxyFactory = new ProxyFactory(); // 获取当前类中相关属性 proxyFactory.copyFrom( this ); // 决定对于给定的bean是否应该使用targetClass而不是它的接口进行代理 if (! shouldProxyTargetClass(beanClass, beanName)) { // Must allow for introductions; can't just set interfaces to // the target's interfaces only. Class<?>[] targetInterfaces = ClassUtils

spring事务详解(三)源码详解

独自空忆成欢 提交于 2020-10-02 20:25:47
系列目录 spring事务详解(一)初探事务 spring事务详解(二)简单样例 spring事务详解(三)源码详解 spring事务详解(四)测试验证 spring事务详解(五)总结提高 一、引子 在Spring中,事务有 两种 实现方式: 编程式事务管理 : 编程式事务管理使用TransactionTemplate可实现更细粒度的事务控制。 申明式事务管理 : 基于Spring AOP实现。其本质是对方法前后进行拦截,然后在目标方法开始之前创建或者加入一个事务,在执行完目标方法之后根据执行情况提交或者回滚事务。 申明式事务管理不需要入侵代码,通过@Transactional就可以进行事务操作,更快捷而且简单(尤其是配合spring boot自动配置,可以说是精简至极!),且大部分业务都可以满足,推荐使用。 其实不管是编程式事务还是申明式事务,最终调用的底层核心代码是一致的。本章分别从编程式、申明式入手,再进入核心源码贯穿式讲解。 二、事务源码 2.1 编程式事务TransactionTemplate 编程式事务,Spring已经给我们提供好了模板类TransactionTemplate,可以很方便的使用,如下图: TransactionTemplate全路径名是:org.springframework.transaction.support

Oracle 优化篇+SAA(SQL Access Advisor)用法

夙愿已清 提交于 2020-10-02 12:52:21
说明:本文为SAA(SQL Access Advisor)使用参考手册 用途:本文仅供初学者熟悉了解SQL Access Advisor或优化参考 标签:SQL Access Advisor、SAA、SAA使用方法、Oracle优化、SQL调优、SAA流程图 温馨提示:如果您发现本文哪里写的有问题或者有更好的写法请留言或私信我进行修改优化 高级内容:由于篇幅原因,部分高级内容和详情没有在此展现,如有需要可以留言或私信 ★知识点 ※ SQL Access Advisor是伴随着10G出现的一个优化工具,提供对表分区,物化视图,索引,物化视图日志优化建议 ※ 查看advisor的默认参数:select * from dba_advisor_def_parameters order by 2; ★ SAA流程图 ★ STS作为输入源 --本文选取了STS的输入源类型之A【Cursor Cache】 → dbms_sqltune.select_cursor_cache --模拟DML操作产生CURSOR_CACHE sqlplus scott/tiger set line 170 set pages 200 select count(*) from scott.emp where sal>3000; --删除SAA exec dbms_advisor.delete_task('ZZT

10种AWS成本优化最佳实践

岁酱吖の 提交于 2020-09-27 23:54:44
对于现有的成本优化的 问题,最常见的“解决方案”是调整大小,计划和购买预留实例以实现可预测的工作负载。 这三个“解决方案”可能是大多数AWS用户熟悉的AWS成本优化最佳实践,但不一定是“最佳”实践。有时,他们无法节省声称的成本的一小部分,而许多其他通常被忽视的AWS成本优化最佳实践可以节省更多。 10种AWS成本优化最佳实践 1.调整EC2实例的大小 正如我们已经提到的调整大小,调度和保留实例一样,让我们从这三个AWS成本优化最佳实践开始。调整大小的目的是使实例大小与其工作负载相匹配。不幸的是,由于实例的容量每增加一倍,容量就不能那样工作。 因此,只有在某些实例的峰值利用率不超过〜45%的情况下,调整大小才是值得的最佳实践。仍然值得分析利用率指标,以寻找机会将工作负载转移到更适合其需求的不同系列(“通用”之外)。 解决方案: 在某些实例的峰值利用率(最好是结合CPU和内存一起)不超过〜45%的情况下,调整大小才是值得的最佳实践 2.安排开/关时间 值得安排非生产实例(例如用于开发和测试的实例)的开/关时间,因为如果您应用“按时”计划(从上午8.00到8.00),您将节省运行这些实例的65%的时间下午星期一到星期五。但是,可以节省更多的钱,尤其是如果开发团队以不规则的方式或不规则的时间工作。 您可以通过分析利用率指标来确定更经常使用的实例,从而应用更为激进的调度

【Spring】Spring AOP 代理对象生成逻辑源码分析

非 Y 不嫁゛ 提交于 2020-08-20 08:16:23
1. spring aop案例(POJO注入) 1.0 被代理接口 TargetInterface /** * 被代理的接口 * @author Yang ZhiWei */ public interface TargetInterface { void show(); String showName(); } 1.1 被代理对象 @Slf4j public class TargetObject implements TargetInterface { @Override public void show() { log.info("show----->I am a TargetObject!"); } @Override public String showName() { return "showName--->TargetObject !"; } } 1.2 通知 MyAdvice @Slf4j public class MyAdvice { public void takeSeat() { log.info("====> MethodBeforeAdvice:Take Seat!"); } public void turnOffPhone() { log.info("==> MethodBeforeAdvice:turn Off Phone!"); } public

Spring中异步注解@Async的使用、原理及使用时可能导致的问题

空扰寡人 提交于 2020-08-19 23:00:03
前言 其实最近都在研究事务相关的内容,之所以写这么一篇文章是因为前面写了一篇关于循环依赖的文章: 《 面试必杀技,讲一讲Spring中的循环依赖 》 然后,很多同学碰到了下面这个问题,添加了Spring提供的一个异步注解 @Async 循环依赖无法被解决了,下面是一些读者的留言跟群里同学碰到的问题: 本着讲一个知识点就要讲明白、讲透彻的原则,我决定单独写一篇这样的文章对 @Async 这个注解做一下详细的介绍,这个注解带来的问题远远不止循环依赖这么简单,如果对它不够熟悉的话建议慎用。 文章要点 @Async的基本使用 这个注解的作用在于可以让被标注的方法异步执行,但是有两个前提条件 配置类上添加 @EnableAsync 注解 需要异步执行的方法的所在类由Spring管理 需要异步执行的方法上添加了 @Async 注解 我们通过一个Demo体会下这个注解的作用吧 第一步,配置类上开启异步: @EnableAsync @Configuration @ComponentScan("com.dmz.spring.async") public class Config { } 第二步, @Component // 这个类本身要被Spring管理 public class DmzAsyncService { @Async // 添加注解表示这个方法要异步执行 public void

[统计信息系列7] Oracle 11g的自动统计信息收集

那年仲夏 提交于 2020-08-17 06:38:53
(一)统计信息收集概述 在Oracle 11g中,默认有3个自动任务,分别是:自动统计信息收集、SQL调优顾问、段空间调整顾问,查看方法如下: SQL > SELECT CLIENT_NAME,TASK_NAME,OPERATION_NAME,STATUS FROM dba_autotask_task; CLIENT_NAME TASK_NAME OPERATION_NAME STATUS -- ------------------------------ -------------------------- -------------------------- -------- sql tuning advisor AUTO_SQL_TUNING_PROG automatic sql tuning task ENABLED auto optimizer stats collection gather_stats_prog auto optimizer stats job ENABLED auto space advisor auto_space_advisor_prog auto space advisor job ENABLED 灰色背景行代表自动统计信息收集,使用的任务为gather_stats_prog。gather_stats_prog调用了DBMS_STATS