为了账号安全,请及时绑定邮箱和手机立即绑定
慕课网数字资源数据库体验端
Spring入门篇_学习笔记_慕课网
为了账号安全,请及时绑定邮箱和手机立即绑定

Spring入门篇

moocer JAVA开发工程师
难度中级
时长 7小时 0分
  • @·什么是框架 ·框架的特点 --半成品 --封装了特定的处理流和控制逻辑 --成熟的、不断升级改进的软件 ·框架与类库的区别 --框架一般是封装了逻辑、高类聚的,类库则是松散的工具祝贺 --框架专注于某个领域,类库则是更通用的。
    查看全部
    0 采集 收起 来源:Spring框架

    2016-03-11

  • Annotation配置Pointcut切入点 基于JDK5.0以上版本还可以使用Annotation来配置切入点,表达式写法与前面相同,只不过这里不再需要使用配置文件来声明表达式了,直接使用@Pointcut("execution()")就可以表示一个切入点,以后在需要应用该切入点的时候就可以使用其标识的方法了. @Pointcut("execution(void com.own.Component.getMoney*(..))") public void beforePointcut(){} 表示在com.own.Component中所有返回值为空并且以getMoney开头的方法这样一个切入点. 在执行前置通知或者其他需要使用的时候直接使用:@before("beforePointcut"),也就相当于@before("execution(void com.own.Component.getMoney*(..))"),即在这个切入点执行通知.
    查看全部
    0 采集 收起 来源:配置切面aspect

    2018-03-22

  • Spring中的Pointcut定义 Spring中的切入点Pointcut定义有两种方法 1.表达式配置 2.Annotation配置. 表达式配置切入点: Spring2.0中的Pointcut定义支持的关键字有: execution(方法执行的连接点) within(限定匹配特定类型的连接点) this(连接点本身) target(连接点目标对象) arg(连接点参数) 表达式的定义格式如下: execution(modifiers-pattern? ret-type-pattern declaring-type-pattern? name-pattern(param-pattern) throws-pattern?) 有"?"号的部分表示可省略. modifers-pattern表示修饰符,如public ret-type-pattern表示方法返回类型 declaring-type-pattern代表特定的类 name-pattern代表方法名称 param-pattern表示参数 throws-pattern表示抛出的异常 在切入点表达式中可以使用*号来代表任意字符,用..表示任意个参数. 比如execution(void com.own.Component.getMoney*(..))就表示执行com.own.Component中所有返回值为void并且getMoeny开头的方法. 方法的参数(..),表示0个或者任意个参数,也可以使用"*"来指定任意参数,比如getMoney(*,String),表示2个参数.
    查看全部
    0 采集 收起 来源:配置切面aspect

    2018-03-22

  • Spring中的AOP 在Spring中除了支持传统的AOP,还提供了两种实现AOP的方式: 1.基于XML的配置,使用基于Schema的XML配置来完成AOP,而且Advice也不用再实现任何其他特定的接口. 2.使用JDK5的注解来完成AOP的实现,只需要一个简单的标签就完成了AOP的整个过程. 不需要像传统AOP实现方式那样,定义接口以及接口的实现类,可以直接定义类,切入点为该类即可.
    查看全部
    0 采集 收起 来源:配置切面aspect

    2016-03-11

  • 118
    查看全部
    0 采集 收起 来源:Advice扩展

    2016-03-11

  • 117
    查看全部
    0 采集 收起 来源:Advice扩展

    2016-03-11

  • @·spring使用范围 ·构建企业应用(SpringMVC+Spring+Hibernate、ibatis) ·单独使用Bean容器(bean管理) ·单独使用AOP进行切面处理 ·其他的spring功能,如:对消息的支持等 ·在互联网中的应用....
    查看全部
    0 采集 收起 来源:Spring概况

    2016-03-11

  • 将上面的程序换成配置文件如下: <beans..> //定义引介增强器(切面) <bean id="introductionAdvisor" class="org.springframework.aop.support.DefaultIntroductionAdvisor" > //将引介拦截器的实现类通过构造注入到DefaultIntroductionAdvisor(引介增强器)的属性中. <constructor-arg ref="dele"/> </bean> //定义引介拦截器的实现类 <bean id="dele" class="org.springframework.aop.support.DelegatingIntroductionInterceptor" > //将新接口的实现类通过构造器传递给引介拦截器的实现类 <constructor-arg ref="other" /> </bean> <bean id="other" class="com.own.Other"/> <bean id="component" class="com.own.Component"/> //引入ProxyFactoryBean <bean id="proxy" class="org.springframework.aop.framework.ProxyFactoryBean"> <property name="target" ref="component"/> <property name="proxyTargetClass" value="true"/> <property name="interceptorNames" value="introductionAdvisor"/> </bean> </beans> 将新接口的实现类通过构造注入方式注入到引介拦截器的实现类,将引介拦截器实现类通过构造注入方式注入到引介增强器. ProxyFactoryBean的proxyTargetClass属性为boolean值,表示是否代理目标对象类. 并将拦截器属性名称设置为引介增强器. <constructor-arg>中可以直接省略name值,则会根据bean实体类中的构造方法中参数的定义顺序进行初始化.
    查看全部
    0 采集 收起 来源:配置切面aspect

    2018-03-22

  • 116
    查看全部
    0 采集 收起 来源:Advice扩展

    2016-03-11

  • 114
    查看全部
    0 采集 收起 来源:Advice扩展

    2016-03-11

  • 使用引介的例子 1.依然使用IComponent接口与Component实现类. 2.定义一个新的接口IOther. public interface IOther{ public void doOther(); } 3.定义新接口的实现类 public class Other implements IOther{ public void doOther(){ System.out.println("做别的事..."); } } 4.使用DelegatingIntroductionInterceptor来完成引介 public static void main(String[] args){ ProxyFactory proxy=new ProxyFactory(new Component()); DelegatingIntroductionInterceptor in=new DelegatingIntroductionInterceptor(new Other()); proxy.addAdvice(in); IComponent component=(IComponent)proxy.getProxy(); IOther other=(IOther)proxy.getProxy(); component.getMoney(); other.doOther(); } 使用了Component构建一个代理工厂,然后使用DelegatingIntroductionInterceptor构造一个引介,将Other类传递进去,proxy.addAdvice()方法就是将引介添加到代理工厂中,这样代理工厂代理出来的既是IComponent也是IOther.如果没有添加引介到代理工厂,那么获得的代理对象是IComponent类型的.通过引介后具备了IOther功能,也就相当于将IOther中的方法添加进了IComponent中.
    查看全部
    0 采集 收起 来源:配置切面aspect

    2018-03-22

  • Spring定义了一个用于描述引介信息的IntroductionInfo接口. 还定义一个IntroductionAdvisor接口用来封装IntroductionInfo及Advisor的引介增强器(切面). Spring提供了IntroductionAdvisor接口的实现类DefaultIntroductionAdvisor. 在实际应用中可以通过继承该类并实现指定的接口来实现一个引介增强器. 注意:在配置文件中不能在没有IntroductionAdvisor(引介增强器)的情况下使用IntroductionInterceptor. 因为引介是改变类的静态结构.不需要定义切入点Pointcut. 在Spring AOP中,引介的使用是通过把一个指定的接口实现类添加到代理工厂中,从而使代理工厂返回的代理对象也实现引介指定的接口.
    查看全部
    0 采集 收起 来源:配置切面aspect

    2016-03-11

  • 前面讲述的一系列通知均是对某一个类某些方法体的监控.而引介(Introduction)则是修改某个类,通过引介可以给一个类引入一个新的方法和属性,与通知不同的是引介引入的方法属性将成为某个类具有的一个实体方法或属性,而通知只是对方法的增强,并没有修改类.Spring中提供了IntroductionInterceptor来定义引介. IntroductionInterceptor是一个标签接口,该接口继承MethodInterceptor接口与DynamicIntroductionAdvice接口. MethodInterceptor接口也是环绕通知必须实现的接口,实际上是一个方法拦截器. DynamicIntroductionAdvice接口继承Advice接口,该接口有一个boolean implenentsInterface(Class intf)方法.该方法用来指定实现某个接口. 要定义一个引介拦截器,只需要定义一个类实现IntroductionInterceptor接口即可(或继承IntroductionInterceptor接口的实现类). 在Spring中提供了两个IntroductionInterceptor的实现类,分别是DelegatingIntroductionInterceptor(常用)与DelegatePerTargetObjectDelegatingIntroductionInterceptor类. DelegatingIntroductionInterceptor需要准备一个要引入的接口的实现类作为参数. DelegatePerTargetObjectDelegatingIntroductionInterceptor需要指定一个接口及其实现类作为参数.
    查看全部
    0 采集 收起 来源:配置切面aspect

    2016-03-11

  • 除了以上4种不同的切入点,还可以自定义切入点进行某些特殊的运用.自定义切入点类只需要实现org.springframework.aop.pointcut类,然后在bean中声明该类,接着就可以使用自定义的pointcut类了.
    查看全部
    0 采集 收起 来源:配置切面aspect

    2016-03-11

  • Spring2.0提供了一个ExpressionPointcut的实现.即AspectJExpressionPointcut.该类只有一个expression属性(String类型),该属性用切入点表达语言来定义切入点 配置xml <beans..> //前置通知 <bean id="beforeAdvice" class="com.own.BeforeAdvice"/> <bean id="component" class="com.own.Component"/> //引入bean(AspectJExpressionPointcut) <bean id="pointcutBean" class="org.springframework.aop.aspectj.AspectJExpressionPointcut"> <property name="expression" value="execution(*getMoney(..))" /> </bean> //引入该类 <bean id="defaultAdvisor" class="org.springframework.aop.support.DefaultpointcutAdvisor"> //调用相应通知 <property name="advice" ref="beforeAdvice"/> //关联切入点 <property name="pointcut" ref="pointcutBean"/> </bean> <bean id="proxy" class="org.springframework.aop.framework.ProxyFactoryBean"> <property name="proxyInterfaces" value="com.own.IComponent"/> <property name="target" ref="component"/> //拦截器为DefaultPointcutAdvisor <property name="interceptorNames" value="defaultAdvisor" /> </bean> </beans> 获取代理对象,调用Component的getMoney()方法,方法执行前就会调用前置通知
    查看全部
    0 采集 收起 来源:配置切面aspect

    2018-03-22

举报

0/150
提交
取消
课程须知
Java的高级课程,适合对Java基础知识应用自如,并熟悉MVC架构的小伙伴们。如果想成为一名Java工程师,这门课程是一定要学哒。
老师告诉你能学到什么?
掌握依赖注入、IOC和AOP的概念,并能进行简单应用。
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!