AspectJ+Springプログラミング(オリジナル)
多くのネット上の文章がSpring Aopといえば、一つの方法を描いています.Springが提供する動的エージェントインタフェースを用いて,接面プログラミングを実現する.springでAopを使うにはSpringのダイナミックエージェントインタフェースを使わないようです.Springは本当に幸せで、こんなに多くの人が彼のダイナミックエージェントのために広告をしています.実はAopは独立した技術で、Springで実現することができて、彼の外でも実現することができて、他のどこでも実現することができます.Springが提供する動的エージェントは、その中の1つの選択にすぎません.Spring以外のaopテクノロジーとは独立した、より柔軟で拡張性があり、互換性も優れています.Eclipseに詳しい人は、EclipseにAspectjというプラグインがあることを知っているはずです.このプラグインは、Aspectjのコードを作成してコンパイルするのに便利です.私たちはこの機能をSpringフレームワークと結びつけなければなりません.
まず簡単なSpring mvcのフレームワークを構築することから始め,このフレームワークで断面プログラミングを行います.この単純なフレームワークの流れは、home-servlet->HelloC->helloV
次に、このmvcプロセスの構築手順を簡単に説明します.
1、プロジェクトの作成:dynamic web projectを作成し、名前はTestWebと呼びましょう.
2、web.xmlにSpring Listenerとhome-servletをロードします.
3、home-servletを作成する.xml、コード:
4、webを作成する.HelloCクラス、コード:
5、helloを作成する.jsp、これはどんなコードを使ってもいいです.jspファイルであればいいです.正しいパスに置いてください.ここは/WEB-INF/viewsの下に置いてください.
テストしてみてください.あなたのプロセスは動作するはずです.
6、このプロセスにAopコードを追加します.私たちはwebにいます.HelloC.helloHandlerに強化を加えます.その前に、プロジェクト変換をAspectjにサポートします.右クリック項目選択Aspectj Tools->Convert to Aspectj Project.
7、今はカットにコードを書いて、Aopを作ります.TestAspectクラス.コード:
8、今からプロジェクトを実行して、あなたが/TestWeb/home/helloにアクセスするたびに、あなたのconsoleには「Before say hello!!」があることに気づきました.を行ないます.なぜなら、home-servlet->HelloC->helloC->helloVというプロセスのHelloCのhelloHandler関数の前に、7の簡単な数行のコードである強化を加えたからです.次のことは、Aspectjの文法を熟知することです.このプロジェクトはSpring環境でAopだけでなく、javaプロジェクトでもAopができます.あなたがしなければならないのは
右クリック項目選択Aspectj Tools->Convert to Aspectj Project.
まず簡単なSpring mvcのフレームワークを構築することから始め,このフレームワークで断面プログラミングを行います.この単純なフレームワークの流れは、home-servlet->HelloC->helloV
次に、このmvcプロセスの構築手順を簡単に説明します.
1、プロジェクトの作成:dynamic web projectを作成し、名前はTestWebと呼びましょう.
2、web.xmlにSpring Listenerとhome-servletをロードします.
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>home</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>home</servlet-name>
<url-pattern>/home/*</url-pattern>
</servlet-mapping>
3、home-servletを作成する.xml、コード:
<?xml version="1.0" encoding="UTF-8"?>
<beans
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd"
xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context">
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/"/>
<property name="suffix" value=".jsp"/>
</bean>
<context:component-scan base-package="web"/>
</beans>
4、webを作成する.HelloCクラス、コード:
package web;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class TestC {
@RequestMapping("/hello")
public String helloHandler(Model model) {
return "hello";
}
}
5、helloを作成する.jsp、これはどんなコードを使ってもいいです.jspファイルであればいいです.正しいパスに置いてください.ここは/WEB-INF/viewsの下に置いてください.
テストしてみてください.あなたのプロセスは動作するはずです.
6、このプロセスにAopコードを追加します.私たちはwebにいます.HelloC.helloHandlerに強化を加えます.その前に、プロジェクト変換をAspectjにサポートします.右クリック項目選択Aspectj Tools->Convert to Aspectj Project.
7、今はカットにコードを書いて、Aopを作ります.TestAspectクラス.コード:
package aop;
public aspect TestAspect {
pointcut hello():execution(* web.TestC.helloHandler(..));
before():hello(){
System.out.println("Before say hello!!!");
}
}
8、今からプロジェクトを実行して、あなたが/TestWeb/home/helloにアクセスするたびに、あなたのconsoleには「Before say hello!!」があることに気づきました.を行ないます.なぜなら、home-servlet->HelloC->helloC->helloVというプロセスのHelloCのhelloHandler関数の前に、7の簡単な数行のコードである強化を加えたからです.次のことは、Aspectjの文法を熟知することです.このプロジェクトはSpring環境でAopだけでなく、javaプロジェクトでもAopができます.あなたがしなければならないのは
右クリック項目選択Aspectj Tools->Convert to Aspectj Project.