Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
冰 河
spring-annotation-book
提交
fcd594d9
S
spring-annotation-book
项目概览
冰 河
/
spring-annotation-book
通知
19
Star
16
Fork
2
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
spring-annotation-book
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
fcd594d9
编写于
3月 20, 2023
作者:
冰 河
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
提交《Spring核心技术》第22章代码
上级
84d8cfb8
变更
8
隐藏空白更改
内联
并排
Showing
8 changed file
with
258 addition
and
0 deletion
+258
-0
pom.xml
pom.xml
+1
-0
spring-annotation-chapter-22/pom.xml
spring-annotation-chapter-22/pom.xml
+20
-0
spring-annotation-chapter-22/src/main/java/io/binghe/spring/annotation/chapter22/AspectTest.java
...ava/io/binghe/spring/annotation/chapter22/AspectTest.java
+37
-0
spring-annotation-chapter-22/src/main/java/io/binghe/spring/annotation/chapter22/aspect/AspectLog.java
.../binghe/spring/annotation/chapter22/aspect/AspectLog.java
+74
-0
spring-annotation-chapter-22/src/main/java/io/binghe/spring/annotation/chapter22/bean/AspectBean.java
...o/binghe/spring/annotation/chapter22/bean/AspectBean.java
+27
-0
spring-annotation-chapter-22/src/main/java/io/binghe/spring/annotation/chapter22/config/AspectConfig.java
...nghe/spring/annotation/chapter22/config/AspectConfig.java
+33
-0
spring-annotation-chapter-22/src/main/java/io/binghe/spring/annotation/chapter22/service/AspectService.java
...he/spring/annotation/chapter22/service/AspectService.java
+30
-0
spring-annotation-chapter-22/src/main/java/io/binghe/spring/annotation/chapter22/service/impl/AspectServiceImpl.java
.../annotation/chapter22/service/impl/AspectServiceImpl.java
+36
-0
未找到文件。
pom.xml
浏览文件 @
fcd594d9
...
...
@@ -30,6 +30,7 @@
<module>
spring-annotation-chapter-19
</module>
<module>
spring-annotation-chapter-20
</module>
<module>
spring-annotation-chapter-21
</module>
<module>
spring-annotation-chapter-22
</module>
</modules>
<properties>
...
...
spring-annotation-chapter-22/pom.xml
0 → 100644
浏览文件 @
fcd594d9
<?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"
>
<modelVersion>
4.0.0
</modelVersion>
<parent>
<groupId>
io.binghe.spring
</groupId>
<artifactId>
spring-annotation-book
</artifactId>
<version>
1.0.0-SNAPSHOT
</version>
</parent>
<artifactId>
spring-annotation-chapter-22
</artifactId>
<properties>
<maven.compiler.source>
17
</maven.compiler.source>
<maven.compiler.target>
17
</maven.compiler.target>
<project.build.sourceEncoding>
UTF-8
</project.build.sourceEncoding>
</properties>
</project>
\ No newline at end of file
spring-annotation-chapter-22/src/main/java/io/binghe/spring/annotation/chapter22/AspectTest.java
0 → 100644
浏览文件 @
fcd594d9
/**
* Copyright 2022-9999 the original author or authors.
* <p>
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* <p>
* http://www.apache.org/licenses/LICENSE-2.0
* <p>
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
io.binghe.spring.annotation.chapter22
;
import
io.binghe.spring.annotation.chapter22.bean.AspectBean
;
import
io.binghe.spring.annotation.chapter22.config.AspectConfig
;
import
io.binghe.spring.annotation.chapter22.service.AspectService
;
import
org.springframework.context.annotation.AnnotationConfigApplicationContext
;
/**
* @author binghe(微信 : hacker_binghe)
* @version 1.0.0
* @description 切面型注解测试类
* @github https://github.com/binghe001
* @copyright 公众号: 冰河技术
*/
public
class
AspectTest
{
public
static
void
main
(
String
[]
args
)
{
AnnotationConfigApplicationContext
context
=
new
AnnotationConfigApplicationContext
(
AspectConfig
.
class
);
AspectService
aspectService
=
context
.
getBean
(
AspectService
.
class
);
aspectService
.
saveOrUpdateAspectBean
(
new
AspectBean
());
}
}
spring-annotation-chapter-22/src/main/java/io/binghe/spring/annotation/chapter22/aspect/AspectLog.java
0 → 100644
浏览文件 @
fcd594d9
/**
* Copyright 2022-9999 the original author or authors.
* <p>
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* <p>
* http://www.apache.org/licenses/LICENSE-2.0
* <p>
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
io.binghe.spring.annotation.chapter22.aspect
;
import
org.aspectj.lang.ProceedingJoinPoint
;
import
org.aspectj.lang.annotation.*
;
import
org.springframework.stereotype.Component
;
/**
* @author binghe(微信 : hacker_binghe)
* @version 1.0.0
* @description 切面型注解Log切面类
* @github https://github.com/binghe001
* @copyright 公众号: 冰河技术
*/
@Component
@Aspect
public
class
AspectLog
{
@Pointcut
(
"execution(* io.binghe.spring.annotation.chapter22.service.impl.*.*(..))"
)
private
void
pointCut
(){}
@Before
(
"pointCut()"
)
public
void
beforeLog
(){
System
.
out
.
println
(
"@Before注解在执行切入点方法之前记录日志..."
);
}
@After
(
"pointCut()"
)
public
void
afterLog
(){
System
.
out
.
println
(
"@After注解无论切入点方法是否抛出异常都会记录日志..."
);
}
@AfterReturning
(
"pointCut()"
)
public
void
afterReturningLog
(){
System
.
out
.
println
(
"@AfterReturning注解在切入点方法正常执行后记录日志..."
);
}
@AfterThrowing
(
"pointCut()"
)
public
void
afterThrowingLog
(){
System
.
out
.
println
(
"@AfterThrowing注解在切入点方法抛出异常后记录日志..."
);
}
@Around
(
"pointCut()"
)
public
Object
arountLog
(
ProceedingJoinPoint
pjp
){
//返回的结果数据
Object
resultValue
=
null
;
try
{
System
.
out
.
println
(
"在执行切入点方法之前记录日志..."
);
//获取执行方法的参数
Object
[]
args
=
pjp
.
getArgs
();
//指定切入点的方法
resultValue
=
pjp
.
proceed
(
args
);
System
.
out
.
println
(
"在切入点方法正常执行后记录日志..."
);
}
catch
(
Throwable
t
){
System
.
out
.
println
(
"在切入点方法抛出异常后记录日志..."
);
}
finally
{
System
.
out
.
println
(
"无论切入点方法是否抛出异常都会记录日志..."
);
}
return
resultValue
;
}
}
spring-annotation-chapter-22/src/main/java/io/binghe/spring/annotation/chapter22/bean/AspectBean.java
0 → 100644
浏览文件 @
fcd594d9
/**
* Copyright 2022-9999 the original author or authors.
* <p>
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* <p>
* http://www.apache.org/licenses/LICENSE-2.0
* <p>
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
io.binghe.spring.annotation.chapter22.bean
;
/**
* @author binghe(微信 : hacker_binghe)
* @version 1.0.0
* @description 切面型注解的实体类
* @github https://github.com/binghe001
* @copyright 公众号: 冰河技术
*/
public
class
AspectBean
{
}
spring-annotation-chapter-22/src/main/java/io/binghe/spring/annotation/chapter22/config/AspectConfig.java
0 → 100644
浏览文件 @
fcd594d9
/**
* Copyright 2022-9999 the original author or authors.
* <p>
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* <p>
* http://www.apache.org/licenses/LICENSE-2.0
* <p>
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
io.binghe.spring.annotation.chapter22.config
;
import
org.springframework.context.annotation.ComponentScan
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.context.annotation.EnableAspectJAutoProxy
;
/**
* @author binghe(微信 : hacker_binghe)
* @version 1.0.0
* @description 切面型注解案例配置类
* @github https://github.com/binghe001
* @copyright 公众号: 冰河技术
*/
@Configuration
@EnableAspectJAutoProxy
@ComponentScan
(
value
=
{
"io.binghe.spring.annotation.chapter22"
})
public
class
AspectConfig
{
}
spring-annotation-chapter-22/src/main/java/io/binghe/spring/annotation/chapter22/service/AspectService.java
0 → 100644
浏览文件 @
fcd594d9
/**
* Copyright 2022-9999 the original author or authors.
* <p>
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* <p>
* http://www.apache.org/licenses/LICENSE-2.0
* <p>
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
io.binghe.spring.annotation.chapter22.service
;
import
io.binghe.spring.annotation.chapter22.bean.AspectBean
;
/**
* @author binghe(微信 : hacker_binghe)
* @version 1.0.0
* @description 切面型注解Service接口
* @github https://github.com/binghe001
* @copyright 公众号: 冰河技术
*/
public
interface
AspectService
{
void
saveOrUpdateAspectBean
(
AspectBean
aspectBean
);
}
spring-annotation-chapter-22/src/main/java/io/binghe/spring/annotation/chapter22/service/impl/AspectServiceImpl.java
0 → 100644
浏览文件 @
fcd594d9
/**
* Copyright 2022-9999 the original author or authors.
* <p>
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* <p>
* http://www.apache.org/licenses/LICENSE-2.0
* <p>
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
io.binghe.spring.annotation.chapter22.service.impl
;
import
io.binghe.spring.annotation.chapter22.bean.AspectBean
;
import
io.binghe.spring.annotation.chapter22.service.AspectService
;
import
org.springframework.stereotype.Service
;
/**
* @author binghe(微信 : hacker_binghe)
* @version 1.0.0
* @description 切面型注解Service实现类
* @github https://github.com/binghe001
* @copyright 公众号: 冰河技术
*/
@Service
public
class
AspectServiceImpl
implements
AspectService
{
@Override
public
void
saveOrUpdateAspectBean
(
AspectBean
aspectBean
)
{
int
i
=
1
/
0
;
System
.
out
.
println
(
"保存或者更新AspectBean对象..."
);
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录