自定義註解使用SPEL表示式記錄日誌

2022-09-10 16:24:22 字數 1160 閱讀 4251

spel(spring expression language)即spring表示式語言,它是一種類似jsp的el表示式,但是又比後者更強大的表示式語言。

例如,經常使用的@value註解,比如:

@value("$"

)private string baseurl;

其中引數可以為常量字串,如:@value("")

也可以為#{},在大括號類可以為bena的屬性、環境變數,

也可以為${},這時候在大括號類裡面的properties資源檔案的配置項,如:@value("$")

我們的目的是需要記錄操作的日誌,需要具體到某個業務,所以業務的id為動態變化的,如果在每個業務**裡面加入日誌會使得業務**變得更為複雜,所以我們需要自定義註解並且配合使用spel表示式

@target(elementtype.method)

@retention(retentionpolicy.runtime)

@documented

public @inte***ce irlog

public string getmodulename()

public string getmodulevalue()

}}

@aspect

@component

public

class

irlogaspect

string parsebusinessid = expression.getvalue(context, string.class

);//

logger.info("businessid: {}, modulevalue: {}, dbtime: {}", parsebusinessid, modulevalue, dbtime);

return

joinpoint.proceed();

}}

使用:/issueregulations")

@irlog(moduletype = irlog.moduletype.publish, businessid = "

#regulationsid")

public

void

issueregulations(string regulationsid)

SpEL表示式簡單使用

格式 在spring中有 和spel表示式相似,給乙個類中的double型別字段傳遞引數 public class bean1 public double getnum demo1.xml配置 測試類demo1 public class demo1 顯示結果 傳遞乙個map demo.xml配置 b...

12 4 1 自定義查詢表示式

12.4.1 自定義查詢表示式 原則上,我們可以使用查詢處理任何型別,只要它提供了繫結操作。這是函式式程式設計中這類函式的標準名稱,像上一節型別簽名所展示的。從技術角度來講,我們需要實現一些方法,在把查詢表示式轉換為標準的函式呼叫,由 c 編譯器所使用。我們將為 12.6 節中的 option的型別...

lamda表示式之自定義

package com.lyon.controller public class testlamda public static void main string args ilike like3 new like3 like3.lamda 5.匿名內部類,沒有類名稱,必須借助介面或者父類 ilik...