Первый тип: конфигурация аннотации AOP
Конфигурация аннотации AOP (реализована с использованием библиотеки класса AspectJ), примерно разделена на три шага:
1. Используйте аннотацию @Aspept, чтобы определить раздел, определить точку входа (@pointcut) и тип уведомления (@before,@после повторного повторного,@после,@после послеоперации,@вокруг).
2. Разработка классов, которые необходимо перехватить.
3. Настройте раздел в XML. В этом случае он будет управляться контейнером Spring AOP.
Кроме того, вам необходимо ссылаться на пакет JAR AspectJ: AspectJweaver.jar AspectJrt.Jar
Пример:
User.javapackage com.bjsxt.model; () {возвращать пароль; {public void save (пользователь пользователя);
Реализовать интерфейс:
Пакет com.bjsxt.dao.impl; void save (пользователь пользователя) {System.out.println ("Пользователь Save11d!");
Операционная класс:
Пакет com.bjsxt.service; Импорт com.bjsxt.dao.userdao; ; userdao;
Присоединяйтесь к AOP
Пакет com.bjsxt.aop; Аспект; . bjsxt.service..*.add(..))") public void myMethod(){}; /*@Before("execution(public void com.bjsxt.dao.impl.UserDAOImpl.save(com.bjs xt .model .user)) ")*/ @before (" mymethod () ") public void до () {System.out.println (" Method staet ");} @after (" mymethod () ") public void после после () {System.out.println ("Метод после"); .println ("Метод после повторения"); ");}}
Файл конфигурации
<? 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/sche ma/aop "xsi: schemalocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.ord/schema/context http://www.springframework.org/schema/context http://www.springframework.org/schema/context http://www.springframeworg /www.springframework.org/schema/context/spring-context-2.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/sc hema/aop/spring-aop -3.1 .xsd "> <!-чтобы добавить последние 2 строка -> <AOP: AspectJ-autoproxy/> <!-добавить эту строку-> </beans>
Тестовый класс:
Пакет com.bjsxt.service; Обратный контроль public class userservicetest {@test public void testadd (). println (service.getClass ();
результат:
Класс com.bjsxt.service.userservice $$ EnhancerBycglib $$ 7B201784Method Статистика Save11d! Метод после повторного повторного повторения после ###
Уведомление:
@Asepep: это означает, что этот класс является классом аспектов
@Componet: Поскольку пружина должна управляться как касательный класс, инициализация этого класса должна быть добавлена в управление пружиной во время инициализации;
@Befoe: логика точки входа (совет)
Выполнение…: Синтаксис с вырезанием точек
Второй тип: конфигурация XML AOP
Так же, как и выше: только файл конфигурации другой
<? 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/sche ma/aop "xsi: schemalocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.ord/schema/context http://www.springframework.org/schema/context http://www.springframework.org/schema/context http://www.springframeworg /www.springframework.org/schema/context/spring-context-2.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/sc hema/aop/spring-aop -3.1 .xsd "> <!-чтобы добавить последние 2 строка "> < /bean> <aop: config> <aop: pointcut Expression =" execution (public * com.bjsxt.service .. *. добавить (..)) "id =" servicePointCut " /> <aop: идентификатор аспекта идентификатор = "lo gascept" ref = "loginterceptor"> <aop: перед методом = "перед" pointcut-ref = "servicepointcut"/> </aop: аспект> </aop: config> </beans>
Следующая <Beans> является тегом конфигурации пружины и несколько важных свойств в бобах:
XMLNS:
Это формат анализа документа XML по умолчанию, то есть весенние бобы. Адрес http://www.springframework.org/schema/beans.
Установив это свойство, все атрибуты, объявленные в бобах, могут использоваться непосредственно через <>, такие как <Bean> и т. Д.
xmlns: xsi:
Это спецификация, которую XML должен соблюдать.
XMLNS: AOP:
Это ключевой момент, и это некоторые семантические спецификации, которые мы должны использовать здесь, которые связаны с AOP, ориентированным на касательно.
XMLNS: TX:
Связанное с транзакцией содержимое конфигурации в пружине.
XML -файл может объявить только спецификацию семантического анализа по умолчанию.
Например, в приведенном выше XML только один бобы - это по умолчанию, а другие должны использоваться с помощью конкретных тегов, таких как AOP, которые имеют много атрибутов. Полем Например, AOP: конфигурация выше.
Точно так же, если XMLN по умолчанию настроен со спецификациями семантического анализа AOP, то вы можете напрямую написать тег, подобный конфигурации в XML.
Выше, два метода конфигурации Spring AOP. Есть больше статей о методах конфигурации Spring AOP, которые можно поделиться с вами позже.