知识点回顾:
一、IOC容器---DI依赖注入:setter注入(属性注入)/构造子注入/字段注入(注解 )/接口注入 out

Spring IOC容器的使用:
A、完全使用XML文件来配置容器所要管理的业务组件及相互依赖关系 。<bean><property></bean>
B、使用xml来配置Bean,用注解(@Autowired @Resource)来配置依赖。<context:annotation-config/>
C、完全使用注解 <context:component-scan base-package="com.lspring.annotation2,com.lspring.annotation3"></context:component-scan>
@Service,@Controller,@Component,@Repository,有些标签,则会把其放到容器中,@Autowired @Resource表示依赖关系
Spring 容器其特性:
A:value属性处理。注册自定义的类型。
B:容器扩展,容器的扩展点.beanfactorypostprocessor,属性文件加载。${db.ur}
C:factoryBean,工厂Bean,专用来生产各种产品的Bean.getObject().
D:使用c,p命名空间简化配置。1

二、AOP功能,面向切面的编程,应用场景:
在java实现AOP原理:代理模式的应用。
对接口进行代理用JDK动态代理,Proxy.newProxyInstance(),对类的代理用第三方框架。
Hibernate中的代理:
Person p = session.load(Person.class,1);
p.getClass();//javaasist

新知识点:

一、Spring中的AOP详解(1):
1.概念方面介绍:
Aspect(切面):是通知和切入点的结合,通知和切入点共同定义了关于切面的全部内容---它的功能、在何时何地完成其功能??
joinpoint(连接点):是切入切面代码的某一个点,Spring只支持方法连接点,不支持字段或者其他连接点。PersonService.addPerson()方法之前。

切入点:指一堆连接点的集合
,比如所有名字为add*的方法之前。有一种表达式语言,Spring使用AspectJ的的切入点描述语法。有点类似于正则表达式。execution(*com.lspring);
Advice(通知/建议):指连接点(切入点)的什么位置做什么事情(切面的代码)?

Target:目标对象,对哪个对象进入切入其它方面的代码。
weaving(织入):把几个切面的代码切入核心业务组件的过程。静态织入,(aspect)只编译的时候就织入(支持AOP的编译器)。
动态强化:编译使用普通的java编译器,在运行的时候通过代理来进行织入
静态织入的效率要比动态强化的效率。
Introduction(引入):在修改代码的情况下,给一个已经存在的业务组件添加一些方法
2.基本应用
(1)首先加入 命名空间
location
http://www.springframework.org/schema/aop/spring-aop-3.2.xsd"

[Spring学习笔记 5 ] Spring AOP 详解1的更多相关文章

  1. Spring学习(八)AOP详解

    文章更新时间:2020/04/06 一.一个例子 在上面的例子中,包租婆的核心业务就是签合同,收房租,那么这就够了,灰色框起来的部分都是重复且边缘的事,交给中介商就好了,这就是 AOP 的一个思想:让 ...

  2. Spring全家桶——SpringBoot之AOP详解

    Spring全家桶--SpringBoot之AOP详解 面向方面编程(AOP)通过提供另一种思考程序结构的方式来补充面向对象编程(OOP). OOP中模块化的关键单元是类,而在AOP中,模块化单元是方 ...

  3. IP2——IP地址和子网划分学习笔记之《子网掩码详解》

    2018-05-04 16:21:21   在学习掌握了前面的<进制计数><IP地址详解>这两部分知识后,要学习子网划分,首先就要必须知道子网掩码,只有掌握了子网掩码这部分内容 ...

  4. spring学习笔记(一) Spring概述

    博主Spring学习笔记整理大部分内容来自Spring实战(第四版)这本书.  强烈建议新手购入或者需要电子书的留言. 在学习Spring之前,我们要了解这么几个问题:什么是Spring?Spring ...

  5. Java架构师之路 Spring学习笔记(一) Spring介绍

    前言 这是一篇原创的Spring学习笔记.主要记录我学习Spring4.0的过程.本人有四年的Java Web开发经验,最近在面试中遇到面试官总会问一些简单但我不会的Java问题,让我觉得有必要重新审 ...

  6. [Spring学习笔记 1 ] Spring 简介,初步知识--Ioc容器详解 基本原理。

    一.Spring Ioc容器详解(1) 20131105 1.一切都是Bean Bean可是一个字符串或者是数字,一般是一些业务组件. 粒度一般比较粗. 2.Bean的名称 xml配置文件中,id属性 ...

  7. Spring学习笔记IOC与AOP实例

    Spring框架核心由两部分组成: 第一部分是反向控制(IOC),也叫依赖注入(DI); 控制反转(依赖注入)的主要内容是指:只描述程序中对象的被创建方式但不显示的创建对象.在以XML语言描述的配置文 ...

  8. MyBatis学习笔记2--配置环境详解

    1.MyBatis-config.xml详解 一个完整的配置文件如下所示 <configuration> <!-- <properties resource="jdb ...

  9. Spring 学习笔记(2) Spring Bean

    一.IoC 容器 IoC 容器是 Spring 的核心,Spring 通过 IoC 容器来管理对象的实例化和初始化(这些对象就是 Spring Bean),以及对象从创建到销毁的整个生命周期.也就是管 ...

随机推荐

  1. Android Eclipseproject开发中的常见调试问题(二)android.os.NetworkOnMainThreadException 异常的解决的方法

    android.os.NetworkOnMainThreadException 异常的解决的方法. 刚开是把HttpURLConnectionnection 打开连接这种方法放在UI线程里了,可能不是 ...

  2. 从数据库中取 datetime类型,界面展示 yyyy-MM-dd

    //处理提问时间,去掉时分秒 if(array!=null && array.size()>0){ for(int i=0;i<array.size();i++){ JSO ...

  3. (转)Unity3D中脚本的执行顺序和编译顺序(vs工程引用关系)

    自:http://www.cnblogs.com/champ/p/execorder.html 在Unity中可以同时创建很多脚本,并且可以分别绑定到不同的游戏对象上,它们各自都在自己的生命周期中运行 ...

  4. CSOM中如何取到managed metadata类型字段的类型信息

    Field.fieldTypeKind返回的是Invalid [解决方法] There is no "Metadata" type of field in the SP.Field ...

  5. 安装QT的时候出现PATH_MAX错误

      运行c:\qt\4.5.0的configure文件的时候,出现如下的错误提示: ....\corelib\io\qfsfileengine_win.cpp(1012) : error C2065: ...

  6. GIF添加3D加速

    由于浏览器内核对Gif格式的图片会产生卡的情况,所以我们需要告诉浏览器,开启一下加速,方法很简单,就是利用css3的特性,强制告诉浏览器,这是个元素,需要3D转换,请务必开启加速效果 方法1 给gif ...

  7. Tomcat下设置项目为默认项目

    项目的实际使用中常常须要将当前项目设为tomcat的默认项目,而不是进入到tomcat的页面,有几种方法能够实现,注意另外一种.第三种情况须要先删除webapps下的ROOT文件夹,否则会失败. 一. ...

  8. jquery效果 窗口弹出案例

    效果 ①基本效果:show().hide().toggle() ②滑动 slideDown().slideUp().slideToggle() 划上:$("p").slideUp( ...

  9. Elasticsearch - 理解字段分析过程(_analyze与_explain)

    我们经常会遇到问题.为什么指定的文档没有被搜索到.许多情况下, 这都归因于映射的定义和分析例程配置存在问题. 针对分析过程的调试,ElasticSearch提供了专用的REST API. _analy ...

  10. javascript 替换 window.onload 的 document.ready

    通常我们想要在页面内容加载完成后运行 JS 时,都会使用 window.onload 来处理,比如: window.onload = function(){      alert('Hello Wor ...