Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
S
springboot-study
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
周田
springboot-study
Commits
5eb7b9a3
Commit
5eb7b9a3
authored
May 15, 2024
by
周田
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat(core): 拦截器
parent
a4477650
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
156 additions
and
0 deletions
+156
-0
SpringMVCConfiguration.java
.../org/linker/springboot/config/SpringMVCConfiguration.java
+42
-0
UserController.java
...java/org/linker/springboot/controller/UserController.java
+20
-0
FirstInterceptor.java
.../linker/springboot/core/interceptor/FirstInterceptor.java
+31
-0
SecondInterceptor.java
...linker/springboot/core/interceptor/SecondInterceptor.java
+31
-0
ThirdInterceptor.java
.../linker/springboot/core/interceptor/ThirdInterceptor.java
+32
-0
No files found.
src/main/java/org/linker/springboot/config/SpringMVCConfiguration.java
0 → 100644
View file @
5eb7b9a3
package
org
.
linker
.
springboot
.
config
;
import
org.linker.springboot.core.interceptor.FirstInterceptor
;
import
org.linker.springboot.core.interceptor.SecondInterceptor
;
import
org.linker.springboot.core.interceptor.ThirdInterceptor
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.web.servlet.config.annotation.InterceptorRegistry
;
import
org.springframework.web.servlet.config.annotation.WebMvcConfigurer
;
@Configuration
public
class
SpringMVCConfiguration
implements
WebMvcConfigurer
{
private
Logger
logger
=
LoggerFactory
.
getLogger
(
getClass
());
@Bean
public
FirstInterceptor
firstInterceptor
()
{
return
new
FirstInterceptor
();
}
@Bean
public
SecondInterceptor
secondInterceptor
()
{
return
new
SecondInterceptor
();
}
@Bean
public
ThirdInterceptor
thirdInterceptor
()
{
return
new
ThirdInterceptor
();
}
@Override
public
void
addInterceptors
(
InterceptorRegistry
registry
)
{
// 拦截器一
registry
.
addInterceptor
(
this
.
firstInterceptor
()).
addPathPatterns
(
"/**"
);
// 拦截器二
registry
.
addInterceptor
(
this
.
secondInterceptor
()).
addPathPatterns
(
"/users/current_user"
);
// 拦截器三
registry
.
addInterceptor
(
this
.
thirdInterceptor
()).
addPathPatterns
(
"/**"
);
}
}
src/main/java/org/linker/springboot/controller/UserController.java
View file @
5eb7b9a3
...
...
@@ -7,6 +7,8 @@ import org.linker.springboot.dto.UserAddDTO;
import
org.linker.springboot.dto.UserUpdateDTO
;
import
org.linker.springboot.service.UserService
;
import
org.linker.springboot.vo.UserVO
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
...
...
@@ -24,6 +26,8 @@ public class UserController {
@Autowired
private
UserService
userService
;
private
Logger
logger
=
LoggerFactory
.
getLogger
(
getClass
());
/**
* 查询用户列表
*
...
...
@@ -140,4 +144,20 @@ public class UserController {
throw
new
ServiceException
(
ServiceExceptionEnum
.
USER_NOT_FOUND
);
}
@GetMapping
(
"/do_something"
)
public
void
doSomething
()
{
logger
.
info
(
"[doSomething]"
);
}
@GetMapping
(
"/current_user"
)
public
UserVO
currentUser
()
{
logger
.
info
(
"[currentUser]"
);
return
new
UserVO
().
setId
(
10
).
setUsername
(
UUID
.
randomUUID
().
toString
());
}
@GetMapping
(
"/exception-03"
)
public
void
exception03
()
{
logger
.
info
(
"[exception03]"
);
throw
new
ServiceException
(
ServiceExceptionEnum
.
USER_NOT_FOUND
);
}
}
src/main/java/org/linker/springboot/core/interceptor/FirstInterceptor.java
0 → 100644
View file @
5eb7b9a3
package
org
.
linker
.
springboot
.
core
.
interceptor
;
import
jakarta.servlet.http.HttpServletRequest
;
import
jakarta.servlet.http.HttpServletResponse
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.web.servlet.HandlerInterceptor
;
import
org.springframework.web.servlet.ModelAndView
;
public
class
FirstInterceptor
implements
HandlerInterceptor
{
private
Logger
logger
=
LoggerFactory
.
getLogger
(
getClass
());
@Override
public
boolean
preHandle
(
HttpServletRequest
request
,
HttpServletResponse
response
,
Object
handler
)
{
logger
.
info
(
"[preHandle][handler({})]"
,
handler
);
return
true
;
}
@Override
public
void
postHandle
(
HttpServletRequest
request
,
HttpServletResponse
response
,
Object
handler
,
ModelAndView
modelAndView
)
throws
Exception
{
logger
.
info
(
"[postHandle][handler({})]"
,
handler
);
}
@Override
public
void
afterCompletion
(
HttpServletRequest
request
,
HttpServletResponse
response
,
Object
handler
,
Exception
ex
)
throws
Exception
{
logger
.
info
(
"[afterCompletion][handler({})]"
,
handler
,
ex
);
}
}
\ No newline at end of file
src/main/java/org/linker/springboot/core/interceptor/SecondInterceptor.java
0 → 100644
View file @
5eb7b9a3
package
org
.
linker
.
springboot
.
core
.
interceptor
;
import
jakarta.servlet.http.HttpServletRequest
;
import
jakarta.servlet.http.HttpServletResponse
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.web.servlet.HandlerInterceptor
;
import
org.springframework.web.servlet.ModelAndView
;
public
class
SecondInterceptor
implements
HandlerInterceptor
{
private
Logger
logger
=
LoggerFactory
.
getLogger
(
getClass
());
@Override
public
boolean
preHandle
(
HttpServletRequest
request
,
HttpServletResponse
response
,
Object
handler
)
{
logger
.
info
(
"[preHandle][handler({})]"
,
handler
);
return
false
;
// 故意返回 false
}
@Override
public
void
postHandle
(
HttpServletRequest
request
,
HttpServletResponse
response
,
Object
handler
,
ModelAndView
modelAndView
)
throws
Exception
{
logger
.
info
(
"[postHandle][handler({})]"
,
handler
);
}
@Override
public
void
afterCompletion
(
HttpServletRequest
request
,
HttpServletResponse
response
,
Object
handler
,
Exception
ex
)
throws
Exception
{
logger
.
info
(
"[afterCompletion][handler({})]"
,
handler
,
ex
);
}
}
\ No newline at end of file
src/main/java/org/linker/springboot/core/interceptor/ThirdInterceptor.java
0 → 100644
View file @
5eb7b9a3
package
org
.
linker
.
springboot
.
core
.
interceptor
;
import
jakarta.servlet.http.HttpServletRequest
;
import
jakarta.servlet.http.HttpServletResponse
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.web.servlet.HandlerInterceptor
;
import
org.springframework.web.servlet.ModelAndView
;
public
class
ThirdInterceptor
implements
HandlerInterceptor
{
private
Logger
logger
=
LoggerFactory
.
getLogger
(
getClass
());
@Override
public
boolean
preHandle
(
HttpServletRequest
request
,
HttpServletResponse
response
,
Object
handler
)
{
logger
.
info
(
"[preHandle][handler({})]"
,
handler
);
return
true
;
}
@Override
public
void
postHandle
(
HttpServletRequest
request
,
HttpServletResponse
response
,
Object
handler
,
ModelAndView
modelAndView
)
throws
Exception
{
logger
.
info
(
"[postHandle][handler({})]"
,
handler
);
}
@Override
public
void
afterCompletion
(
HttpServletRequest
request
,
HttpServletResponse
response
,
Object
handler
,
Exception
ex
)
throws
Exception
{
logger
.
info
(
"[afterCompletion][handler({})]"
,
handler
,
ex
);
throw
new
RuntimeException
(
"故意抛出一个错误"
);
}
}
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment