谈一谈你对Spring的理解?

24 篇文章 0 订阅
22 篇文章 2 订阅

①Spring是一个开源的业务层框架,分模块,一站式框架,它能够整合各种其他主流框架;

②Spring的实质就是一个实现了工厂模式的工厂类,在其配置文件中,通过添加标签,来创建实例对象;

③Spring的核心——IoC/DI;

a)IoC(Inverse of Control)控制反转,将对象的创建全交给Spring去管理,然后Spring容易通过依赖注入的方式,注入给调用者。这样做的好处是,让bean与bean之间以配置文件的形式组织在一起,而不是以硬编码的方式耦合在一起。

b)依赖注入的方式有三种:接口注入、Setter方法注入(使用<property name="" value或者ref="">)、构造注入;

c)IoC的注解方式:

(Ⅰ)在applicationContext.xml配置文件中开启组件扫描

<context:component-scan base-package=“com.itheima”/>

(Ⅱ)在实现类上添加注解:@Component(value=“id值”)

@Component的三个衍生注解(功能一样)

  • @Controller – 作用在WEB层

  • @Service – 作用在业务层

  • @Repository – 作用在持久层

(Ⅲ)3.属性注入的注解(说明:使用注解注入的方式,可以不用提供set方法)
  • @Value – 用于注入普通类型

  • @Autowired – 默认按类型进行自动装配

  • @Qualifier – 强制使用名称注入

  • @Resource – 相当于@Autowired和@Qualifier一起使用,强调:Java提供的注解,属性使用name属性

④Spring的核心——AOP;

a)AOP(面向切面编程),可以在不修改源代码的前提下,对程序进行增强,例如,加入日志,加入权限判断,加入异常处理等;

b)AOP底层使用的是代理技术,分为JDK动态代理(面向接口)和CGLIB动态代理(没接口的,产生子类代理);

c)使用步骤:

(Ⅰ)编写切面类==>在IoC中配置切面类的bean标签==>配置aop相关

aop:config

<aop:aspect ref=“切面类”>

<aop:before method=“增强方法” pointcut=“切入点表达式”/>

</aop:aspect>

</aop:config>

(Ⅱ)切入点表达式:execution([修饰符] 返回值类型 包名.类名.方法名(参数))

一般简写为:execution(* com...DaoImpl.save(…))

(Ⅲ)通知类型

前置通知:<aop:after method=“before” pointcut-ref=“myPointcut3”/>

最终通知:如果程序出现了异常,最终通知也会执行。

<aop:after method=“after” pointcut-ref=“myPointcut3”/>

后置通知:<aop:after-returning method=“afterReturning” pointcut-ref=“myPointcut2”/>

异常抛出通知:<aop:after-throwing method=“afterThorwing” pointcut-ref=“myPointcut3”/>

环绕通知:<aop:around method=“around” pointcut-ref=“myPointcut2”/>

  • 要注意:目标的方法默认不执行,需要使用ProceedingJoinPoint对来让目标对象的方法执行。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值