Skip to content
项目
群组
代码片段
帮助
正在加载...
登录
切换导航
B
byh-alarm-service
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
包
包
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
杨凯
byh-alarm-service
Commits
25c9de06
提交
25c9de06
authored
8月 09, 2023
作者:
杨凯
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat:新增告警接收接口
上级
2ae78223
显示空白字符变更
内嵌
并排
正在显示
5 个修改的文件
包含
141 行增加
和
24 行删除
+141
-24
pom.xml
alarm-server/pom.xml
+11
-0
LogAspect.java
...ain/java/com/ebaiyihui/alarm/server/aspect/LogAspect.java
+119
-0
AlarmServiceImpl.java
...ebaiyihui/alarm/server/service/Impl/AlarmServiceImpl.java
+2
-2
application.yml
alarm-server/src/main/resources/application.yml
+9
-3
bootstrap.yml
alarm-server/src/main/resources/bootstrap.yml
+0
-19
没有找到文件。
alarm-server/pom.xml
浏览文件 @
25c9de06
...
...
@@ -142,6 +142,17 @@
<version>
1.9.40
</version>
</dependency>
<dependency>
<groupId>
org.aspectj
</groupId>
<artifactId>
aspectjrt
</artifactId>
<version>
1.8.9
</version>
</dependency>
<dependency>
<groupId>
org.aspectj
</groupId>
<artifactId>
aspectjweaver
</artifactId>
<version>
1.8.9
</version>
</dependency>
<!-- <dependency>-->
<!-- <groupId>org.springframework.cloud</groupId>-->
<!-- <artifactId>spring-cloud-starter-config</artifactId>-->
...
...
alarm-server/src/main/java/com/ebaiyihui/alarm/server/aspect/LogAspect.java
0 → 100644
浏览文件 @
25c9de06
package
com
.
ebaiyihui
.
alarm
.
server
.
aspect
;
import
com.alibaba.fastjson.JSON
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.extern.slf4j.Slf4j
;
import
org.aspectj.lang.ProceedingJoinPoint
;
import
org.aspectj.lang.Signature
;
import
org.aspectj.lang.annotation.Around
;
import
org.aspectj.lang.annotation.Aspect
;
import
org.aspectj.lang.annotation.Pointcut
;
import
org.aspectj.lang.reflect.MethodSignature
;
import
org.springframework.stereotype.Component
;
import
org.springframework.web.context.request.RequestAttributes
;
import
org.springframework.web.context.request.RequestContextHolder
;
import
org.springframework.web.context.request.ServletRequestAttributes
;
import
javax.servlet.http.HttpServletRequest
;
import
java.lang.reflect.Field
;
import
java.lang.reflect.Method
;
import
java.util.HashMap
;
import
java.util.Map
;
/**
* @program chenmt-rides
* @description:
* @author: chenmet
* @create: 2019/08/09 10:58
*/
@Slf4j
@Aspect
//表明是一个切面类
@Component
//将当前类注入到Spring容器内
public
class
LogAspect
{
//xyz.chenmt.www.chenmtrides.controller包下的所有类中的所有方法,".."表示所有方法中的参数不限个数;
//切入点,其中execution用于使用切面的连接点。使用方法:execution(方法修饰符(可选)
// 返回类型 方法名 参数 异常模式(可选)) ,可以使用通配符匹配字符,*可以匹配任意字符。
@Pointcut
(
"execution(public * com.ebaiyihui.alarm.server.controller.*.*(..))"
)
public
void
LogAspect
(){}
//环绕通知,就是可以在执行前后都使用,这个方法参数必须为ProceedingJoinPoint,proceed()方法就是被切面的方法,
// 上面四个方法可以使用JoinPoint,JoinPoint包含了类名,被切面的方法名,参数等信息。
@Around
(
"LogAspect()"
)
public
Object
deAround
(
ProceedingJoinPoint
pjp
)
throws
Throwable
{
RequestAttributes
ra
=
RequestContextHolder
.
getRequestAttributes
();
ServletRequestAttributes
sra
=
(
ServletRequestAttributes
)
ra
;
HttpServletRequest
request
=
sra
.
getRequest
();
//ip地址
String
ipaddress
;
if
(
request
.
getHeader
(
"x-forwarded-for"
)
==
null
)
{
ipaddress
=
request
.
getRemoteAddr
();
}
else
{
ipaddress
=
request
.
getHeader
(
"x-forwarded-for"
);
}
String
url
=
request
.
getRequestURL
().
toString
();
String
method
=
request
.
getMethod
();
String
queryString
=
request
.
getQueryString
();
Object
[]
args
=
pjp
.
getArgs
();
String
params
=
""
;
//获取请求参数集合并进行遍历拼接
if
(
args
.
length
>
0
){
if
(
"POST"
.
equals
(
method
)){
Object
object
=
args
[
0
];
Map
map
=
getKeyAndValue
(
object
);
params
=
JSON
.
toJSONString
(
map
);
;
}
else
if
(
"GET"
.
equals
(
method
)){
params
=
queryString
;
}
}
Signature
signature
=
pjp
.
getSignature
();
MethodSignature
methodSignature
=
(
MethodSignature
)
signature
;
Method
targetMethod
=
methodSignature
.
getMethod
();
Method
realMethod
=
pjp
.
getTarget
().
getClass
().
getDeclaredMethod
(
signature
.
getName
(),
targetMethod
.
getParameterTypes
());
ApiOperation
operation
=
realMethod
.
getAnnotation
(
ApiOperation
.
class
);
if
(
null
!=
operation
){
log
.
info
(
"请求开始===方法描述:{},请求方法:{},请求地址:{},请求ip:{},请求类型:{},请求参数:{}"
,
operation
.
value
(),
realMethod
.
getName
(),
url
,
ipaddress
,
method
,
params
);
}
else
{
log
.
info
(
"请求开始===请求方法:{},请求地址:{},请求ip:{},请求类型:{},请求参数:{}"
,
realMethod
.
getName
(),
url
,
ipaddress
,
method
,
params
);
}
// result的值就是被拦截方法的返回值
// Object result = pjp.proceed();
// log.info("请求结束===返回值{}",JSONObject.toJSON(result));
return
pjp
.
proceed
();
}
public
static
Map
<
String
,
Object
>
getKeyAndValue
(
Object
obj
)
{
Map
<
String
,
Object
>
map
=
new
HashMap
<
String
,
Object
>();
// 得到类对象
Class
userCla
=
(
Class
)
obj
.
getClass
();
/* 得到类中的所有属性集合 */
Field
[]
fs
=
userCla
.
getDeclaredFields
();
for
(
int
i
=
0
;
i
<
fs
.
length
;
i
++)
{
Field
f
=
fs
[
i
];
f
.
setAccessible
(
true
);
// 设置些属性是可以访问的
Object
val
;
try
{
val
=
f
.
get
(
obj
);
// 得到此属性的值
map
.
put
(
f
.
getName
(),
val
);
// 设置键值
}
catch
(
IllegalArgumentException
e
)
{
e
.
printStackTrace
();
}
catch
(
IllegalAccessException
e
)
{
e
.
printStackTrace
();
}
}
return
map
;
}
}
alarm-server/src/main/java/com/ebaiyihui/alarm/server/service/Impl/AlarmServiceImpl.java
浏览文件 @
25c9de06
...
...
@@ -24,10 +24,10 @@ import java.util.stream.Collectors;
@Service
public
class
AlarmServiceImpl
implements
AlarmService
{
@Value
(
"${webHookUrl
:https://open.feishu.cn/open-apis/bot/v2/hook/23a4631d-393e-46e8-9235-f321323b37d0
}"
)
@Value
(
"${webHookUrl}"
)
private
String
webHookUrl
;
@Value
(
"${secret
:OV5mmyDxX5Nx0caMYQp3Kg
}"
)
@Value
(
"${secret}"
)
private
String
secret
;
@Override
...
...
alarm-server/src/main/resources/application
-pro
.yml
→
alarm-server/src/main/resources/application.yml
浏览文件 @
25c9de06
...
...
@@ -55,9 +55,15 @@
# log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
# map-underscore-to-camel-case: true
logging
:
config
:
classpath:logback-spring.xml
path
:
data/log
server
:
port
:
9010
spring
:
application
:
name
:
byh-alarm-service
#logging:
# config: classpath:logback-spring.xml
# path: data/log
#swagger:
# enabled: true
...
...
alarm-server/src/main/resources/bootstrap.yml
deleted
100644 → 0
浏览文件 @
2ae78223
server
:
port
:
9010
spring
:
application
:
name
:
byh-alarm-service
profiles
:
active
:
pro
# cloud:
# config:
# name: byh-charitable-assistance
# profile: pro # 配置文件版本
# label: zryh # 配置文件分支
# discovery:
# enabled: true #是从配置中心读取文件
# service-id: byh-service-config
eureka
:
client
:
serviceUrl
:
defaultZone
:
http://discover:1111/eureka/
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论