schema

Spring框架学习——AOP的开发

时光怂恿深爱的人放手 提交于 2020-03-09 20:40:56
一.AOP开发中的相关术语。   ——JoinPoint(连接点): 指那些可以被拦截到的点。比如增删改查方法都可以增强,这些方法就可以被称为是连接点。   ——PointCut: 切入点,真正被拦截的点,指对哪些连接点进行拦截的定义。JoinPoint是指方法可以增强,而切入点就是实际哪个方法进行增强或修改,这样的方法被称为切入点。    ——Advice(增强/通知): 方法层面的增强。指拦截到了方法后需要做的事情,也就是增强的功能部分被称为通知。分为前置(方法主体之前)、后置、环绕通知。     ——Introduction(引介):是一种特殊的通知,再不修改类代码的前提下进行类层面的增强。   ——Target:代理的目标对象,在AOP中也可以说是被增强的对象,如对UserDao增强,那么UserDao就是目标对象。   ——Weaving(织入):指将通知(Advice)应用到目标(Target)的过程。 也就是将增强应用到目标对象来创建新的代理对象的过程。Spring采用动态织入的方式。   ——Proxy(代理):一个类被AOP织入增强后,就产生一个结果代理类。   ——Aspect(切面):是多个切入点和多个通知(引介)的结合。在代理中可能有切面。 二、Spring使用AspectJ进行AOP开发( XML方式 )   A.创建动态web项目,引入jar包。    

AOP 和 前置通知,后置通知

本小妞迷上赌 提交于 2020-03-09 17:50:42
Spring 1、AOP:中文名称面向切面编程 2、英文名称:(Aspect Oriented Programming) 3、正常程序执行流程都是纵向执行流程   3.1 又叫面向切面编程,在原有纵向执行流程中添加横切面   3.2 不需要修改原有程序代码     3.2.1 高扩展性     3.2.2 原有功能相当于释放了部分逻辑,让职责更加明确 4、面向切面编程是什么??   4.1 在程序原有纵向流程中,针对某一个或某一些方法添加 通知,形成横切面过程,就叫做面向切面编程。 5、常用概念   5.1 原有功能:切点,pointcut   5.2 前置通知:在切点之前执行的功能 before advice   5.3 后置通知:在切点之后执行的功能 after advice   5.4 如果切点执行过程中出现异常,会触发异常通知 throws advice   5.5 所有功能总称叫做切面   5.6 织入:把切面嵌入到原有功能的过程叫做织入 6、spring提供了2种AOP实现方式   6.1 Schema-based :     6.1 每个通知都需要实现接口或类     6.2 配置spring配置文件时 在<aop:config>配置   6.2 Aspectj     6.2.1 每个通知不需要实现接口或类     6.2.2 配置spring配置文件是在<aop

Spring第五章:AOP(Schema-based)

Deadly 提交于 2020-03-09 17:50:30
AOP 链接:https://pan.baidu.com/s/1qS-AaZHSLUwxYSjc9PHDYA 提取码:np2q   1.AOP: 中文名称面向切面编程   2. 英文名称 :(Aspect Oriented Programming)   3. 正常程序执行流程都是纵向执行流程     3.1 又叫面向切面编程 , 在原有纵向执行流程中添加横切面     3.2 不需要修改原有程序代码       3.2.1 高扩展性       3.2.2 原有功能相当于释放了部分逻辑 . 让职责更加明确 .          4. 面向切面编程是什么 ?     4.1 在程序原有纵向执行流程中 , 针对某一个或某一些方法添加通 知 , 形成横切面过程就叫做面向切面编程 .   5. 常用概念     5.1 原有功能 : 切点 , pointcut     5.2 前置通知 : 在切点之前执行的功能 . before advice     5.3 后置通知 : 在切点之后执行的功能 ,after advice     5.4 如果切点执行过程中出现异常 , 会触发异常通知 .throws advice     5.5 所有功能总称叫做切面 .     5.6 织入 : 把切面嵌入到原有功能的过程叫做织入   6.spring 提供了 3 种 AOP 实现方式     6.1

对AOP切面的一些整理与理解

三世轮回 提交于 2020-03-09 17:41:49
首先上一张AOP的图示 一:几个重要的概念 1> 切面:横切关注点(跨越应用程序多个模块的功能)被模块化的特殊对象[验证切面。日志切面] 2> 通知:切面中的每个方法 3> 目标:被通知的方法(业务逻辑中的方法) 4> 代理(proxy):向目标对象应用通知之后创建的对象 5> 连接点:程序运行前的某个特定位置(详细的物理存在):如某个方法调用前,调用后,方法抛出异常后等。 连接点由两个信息确定:方法表示的程序运行点相对点表示的方位。 6> 切点:每一个类会有多个连接点(看不到摸不到,非详细物理存在)[通过切点能够定位到非常多个连接点]即:连接点是程序类中客观存在的事务。 AOP通过切点定位到特定的链接点。 类比:连接点相当于数据库中的记录,切点相当于查询条件。切点和连接点不是一一相应的关系,一个切点匹配多个连接点。切点通过接口进行描写叙述。使用类和方法作为连接点的查询条件。 二:Spring AOP 1)增加jar包 2)在配置文件里增加aop的命名空间(namespace),完整命名空间例如以下: <?xml version="1.0" encoding="GB18030"? > <beans xmlns=" http://www.springframework.org/schema/beans " xmlns:xsi=" http://www.w3.org/2001

【DEBUG】Error starting ApplicationContext. To display the conditions report re-run your application w

我是研究僧i 提交于 2020-03-09 17:22:26
BUG INFO 本项目源自《尚硅谷SpringBoot核心技术篇 —— springboot-data-jdbc-demo》 根据application.yml自动加载配置department.sql和employee.sql时的报错信息 Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled. 2020-03-09 11:30:11.671 ERROR 30260 --- [ main] o.s.b.d.LoggingFailureAnalysisReporter : *************************** APPLICATION FAILED TO START *************************** Description: Binding to target [Bindable@3adbe50f type = java.util.List<java.lang.String>, value = 'provided', annotations = array<Annotation>[[empty]]] failed: Property: spring.datasource

IDEA中使用maven整合mybatis与spring

微笑、不失礼 提交于 2020-03-09 16:39:05
整合思路 需要spring通过方式管理SqlSessionFactory. spring和mybatis整合生成代理对象,使用SqlSessionFactory创建SqlSession.(Sping和mybati整合自动完成). 持久层的mapper都需要有spring进行管理. 整合环境 创建一个新的java工程. mybatis的jar包,spring的jar包 spring和mybatis的整合包 参考: SSM的maven工程的创建 代码操作 一、创建配置文件:applicationContext.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" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation=

Dubbo 入门-细说分布式与集群

徘徊边缘 提交于 2020-03-09 08:25:46
摘自: https://www.cnblogs.com/yangyuanhu/p/12439106.html Dubbo是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。 2 | 0 什么是RPC RPC全称(Remote Procedure Call)远程过程调用 过程指的是某个代码片段的执行,远程调用则意味着我们可以在其他进程,甚至其他机器上去调用这段代码,当然也能获取到其执行后的返回值,按照这个定义,我们请求某个http地址得到相应数据其实也算一次RPC,但是这样的方式太过麻烦,(数据要先打包成http请求格式,在调用相关的请求库,拿到的结果也是文本格式的需要在进行转换),执行效率,和开发效率相比RPC则低一些; 我们需要一种更简单的方式来完成分布式开发中的RPC环节,这也是Dubbo的核心所在,有多简单呢? 调用远程服务器上的某个服务时就像是调用本地的某个方法一样简单,就像下面这样 2 | 1 为什么需要rpc RPC是用来实现分布式构架的基石,分布式构架将同一个系统中的不同模块拆分到不同的子系统中,而子系统又分布在不同的服务器上,这时就需要RPC在来完成子系统之间的相互访问; 可以这么说分布式少不了RPC,RPC也要在分布式系统中才能发挥其核心价值; 2 | 2 rpc的实现原理

Dubbo学习笔记-RPC扩展和本地Mock

馋奶兔 提交于 2020-03-09 05:48:31
1.Dubbo介绍 Dubbo,一个是一款高性能Java RPC框架.私以为有 中文官方文档 ,就不再重复介绍了 2.RPC扩展-本地存根stub RPC扩展功能:提前效验参数,缓存调用结果,日志记录等等,可以使用AOP织入这些扩展功能,但Dubbo提供了更灵活简单的实现-本地存根stub。 3.本地Mock-本地伪装mock RPC在服务异常时,请求返回mock的(假)数据,而不是简单的抛出异常,达到服务降级和本地mock的效果.只有在服务抛出异常时才会调用。 4.调用流程 服务消费者发起调用 如果服务消费者端存在本地存根 Stub 的话,会先执行本地存根 本地存根 Stub 持有远程服务的 Proxy 对象,Stub 在执行的时候,会先执行自己的逻辑 (before),然后通过 Proxy 发起远程调用,最后在返回过程之前也会执行自己的逻辑 (after-returning) 如果远程服务的 Proxy 对象在执行过程中抛出了 exception,会执行服务消费端的本地伪装 Mock 的逻辑 (after-throwing),返回容错数据,从而达到服务降级的目的 5.本地存根实例 定义一个demo接口 public interface DemoService { String sayHello(String name); } 根据约定大于配置原则,实现一个demo的stub实例

Spring:Spring-AOP简介

寵の児 提交于 2020-03-09 02:16:25
什么是SpringAOP? 将一些相关的编程方法,独立提取出来,独立实现,然后动态地将代码切入到类的指定方法、指定位置上的编程方式就是AOP( 面向切面编程 )。 讲解一下AOP中的相关概念 Aspect(切面): Aspect 声明类似于 Java 中的类声明,在 Aspect 中会包含着一些 Pointcut 以及相应的 Advice。 Joint point(连接点): 表示在程序中明确定义的点,典型的包括方法调用,对类成员的访问以及异常处理程序块的执行等等,它自身还可以嵌套其它 joint point。 Pointcut(切点): 表示一组 joint point,这些 joint point 或是通过逻辑关系组合起来,或是通过通配、正则表达式等方式集中起来,它定义了相应的 Advice 将要发生的地方。 Advice(增强): Advice 定义了在 Pointcut 里面定义的程序点具体要做的操作,它通过 before、after 和 around 来区别是在每个 joint point 之前、之后还是代替执行的代码。 Target(目标对象): 织入 Advice 的目标对象.。 Weaving(织入): 将 Aspect 和其他对象连接起来, 并创建 Adviced object 的过程 实例: 接口: package com.java.test6; /** *

SpringMVC的注解开发入门

巧了我就是萌 提交于 2020-03-08 16:22:04
1.Spring MVC框架简介 支持REST风格的URL 添加更多注解,可完全注解驱动 引入HTTP输入输出转换器(HttpMessageConverter) 和数据转换、格式化、验证框架无缝集成 对静态资源处理提供特殊支持 更加灵活的控制器方法签名,可完全独立于Servlet API 2.Spring MVC框架结构,执行流程 3.如何在应用中使用Spring-MVC? 在应用中添加Spring框架支持; 在web.xml中配置Spring-MVC的请求转发器(前端控制器) 编写Spring-MVC的配置文件 将任意JavaBean通过注解配置成Controller(控制器)并注解其中的方法 完成 4.今天我们先来了解一下我们注解开发的小例子(简单登录) 一:转发(forward) 源码介绍: 1.lib包(jar包)和 web.xml文件的配置 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi