`
阅读更多
Spring:包容一切的框架 核心:IOC和AOP
IOC:控制反转,也叫依赖注入 
     控制反转:将对象的控制权从代码移交给xml
     控制反转为程序开发带来的好处是:对象统一管理,提高复用性,降低耦合
     依赖注入:在xml中赋值
AOP:面向切面, 在不影响原有代码基础上,直接在任意位置植入代码(功能)

AOP增强:1.前置:放在目标方法前面

2.后置:放在目标方法后面 ,异常时不会发生

3.环绕:包括前后置增强,且可以修改目标方法的返回值

4.异常抛出:放在try-catch中的catch中 ,异常时才会发生

5.最终:最后输出的方法(放在后置后面)
区别于后置: 1.可以拿到返回值

2.报错时候,后置不会发生,最终会继续运行,相当于try-catch-final中的final

AOP增强类型的使用

1.前置方法: *<aop:before method="pre_study" pointcut-ref="target"/>
public void pre_study(JoinPoint jp){ **在参数中导个包(import org.aspectj.lang.JoinPoint;)
System.out.println("先预习!"+jp.getTarget().getClass());
}
jp.getTarget().getClass()  获得地址信息


2.后置方法: *<aop:after-returning method="do_work" returning="result" pointcut-ref="target"/>
public void do_work(JoinPoint jp,Object result){
System.out.println("学习完毕,返回值是"+result+",做上机练习!");
}

3.环绕方法: *<aop:around method="around" pointcut-ref="target"/>
public Object around(ProceedingJoinPoint pjp){
System.out.println("我是环绕增强的前置增强");
try {
Object result = pjp.proceed();//环绕增强的前置增强和后置增强的分界线

result="123"; //可以自如的修改目标方法的返回值

System.out.println("我是环绕增强的后置增强");

return result; //完美的替换目标方法的返回值
} catch (Throwable e) {
e.printStackTrace();
}
return null;
}


4.异常抛出方法:*<aop:after-throwing method="do_exception" throwing="e" pointcut-ref="target"/>
public void do_exception(JoinPoint jp,Exception e){
System.out.println("我是异常增强");
}

5.最终方法: *<aop:after method="do_final" pointcut-ref="target"/>
public void do_final(JoinPoint jp){
System.out.println("我是最终增强");
}



</div>

IOC实现依赖注入的方式:(注入值)


1.setter注入方式:
<property name="num" value="1001"></property>
<property name="name" value="张三"></property> //一个参数,对应一个property


2.构造注入:时效性好,没有注入灵活
前提:带参构造器

<constructor-arg index="0" value="张三">//一个参数,对应一个constructor-arg

</constructor-arg> 顺序混淆时,index区分位置,0起始

3.p命名空间注入 p:属性名="属性值"

头文件应用:
xmlns:p="http://www.springframework.org/schema/p"
         <bean id="first" class="AOP.firstAOP" p:name="张三" p:age="23" p:email="zhangsan@qq.com"/>

使用spring的好处

1.不用new对象
2.生命周期从new到xml文件中去了
3.事务处理的特定功能能直接插入
分享到:
评论
1 楼 1754575407 2018-08-10  
写的真好。

相关推荐

    Spring的Aop和Ioc示例

    Spring框架是Java开发中不可或缺的一部分,它以其强大的依赖注入(IOC)和面向切面编程(AOP)功能闻名。在本示例中,我们将深入理解这两个核心概念。 **依赖注入(IOC)** 依赖注入(Inversion of Control)是...

    springioc和spring aop

    Spring框架是Java开发中不可或缺的一部分,它通过提供两种核心特性——控制反转(IoC)和面向切面编程(AOP)来简化应用的构建。理解并掌握这两种技术对于任何Java开发者来说都至关重要。 **控制反转(IoC)**,也...

    关于spring的AOP ,IOC,DI的理解

    Spring的核心特性包括AOP(面向切面编程)和IOC(控制反转),以及依赖注入(DI)。以下是对这些概念的详细解释: **面向切面编程(AOP)** AOP是一种编程范式,它允许开发者将关注点从主业务逻辑中分离出来,例如...

    spring练习AOP与IOC

    Spring框架是Java开发中的核心组件,它以依赖注入(Dependency Injection,简称DI)和面向切面编程(Aspect-Oriented Programming,简称AOP)为核心,极大地简化了企业级应用的开发工作。在这个“spring练习AOP与IOC...

    spring的aop_ioc

    【Spring的AOP和IOC详解】 Spring框架是Java开发中不可或缺的一部分,它的核心特性包括依赖注入(Dependency Injection,DI)和面向切面编程(Aspect-Oriented Programming,AOP)。这两个特性都极大地提升了代码的...

    Java Spring代理模式AOP-IOC分析

    在本文中,我们提供了一个示例项目,演示了如何使用Spring实现AOP和IOC。该项目中,我们定义了一个Math类,并使用静态代理和动态代理来扩展Math类的行为。同时,我们还使用Spring的IOC容器来管理Math类和代理对象,...

    Spring中IOC/AOP的说明和例子

    在Spring框架中,IOC(Inversion of Control,控制反转)和AOP(Aspect-Oriented Programming,面向切面编程)是两个核心的概念,它们极大地提高了软件开发的灵活性和可维护性。 **IOC(控制反转)**是Spring的核心...

    Spring IOC和Spring AOP_spring aop_springIOC

    Spring框架是Java开发中最常用的轻量级框架之一,它的核心特性包括依赖注入(Dependency Injection,简称DI)和面向切面编程(Aspect-Oriented Programming,简称AOP)。这两个概念是Spring框架的基石,极大地简化了...

    Spring中IOC(反转控 制) 和 AOP(面向方面编程)

    总的来说,Spring的IOC和AOP是现代企业级应用开发中不可或缺的工具,它们使得我们能够更好地管理对象的生命周期,减少代码的冗余,提高代码的复用性,使得系统设计更加模块化,更易于维护和扩展。理解并熟练运用这...

    以注解方式模拟Spring IoC AOP

    在Spring框架中,依赖注入(Inversion of Control, IoC)和面向切面编程(Aspect Oriented Programming, AOP)是两大核心特性。本篇将深入探讨如何通过注解方式来模拟Spring的这两种机制,帮助你理解其底层原理。 #...

    spring ioc和aop原理流程图(详细)

    Spring 框架是Java开发中的核心框架,它主要由两个关键部分组成:IOC(Inversion of Control,控制反转)和AOP(Aspect Oriented Programming,面向切面编程)。这两个概念是Spring框架的核心特性,极大地简化了企业...

    spring AOP 引入jar包,spring IOC 引入Jar包

    在提供的 `lib` 压缩包中,应包含 Spring AOP 和 Spring IOC 相关的 jar 包,如 `spring-aop-x.x.x.jar` 和 `spring-context-x.x.x.jar` 等,它们是使用这两个功能的基础。请确保引入正确的版本,并正确配置到项目的...

    Spring的AOP IOC

    一个机遇Spring3的入门小案例,里面主要简单演示了Spirng配置文件如何配置自动扫描包,控制类、服务类、Dao类如何加注解,被IOC扫描装入容器中。还有AOP例子的演示,有before after afterreturn afterthrow,还有...

    Spring AOP、IOC、cxf、任务调度所需jar包以及配置文件

    在IT领域,Spring框架是Java开发中的核心工具,它提供了许多功能来简化应用程序的构建,如依赖注入(IOC)、面向切面编程(AOP)以及服务整合。本资源包聚焦于Spring的这些关键特性,同时也涉及到CXF服务、任务调度...

    spring_aop_ioc完全讲解

    在Spring框架中,AOP(面向切面编程)和IOC(控制反转)是两个核心概念,它们极大地简化了Java应用的开发和维护。下面将详细解释这两个概念以及如何在实际应用中使用它们。 **控制反转(Inversion of Control, IOC...

    java Spring代理模式AOP-IOC结合

    Java Spring 代理模式 AOP-IOC 结合 从给定的文件信息中,我们可以总结出以下知识点: 一、为什么需要代理模式 ...Spring 提供了一个强大的 AOP 框架和 IoC 容器,可以帮助我们轻松实现代理模式和 AOP。

    Spring AOP IOC源码笔记.pdf

    Spring框架是Java开发中不可或缺的一部分,它主要由两个核心组件构成:IoC(Inversion of Control,控制反转)和AOP(Aspect Oriented Programming,面向切面编程)。本笔记将深入探讨这两个概念以及它们在Spring中...

    Spring 的IOC和AOP特点

    Spring的核心:IOC与AOP。IOC是控制反转或依赖注入,AOP是面向切面编程。

    Spring IOC AOP MVC 简单例子

    在`SpringAOP`目录中,可能包含了定义切面、通知(advice)、切入点(pointcut)等内容。AOP的实现通常通过定义切面类,其中包含通知方法,并通过切入点表达式确定这些通知在何时何地执行。这使得代码更加模块化,...

    spring Aop/Ioc

    而在IOC中,容器负责管理对象及其依赖,对象只需要声明需要什么,而不需要知道如何去创建或获取依赖。 Spring的IOC主要通过两种方式实现: 1. **依赖注入(Dependency Injection,DI)**:容器根据配置信息将依赖...

Global site tag (gtag.js) - Google Analytics