Форум программистов, компьютерный форум, киберфорум
Java EE (J2EE)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 03.07.2011
Сообщений: 14
1

Применение AOP в spring

31.03.2012, 04:43. Показов 1333. Ответов 4
Метки нет (Все метки)

Всем доброго времени суток. Сразу оговорюсь я новичок. Пробую создать первый пример программы с использованием AOP в spring. Однако никак не выходит. Суть программы в том, чтобы просто вывести сообщение перед выполнением метода однако при развертывании происходит сбой со следующей ошибкой:
Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'circle' defined in class path resource [spring.xml]: Initialization of bean failed; nested exception is java.lang.VerifyError: class net.sf.cglib.core.DebuggingClassWriter overrides final method visit.(IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/StringV

Код аспекта:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
package org.petrov.aspects;
 
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.springframework.stereotype.Component;
 
@Aspect
public class LoggingAspect {
    
    @Before("execution(* get*(..))")
    public void LogingAdvice(){
        System.out.println("This is an advice");
    }
    
}
Xml файл настройки Spring:
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?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:aop="http://www.springframework.org/schema/aop" 
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/aop 
                        [url]http://www.springframework.org/schema/aop/spring-aop.xsd[/url] 
                        [url]http://www.springframework.org/schema/beans[/url] 
                        [url]http://www.springframework.org/schema/beans/spring-beans.xsd[/url] 
                        [url]http://www.springframework.org/schema/context[/url] 
                        http://www.springframework.org/schema/context/spring-context.xsd" >
 
    
    <bean name="loggingAspect" class="org.petrov.aspects.LoggingAspect" />
 
    <bean name="circle" class="org.petrov.model.Circle" >
        <property name="name" value="Circle name" />
    </bean>
 
    <bean name="triangle" class="org.petrov.model.Triangle">
        <property name="name" value="Triangle name" />
    </bean>
 
    <bean id="shapeService" class="org.petrov.service.ShapeService" autowire="byName" >
    </bean>
    
    <aop:aspectj-autoproxy /> 
          
</beans>
Всем заранее большое спасибо!!!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.03.2012, 04:43
Ответы с готовыми решениями:

Spring AOP. При добавлении aop:config в xml проект критует
Начал изучать спринг, так что сильно меня не материте. Проблема в том что при добавлении в xml...

Spring AOP Example
Здравствуйте. Создал Spring AOP приложение по примеру из книги, не пойму в чем ошибка при запуске. ...

AOP Spring
Приветствую! Начал разбираться со Spring. Не могу разобраться почему не работает пример из...

Java Spring Quiz teaching without AOP
Получил следующую задачку. Не могу найти вариант её решения. У меня есть сервис регистрции. В оин...

4
2580 / 2253 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
31.03.2012, 12:47 2
или выкладывай все классы вовлечённые в ошибку (org.petrov.model.Circle) или придётся самому искать.

навскидку твой класс Циркл или ещё какой-то пытается овверриднуть финальный метод visit.
возможно проблема вот как тут http://stackoverflow.com/quest... lasswriter
0
0 / 0 / 0
Регистрация: 03.07.2011
Сообщений: 14
31.03.2012, 16:25  [ТС] 3
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
package org.petrov;
 
import org.petrov.service.ShapeService;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
 
public class AopMain {
 
    public static void main(String[] args){
        ApplicationContext context = new ClassPathXmlApplicationContext("spring.xml");
        ShapeService shapeService =context.getBean("shapeService",ShapeService.class);
        System.out.println(shapeService.getCircle().getName());
    }
    
}
 
package org.petrov.service;
 
import org.petrov.model.Circle;
import org.petrov.model.Triangle;
 
public class ShapeService {
 
    private Triangle triangle;
    private Circle circle;
 
    public void setCircle(Circle circle) {
        this.circle = circle;
    }
 
    public void setTriangle(Triangle triangle) {
        this.triangle = triangle;
    }
 
    public Circle getCircle() {
        return circle;
    }
 
    public Triangle getTriangle() {
        return triangle;
    }
}
Добавлено через 2 минуты
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
package org.petrov.model;
 
public class Triangle {
    
    private String name;
 
    public void setName(String name) {
        this.name = name;
    }
 
    public String getName() {
        return name;
    }
}
 
package org.petrov.model;
 
public class Circle {
 
    private String name;
 
    public String getName() {
        return name;
    }
 
    public void setName(String name) {
        this.name = name;
    }
    
    
}
0
142 / 105 / 16
Регистрация: 21.04.2011
Сообщений: 402
31.03.2012, 16:39 4
а вы случайно все классы так не хукнули?
например getLength для string'a
0
0 / 0 / 0
Регистрация: 03.07.2011
Сообщений: 14
31.03.2012, 17:00  [ТС] 5
Может быть, однако, на мой взгляд суть не в этом. Программа все равно не работает даже если изменить pointcut:
Java
1
@Before("execution(public String org.petrov.model.Circle.getName())")
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.03.2012, 17:00

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

[Spring AOP] Написать аспект на println()
Необходимо написать аспект, который бы перед каждым sout в программе делал еще один sout с каким-то...

Spring AOP :: не вызывается метод invoke()
Hello world! С Java+Spring+AOP только разбираюсь, но не понимаю, почему не получается сделать всё...

Spring AOP configuration
Привет кодеры! Тут в общем со спрингом пытаюсь подружиться и решил для одного бина внедрить аспект....

Spring MVC. 404 ошибка при включении Spring Data JPA в проект
Добрый день. Есть простой шаблонный проект с использованием Spring MVC и Maven. С зависимостями...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.