鍍金池/ 問答/Java  數(shù)據(jù)庫/ spring AOP練習(xí)的時(shí)候使用注解時(shí)報(bào)錯(cuò),不用就成功

spring AOP練習(xí)的時(shí)候使用注解時(shí)報(bào)錯(cuò),不用就成功

環(huán)境
eclipse
jdk1.6
maven

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
    http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd">
<!-- 開啟注解掃描 -->
<context:component-scan base-package="com.cjh.aop2"/>
<!-- 開啟aop注解方式,此步驟s不能少,這樣java類中的aop注解才會(huì)生效 -->
<aop:aspectj-autoproxy/>

</beans>

兩個(gè)類

        @Component("knight")
    public class BraveKnight {
        public void saying(){
            System.out.println("我是騎士..(切點(diǎn)方法)");
        }
    }


@Component("annotationTest")
@Aspect
public class AnnotationTest {
//定義切點(diǎn)
@Pointcut("execution(* *.saying(..))")
public void sayings(){}

@Before("sayings()")
public void sayHello(){
    System.out.println("注解類型前置通知");
}
//后置通知
@After("sayings()")
public void sayGoodbey(){
    System.out.println("注解類型后置通知");
}
//環(huán)繞通知。注意要有ProceedingJoinPoint參數(shù)傳入。
@Around("sayings()")
public void sayAround(ProceedingJoinPoint pjp) throws Throwable{
    System.out.println("注解類型環(huán)繞通知..環(huán)繞前");
    pjp.proceed();//執(zhí)行方法
    System.out.println("注解類型環(huán)繞通知..環(huán)繞后");
}

}

測試類

public static void main(String[] args) {
    ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
    BraveKnight br = (BraveKnight) ac.getBean("knight");
    br.saying();
}

    **報(bào)錯(cuò)代碼**


信息: Loading XML bean definitions from class path resource [applicationContext.xml]
Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'knight' defined in file [D:ljzspringDemotargettest-classescomcjhaop2BraveKnight.class]: Initialization of bean failed; nested exception is java.lang.NoClassDefFoundError: org/springframework/core/annotation/OrderUtils

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:547)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:475)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:304)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:300)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:195)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:700)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:760)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:482)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83)
at com.cjh.aop2.Test.main(Test.java:14)

Caused by: java.lang.NoClassDefFoundError: org/springframework/core/annotation/OrderUtils

at org.springframework.aop.aspectj.annotation.BeanFactoryAspectInstanceFactory.getOrder(BeanFactoryAspectInstanceFactory.java:112)
at org.springframework.aop.aspectj.annotation.LazySingletonAspectInstanceFactoryDecorator.getOrder(LazySingletonAspectInstanceFactoryDecorator.java:73)
at org.springframework.aop.aspectj.annotation.InstantiationModelAwarePointcutAdvisorImpl.getOrder(InstantiationModelAwarePointcutAdvisorImpl.java:161)
at org.springframework.core.annotation.AnnotationAwareOrderComparator.getOrder(AnnotationAwareOrderComparator.java:50)
at org.springframework.core.OrderComparator.compare(OrderComparator.java:58)
at org.springframework.aop.aspectj.autoproxy.AspectJPrecedenceComparator.compare(AspectJPrecedenceComparator.java:81)
at org.springframework.aop.aspectj.autoproxy.AspectJPrecedenceComparator.compare(AspectJPrecedenceComparator.java:49)
at org.springframework.aop.aspectj.autoproxy.AspectJAwareAdvisorAutoProxyCreator$PartiallyComparableAdvisorHolder.compareTo(AspectJAwareAdvisorAutoProxyCreator.java:132)
at org.aspectj.util.PartialOrder$SortObject.addDirectedLinks(PartialOrder.java:71)
at org.aspectj.util.PartialOrder.addNewPartialComparable(PartialOrder.java:93)
at org.aspectj.util.PartialOrder.sort(PartialOrder.java:129)
at org.springframework.aop.aspectj.autoproxy.AspectJAwareAdvisorAutoProxyCreator.sortAdvisors(AspectJAwareAdvisorAutoProxyCreator.java:77)
at org.springframework.aop.framework.autoproxy.AbstractAdvisorAutoProxyCreator.findEligibleAdvisors(AbstractAdvisorAutoProxyCreator.java:91)
at org.springframework.aop.framework.autoproxy.AbstractAdvisorAutoProxyCreator.getAdvicesAndAdvisorsForBean(AbstractAdvisorAutoProxyCreator.java:69)
at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.wrapIfNecessary(AbstractAutoProxyCreator.java:346)
at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.postProcessAfterInitialization(AbstractAutoProxyCreator.java:298)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsAfterInitialization(AbstractAutowireCapableBeanFactory.java:421)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1558)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:539)
... 11 more

Caused by: java.lang.ClassNotFoundException: org.springframework.core.annotation.OrderUtils

at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
... 30 more

    請問各位大神是什么原因
回答
編輯回答
孤客

類沒找到,查下你的spring-core版本

clipboard.png

2017年12月4日 15:42