需求背景最近的一个项目,在项目基本完工的阶段,客户提出要将所有业务操作的日志记录到数据库中,并且要提取一些业务的关键信息(比如交易单号)体现在日志中。为了保证工期,在查阅了资料以后,决定用AOP+自定义注解的方式来完成这个需求。准备工作自定义注解需要依赖的jar包有 aspectjrt-XXX.jar ,aspectjweaver-XXX.jar,XXX代表版本号。自定义注解在项目下单独建立了一个
转载 2024-04-22 19:32:45
64阅读
第一步定义两个注解:SystemControllerLog.javapackage com.annotation; import java.lang.annotation.*; /** *自定义注解 拦截Controller */ @Target({ElementType.PARAMETER, ElementType.METHOD}
自定义 aop AspectJ 应该算的上是 Java 生态系统中最完整的 AOP 框架了。 Spring AOP 和 AspectJ AOP 有什么区别? Spring AOP 属于运行时增强,而 AspectJ 是编译时增强。 Spring AOP 基于代理(Proxying),而 AspectJ 基于字节码操作(Bytecode Manipulation)。 Spring AOP 已经集
原创 2023-04-11 23:22:09
441阅读
一、自定义注解一、自定义注解的配置如果是用的配置文件需要在配置文件中添加配置:<aop:aspectj-autoproxy/>如果是使用类进行初始化加载需要在类的上面添加注解@EnableAspectJAutoProxy二、自定义注解的约束<dependency> <groupId>org.springframework</groupId>
转载 2020-01-17 14:03:00
206阅读
2评论
本文抛砖引玉,并没有详细的介绍更全面的内容,通过一个例子让初次使用的人能够快速入门,简单的介绍一下。第
转载 2023-07-04 14:01:33
72阅读
1.自定义的DispatcherServlet,就是SpringMvc运行加载类/*** * 手写SpringMvc框架<br> * 思路:<br> * 1.手动创建一个DispatcherServlet 拦截项目的所有请求 SpringMvc 基于servlet实现<br> * 2.extends HttpHttpServlet 重写init 方法&l
写在前面本文使用JAVA类库完成一个迷你版的springmvc框架,旨在深入理解springmvc的内部实现原理。目录结构自定义注解元注解:就是注解的注解@Retention@Retention(RetentionPolicy.SOURCE) //注解仅存在于源码中,在class字节码文件中不包含 @Retention(RetentionPolicy.CLASS) // 默认的保留策略
转载 2024-03-22 13:41:21
106阅读
前言前些天,在项目实践过程中出现了一个奇怪的状况,Spring Boot的参数绑定失效了。而起因只是因为同事把参数上的@RequestParam注解去掉了。我们都知道,如果参数名称和Controller的方法名相同时,根本不需要@RequestParam注解的,Spring Boot会自动帮我们完成参数的绑定。但为什么自动绑定机制失效了呢?本篇文章会为大家揭开谜底,在此过程中也会全面讲解如何在Sp
转载 2024-03-20 08:59:50
66阅读
环境MacBook Pro Java:1.8 gradle:5.5.1前言公司封装了一个@slf4j,用于日志打印; 最近研究了下这个注解,了解到了AST,抽象树这个概念; 明白了lombok这样的插件也是利用这个技术来实现的; 在研究过程中,被下面这个错卡了很久:错误: 程序包com.sun.source.tree不存在 import com.sun.source.tree.Tree; 特意记录
转载 2024-09-30 08:02:46
31阅读
https://www.cnblogs.com/yingsong/p/8508700.html 1. 自定义一个注解 @Documented //文档生成时,该注解将被包含在javadoc中,可去掉 @Target(ElementType.METHOD)//目标是方法 @Retention(Rete
转载 2020-01-15 07:14:00
100阅读
https://www.cnblogs.com/yingsong/p/8508700.html 1. 自定义一个注解 @Documented //文档生成时,该注解将被包含在javadoc中,可去掉 @Target(ElementType.METHOD)//目标是方法 @Retention(Rete
转载 2020-04-21 13:30:00
267阅读
2评论
注意:在SpringMVC配置文件中要能够扫描到视图所在的包(context:component-scan)。自定义视图要实现view接口或继承AbstractView抽象类,并加入到IOC容器中(注意:定义的视图类要声明注解@Component)package com.hello.view;import org.springframework.stereotype.Componen...
原创 2022-03-02 16:08:25
122阅读
注意:在SpringMVC配置文件中要能够扫描到视图所在的包(context:component-scan)。自定义视图要实现view接口或继承AbstractView抽象类,并加入到IOC容器中(注意:定义的视图类要声明注解@Component)package com.hello.view;import org.springframework.stereotype.Componen...
原创 2021-08-07 08:32:58
302阅读
springmvc学习笔记(10)-springmvc注解开发之商品修改功能标签: springmvc springmvc学习笔记10-springmvc注解开发之商品修改功能需求开发mapper开发service开发controllerRequestMappingcontroller方法的返回值 本文以商品修改为例,记录springmvc的注解开发,包括mapper,service,contro
ViewResolver作用:根据viewName找到view对象SpringMVC用于处理视图最重要的两个接口是ViewResolver和View。ViewResolver的主要作用是把一个逻辑上的视图名称解析为一个真正的视图,SpringMVC中用于把View对象呈现给客户端的是View对象本身,而ViewResolver只是把逻辑视图名称解析为对象的View对象。View接口的主要作用是用于
转载 2024-10-08 12:32:21
33阅读
最近线上接口受到白帽子攻击,由于后端接口没有严格地进行参数校验,从而导致了系统程序异常和线上脏数据的问题。为了项目中参数校验方式的统一,因此在项目中引入了spring-validation。本文主要介绍spring-validation在项目中最佳实践方案,希望能帮助大家很快很好的使用spring-validation。实体命名方式推荐在Spring项目组中,会存在有很多实体类,良好的命名方式能十
mini版自定义SpringMVC框架及实现自定义springmvc 框架的实现其实就是自定义DispatcherServle类 有以下几个步骤:1、加载配置文件 springmvc.properties2、扫描相关类 扫描注解3、初始化bean对象 实现ioc容器 基于注解4、实现依赖注入5、构造HandlerMapping 处理器映射器 将配置好的url和method建立映射关系6、配置web
转载 2024-06-28 10:23:34
32阅读
问题描述有时候我们在接口方法中配置了@Transactional的注解,但实际使用时却遇到@Transactional注解失效的问题,我们在这里选取一个比较隐秘的细节问题来剖析失效问题。问题原因分析注解@Transactional的底层实现是Spring AOP技术,而Spring AOP技术使用的是动态代理,这就意味着对于静态(static)方法和非public方法,注解@Transaction
转载 2024-01-02 12:33:06
39阅读
目录 迭代中遇到的问题处理aop 及spring aop原理介绍spring aop自动代理注解实例spring aop源码--ProxyFactory分析spring aop源码--JDK动态代理分析spring aop源码--cglib动态代理分析迭代中遇到的问题处理 问题:用自动代理注解配置拦截了PlanService类的方法testAopFace,方法testAopFa
转载 2024-02-17 22:03:38
34阅读
  • 1
  • 2
  • 3
  • 4
  • 5