javaWeb个人学习04

本文详细阐述了面向切面编程(AOP)的核心概念,包括JoinPoint、通知(Advice)、切入点(PointCut)、目标对象(Target)以及在SpringBoot中如何配置切点表达式和通知顺序。此外,还介绍了SpringBoot配置文件的优先级和jar包中的Bean管理,特别关注了单例和多例bean的作用域设置。
摘要由CSDN通过智能技术生成

AOP核心概念:

连接点:

JoinPoint, 可以被AOP控制的方法

通知:

Advice 指哪些重复的逻辑,也就是共性功能(最终体现为一个方法)

切入点:

PointCut, 匹配连接点的条件,通知仅会在切入点方法执行时被应用

目标对象:

Target, 通知所应用的对象

通知类型:

如果每一个方法的前面都需要加上切点表达式, 这个时候可以使用@Pointcut("")

@Pointcut("execution(*, com.findyou.service.impl.DeptServiceImpl.*(..))")
public void pt(){}

@Around("pt()")
public void test() {
    log.info("around....")
}

 通知顺序:

和类名的字母排序有关系,但是可以通过@Order(数字)来控制顺序

切点表示式:

切入点表达式-execution:

 包名.类名是可以省略的,但是不建议去省略

使用通配符描述切点:

注意* 代表的是 任意一个 

 如果要描述多个的话 可以写成:

@Pointcut("execution() || execution()")  // 之间用 || 来隔开

 书写建议:

切入点表达式-@annotation:

 SpringBoot

配置优先级:

如果 写了3份配置文件 例如: application.properties application.yaml application.yml 运行会发现

优先级最高的是 .properties 其次是yml 最后是yaml, 现在企业主流的是 yml 

打包成jar包的形式:

运行jar包:

Bean管理:

bean的获取:

默认的情况,Spring启动的时候,会把bean都创建好放在IOC容器里面,如果想主动获取这些bean,可以通过以下方法:

1: 根据bean的名称去获取:

ioc容器对象.getBean("想获取bean的名称") 如果bean没有名字 那么默认的就是方法名+

2:根据bean的类型去获取:

ioc容器对象.getBean(想要获取bean类名.class)

3:根据bean的名称以及类型去获取:

ioc容器对象.getBean("想要获取bean的名称", 想要获取bean类名.class)

这三次获取的bean是一样的 这说明是同一个bean对象 也就是单例

bean的作用域:

bean是单例的还是多例的取决于bean的作用域的配置, spring支持5种作用域, 前2种重要

默认是单例的模式设置作用域通过@Scope这个注解 例如@Scope("prototype") 这样设置的是多例模式 

  • 16
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FindYou.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值