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

Spring入门篇

moocer JAVA开发工程师
难度中级
时长 7小时 0分
  • @Aspect注解 Spring可以使用AspectJ来做切入点的解析 AOP的运行时仍旧是纯的Spring AOP,对AspectJ的编译器或者织入无依赖性. 使用AOP注解需要导入aspectjweaver.jar与AspectJ.jar包. @Aspect注解是不能够通过类路径自动检测发现的,所以要配合使用@Component注释或者XML配置Bean. (即通过<context:component-scan base-package="">标签自动扫描符合的包,但不会识别到@Aspect注解,即不知道哪个类使用了@Aspect注解,只会识别到IOC容器中那几个注解) 可以用@Aspect的同时使用@Component注解,或者只用@Aspect注解,在XML配置文档中配置bean,那么当IOC容器加载时就会扫描该bean的实体类,去识别@Aspect注解. 一个类中的@Aspect注解标识它为切面,并且将自己从自动代理中排除(即定义切入点的时候可能包含了切面实体类,它将自动从切入点中排除自己,否则会出现死循环).
    查看全部
  • pointcut配置
    查看全部
  • aop config&aspect&pointcut配置
    查看全部
  • AOP的pointcut声明
    查看全部
  • Schema - based AOP
    查看全部
    0 采集 收起 来源:配置切面aspect

    2016-03-12

  • 在Spring的AOP当中: 若目标实体类是没有实现接口的,那么这种情况下Spring会使用CGLIB来进行代理,当有实现某个接口,那么便会采用JDK动态代理. 也可以在<aop:aspectj-autoproxy proxy-target-class="true">标签中把proxy-target-class属性设置为true,来强制在任何情况下使用CGLIB的方式,即使目标类有实现某个接口. CGLIB的代理对用户是透明的,需要注意的是: -final方法不能被通知,因为它们不能被覆盖 -不用把CGLIB的jar包添加到classpath中,在Spring3.2中,CGLIB被重新包装并包含在Spring核心的JAR包中(即不用手动引入CGLIB包,通过CGLIB实现动态代理的代码实现,Spring都处理好了)
    查看全部
  • 三种方式
    查看全部
    0 采集 收起 来源:IOC及Bean容器

    2016-03-12

  • applicationContexy加载XML的方式有3种
    查看全部
    0 采集 收起 来源:IOC及Bean容器

    2016-03-12

  • 正常写法: <bean> <property name="" ref="com"/> </bean> <bean id="com" class=""/> 使用匿名内部bean: <bean> <property name=""> <bean class=""/> </property> </bean>
    查看全部
  • 在传统AOP的实现中,需要在XML文档中手动引入ProxyFactoryBean. 通过getBean()方法获取该bean对应的id不是ProxyFactoryBean的实例本身,而是这个类的getObject()方法创建的对象. getObject()方法将创建一个AOP代理的目标对象. <aop:aspectj-autoproxy ></aop:aspectj>标签中与ProxyFactoryBean中有proxyTargetClass属性,当该属性设置为true时,会强制使用CGLIB动态代理,默认为false. 如果ProxyFactoryBean的proxyInterfacs属性没有被设置,但是目标类实现了一个(或者更多)接口,那么ProxyFactoryBean将自动检测到这个目标类已经实现了至少一个接口,创建一个基于JDK的代理. 在Spring实现AOP的方式中,不需要引入ProxyBeanFactory类了,直接使用<aop:config>标签与注解来进行配置即可.
    查看全部
  • 获取资源的方法很全面
    查看全部
  • <aop:advisor id=" " pointcut-ref=" " advice-ref=" "> Adivisor是一种特殊的Aspect,Advisor代表spring中的Aspect 区别:advisor只持有一个Pointcut和一个advice,而aspect可以多个pointcut和多个advice. 充当切面的实体类都是包含通知与引介的.只要有通知和引介存在就会实现某个advice接口.
    查看全部
    1 采集 收起 来源:Advisors

    2018-03-22

  • 基于Annotation的引介 使用@DeclareParents,该注解有两个属性,分别是value与default-imp. value属性:指定目标对象. default-imp属性:指定实现新接口的实体类的类类型. 步骤: 1.定义新接口 2.定义新接口的实现类 3.定义目标对象实体类 4.创建切面类,该类存在一个新接口的成员变量,在此成员变量上使用@DeclareParents注解标注. (使用注解方式不能在xml中配置切面) @Aspect @Component public class asp{ @DeclareParents(value="com.own.Component",default-imp=com.own.Other.class) private IOther other; } 5.测试类中通过getBean()获取目标实体类,可以同时强转为实体类原本类型与新接口的类型.
    查看全部
    0 采集 收起 来源:Introductions应用

    2018-03-22

  • 基于XML Schema的引介的例子 定义一个新接口: public interface IOther{ public void getFood(); } 定义新接口的实现类: public class Other implements IOther{ public void getFood(){ System.out.println("取到食物"); } } 定义目标对象类 public class Component{ public void getMoney(){ System.out.println("取到了2000RMB"); } } 在AOP配置中,<aop:declare-parents>所通知的Bean在它的对象结构中拥有新的父类型,那些Bean会实现此接口. <beans..> <bean id="component" class="com.own.Component"/> <bean id="other" class="com.own.Other"/> <aop:config> <aop:aspect> <aop:declare-parents types-matching="com.own.Component+" implement-interface="com.own.IOther" delegate-ref="other"/> </aop:aspect> </aop:config> 测试类: 获取得到的getBean("component")实体可以强转为Component类型与IOther类型(不能为Other类型).可以调用getMoney()与getFood()方法. 基于配置文件的Aspect,只支持单例模式.
    查看全部
    0 采集 收起 来源:Introductions应用

    2018-03-22

  • 基于XML Schema的引介 Spring中提供了<aop:declare-parents types-matching="" implement-interface="" delegate-ref="" >元素来支持传统AOP中的引介.该标签要在<aop:aspect>下使用,不需要定义切入点. 其中types-matching:表示要应用引介的目标对象(全限类名,可使用AspectJ提供的通配符) implements-interface:表示要引入的新接口 delegate-ref:表示新接口的实现类(关联bean),或者使用default-imp属性,该属性指定新接口的实现类(全限类名)
    查看全部
    0 采集 收起 来源:Introductions应用

    2018-03-22

举报

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

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