当前位置: 首页 > news >正文

中心网站建设方法房地产新闻最新消息

中心网站建设方法,房地产新闻最新消息,校园网上零售网站建设方案,大亚湾住建局网站 建设工程规划01:Spring – AOP简介 02:Spring – 基于XML的AOP开发 03:Spring – 基于注解的AOP开发 文章目录1. 快速入门2. 注解配置AOP详解2.1 注解通知的类型2.2 切点表达式的抽取3. 小结1. 快速入门 只要明白了基于XML的AOP开发,那么基于…

01:Spring – AOP简介
02:Spring – 基于XML的AOP开发
03:Spring – 基于注解的AOP开发

文章目录

  • 1. 快速入门
  • 2. 注解配置AOP详解
    • 2.1 注解通知的类型
    • 2.2 切点表达式的抽取
  • 3. 小结


1. 快速入门

只要明白了基于XML的AOP开发,那么基于注解就很简单。

开发步骤:

在这里插入图片描述

准备工作:导入相关依赖

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><parent><artifactId>spring_study</artifactId><groupId>com.tian</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>spring_aop</artifactId><dependencies><!--        Spring依赖--><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.0.5.RELEASE</version></dependency><!--        aop织入依赖--><dependency><groupId>org.aspectj</groupId><artifactId>aspectjweaver</artifactId><version>1.8.4</version></dependency><!--        spring-test依赖--><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>5.0.5.RELEASE</version></dependency><!--        junit单元测试--><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.13.2</version></dependency></dependencies><properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target></properties>
</project>

示例代码:

在这里插入图片描述

TargetInterface.java

package com.tian.anno;public interface TargetInterface {public void save();
}

Target.java

package com.tian.anno;import org.springframework.stereotype.Component;@Component("target")
public class Target implements TargetInterface {public void save() {System.out.println("save running.....");}
}

MyAspect.java

package com.tian.anno;import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.*;
import org.springframework.stereotype.Component;@Component("myAspect")
@Aspect //标注当前MyAspect是一个切面类
public class MyAspect {//配置前置通知 @Before("execution(* com.tian.anno.*.*(..))")public void before() {System.out.println("前置增强..........");}@After("execution(* com.tian.anno.*.*(..))")public void afterReturning() {System.out.println("后置增强..........");}//Proceeding JoinPoint:  切点
//    @Around("execution(* com.tian.anno.*.*(..))")@Around("pointcut()")public Object around(ProceedingJoinPoint pjp) throws Throwable {System.out.println("环绕前增强....");Object proceed = pjp.proceed();//切点方法System.out.println("环绕后增强....");return proceed;}@AfterThrowing("MyAspect.pointcut()")public void afterThrowing() {System.out.println("异常抛出增强..........");}@After("MyAspect.pointcut()")public void after() {System.out.println("最终增强..........");}//定义切点表达式@Pointcut("execution(* com.tian.anno.*.*(..))")public void pointcut() {}
}

配置文件:

在这里插入图片描述
applicationContext.xml

配置组件扫描和aop自动代理即可

<?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:context="http://www.springframework.org/schema/context"xmlns:aop="http://www.springframework.org/schema/aop"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd"><!--组件扫描--><context:component-scan base-package="com.tian.anno"/><!--aop自动代理--><aop:aspectj-autoproxy/>
</beans>

测试代码:

AnnoTest.java

package test;import com.tian.anno.TargetInterface;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:applicationContext.xml")
public class AnnoTest {@Autowiredprivate TargetInterface target;@Testpublic void test1() {target.save();}
}

运行结果:

在这里插入图片描述


2. 注解配置AOP详解


2.1 注解通知的类型

在这里插入图片描述


2.2 切点表达式的抽取

同xml配置 aop一样,我们可以将切点表达式抽取。抽取方式是在切面内定义方法,在该方法上使用@Pointcut注解定义切点表达式,然后在在增强注解中进行引用。具体如下:
在这里插入图片描述


3. 小结

在这里插入图片描述



http://www.wooajung.com/news/35250.html

相关文章:

  • 武汉企业网站推广报价手机网站制作软件
  • 做五金外贸哪个网站比较好代做百度收录排名
  • 上海网站建设公司网站建设无锡百度正规推广
  • 深圳做网站好的公司百度客服怎么联系
  • 成都房价谷歌优化是什么意思
  • 网站里的注册怎么做杭州关键词自动排名
  • 新建网站百度搜不到媒体资源
  • 2023年全国疫情最新消息刷移动关键词优化
  • 个人网站做贷款广告网页seo优化
  • 建筑公司企业如何成功提升网页优化排名
  • 门户网站开发案例上海seo优化公司
  • 不提供花架子网站 我国内最新新闻消息今天的
  • 网站续费协议常州网站推广排名
  • mac163网站建设seo公司优化
  • asp.net网站开发工程师(c长沙网站制作主要公司
  • 维护网址免费seo推广软件
  • 个人网站需要买服务器吗市场调研公司
  • 国外的包装设计网站杭州网络
  • 太原网站建设外包校园推广方案
  • 池州网站建设费用站长工具外链查询
  • 医疗器械网站备案前置审批事例seo 网站优化推广排名教程
  • 做网站的功能是什么营销策划方案模板
  • 网站怎样在360做优化百度推广登录页面
  • 制作一个网站需要什么互联网品牌营销公司
  • 商城型网站建设多少钱百度推广有用吗
  • 做公司网站的价格百度一下你就知道移动首页
  • 网站建设主题有哪些注意事项简易的旅游网页制作
  • 同一服务器做两个顶级域名网站网站推广排名服务
  • 东营网站建设app开发关键词优化推广排名多少钱
  • 慈溪网站建设哪家好深圳竞价托管公司