Spring中对消息机制的使用,我们首先使用继承类的方法完成
通过使用idea工具下的Maven聚合项目方式来编写的案例
项目整体架构
父项目的pom.xml中定义了所有的包
4.0.0 com.zxf SpringProjectpom 1.0-SNAPSHOT Spring-web1 Spring-test2 4.12 3.2.8 5.1.32 1.2 3.1.0 2.0 1.2.17 4.1.6.RELEASE 4.1.6.RELEASE 4.1.6.RELEASE 4.1.6.RELEASE 4.1.6.RELEASE 4.1.6.RELEASE 4.1.6.RELEASE 4.1.6.RELEASE 4.1.6.RELEASE 4.1.6.RELEASE 4.1.6.RELEASE 4.1.6.RELEASE 4.1.6.RELEASE 4.1.6.RELEASE 4.1.6.RELEASE 4.1.6.RELEASE 4.1.6.RELEASE 4.1.6.RELEASE 4.1.6.RELEASE 4.1.6.RELEASE 1.1.3 3.3.12.2.2 3.17.1-GA 1.2.3 1.1.2 1.0 1.7.4junit junit${junit.version} org.mybatis mybatis${mybatis.version} mysql mysql-connector-java${mysql.version} jstl jstl${jstl.version} javax.servlet javax.servlet-api${servlet.version} provided javax.servlet jsp-api${jsp.version} log4j log4j${log4j.version} org.springframework spring-aop${spring-aop.version} org.springframework spring-aspects${spring-aspects.version} org.springframework spring-beans${spring-beans.version} org.springframework spring-context${spring-context.version} org.springframework spring-context-support${spring-context-support.version} org.springframework spring-core${spring-core.version} org.springframework spring-expression${spring-expression.version} org.springframework spring-instrument${spring-instrument.version} org.springframework spring-instrument-tomcat${spring-instrument-tomcat.version} org.springframework spring-jdbc${spring-jdbc.version} org.springframework spring-jms${spring-jms.version} org.springframework spring-messaging${spring-messaging.version} org.springframework spring-orm${spring-orm.version} org.springframework spring-oxm${spring-oxm.version} org.springframework spring-test${spring-test.version} test org.springframework spring-tx${spring-tx.version} org.springframework spring-web${spring-web.version} org.springframework spring-webmvc${spring-webmvc.version} org.springframework spring-webmvc-portlet${spring-webmvc-portlet.version} org.springframework spring-websocket${spring-websocket.version} commons-logging commons-logging${commons-logging.version} asm asm${asm.version} cglib cglib${cglib.version} org.javassist javassist${javassist.version} org.mybatis mybatis-spring${mybatis-spring.version} aopalliance aopalliance${aopalliance.version} org.aspectj aspectjweaver${aspectjweaver.version} src/main/java ***.xml **/*.properties org.apache.tomcat.maven tomcat7-maven-plugin/ 9090
因为我们只是了AOP切面技术完成该案例,所有不需要完全导入父项目的JAR包。
在Spring-test2下的pom.xml文件内容如下
SpringProject com.zxf 1.0-SNAPSHOT 4.0.0 Spring-test2junit junitorg.springframework spring-aoporg.springframework spring-aspectsorg.springframework spring-beansorg.springframework spring-contextorg.springframework spring-coreorg.springframework spring-expressionorg.springframework spring-txcommons-logging commons-loggingaopalliance aopallianceorg.aspectj aspectjweaver
在dome包中创建2个简单的类,为了之后调用该类下的方法来为消息机制做准备
package com.zxf.demo;
public class Demo1 {
public void demo1(){
System.out.println("demo1");
}
public void demo2(){
System.out.println("demo2");
}
public void demo3(){
System.out.println("demo3");
}
}
package com.zxf.demo;
public class Demo2 {
public void f(){
System.out.println("f()");
}
}
编写消息机制,本案例通过继承类放是完成
package com.zxf.advice;
import org.springframework.aop.AfterReturningAdvice;
import java.lang.reflect.Method;
public class MyAfterAdvice implements AfterReturningAdvice {
public void afterReturning(Object o, Method method, Object[] objects, Object o1) throws Throwable {
System.out.println("执行后发出的通知...");
}
}
package com.zxf.advice;
import org.springframework.aop.MethodBeforeAdvice;
import java.lang.reflect.Method;
public class MyBeforeAdvice implements MethodBeforeAdvice {
public void before(Method method, Object[] objects, Object o) throws Throwable {
System.out.println("执行前发出的通知。。");
}
}
下面来完成Spring核心配置文件的编写
applicationContext.mxl
最后一个junit的方式测试类
package com.zxf;
import com.zxf.demo.Demo1;
import com.zxf.demo.Demo2;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Test1 {
@Test
public void test1(){
ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");
Demo1 d_1 = ac.getBean("demo1", Demo1.class);
d_1.demo1();
d_1.demo2();
d_1.demo3();
Demo2 d_2 = ac.getBean("demo2", Demo2.class);
d_2.f();
}
}
运行结果



