Maven+Spring文件架构
主要描述验证注解和面向切面
1、pom.xml文件导入下载导入相应的包
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.wbzck</groupId>
<artifactId>MavenSpring</artifactId>
<version>0.0.1-SNAPSHOT</version>
<properties>
<!-- 版本可以自己选择 -->
<spring.version>4.2.4.RELEASE</spring.version>
</properties>
<dependencies>
<!--
content
beans
core
expression
aop
tx
aspectj
-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.8.9</version>
</dependency>
</dependencies>
</project>
2、applicationContext.xml
<?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/context http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd">
<!-- 开启注解 -->
<context:component-scan base-package="com.wbzkc"/>
<!-- 开启aop注解 -->
<aop:aspectj-autoproxy/>
</beans>
3、Sleapable接口
package com.wbzkc.service;
public interface Sleepable {
void sleep();
}
4、Human实现类
package com.wbzkc.service.impl;
import org.springframework.stereotype.Service;
import com.wbzkc.service.Sleepable;
@Service("human")
public class Human implements Sleepable{
@Override
public void sleep() {
System.out.println("打呼噜到天亮");
}
}
5、测试类HumanTest.java
package com.wbzkc.test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.wbzkc.service.Sleepable;
public class HumanTest {
public static void main(String[] args) {
ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
Sleepable human = (Sleepable) ctx.getBean("human");
human.sleep();
}
}
6、结果
7、面向切面
编写一个切面HumanHelper.java
@Component("humanHelper")
@Aspect
public class HumanHelper {
@Pointcut("execution(* com.wbzkc.service.impl..*.*(..))")
public void pointCut(){
}
@Before("pointCut()")
public void sleepBefore(){
System.out.println("洗洗脸漱口");
}
@AfterReturning("pointCut()")
public void wakeUp(){
System.out.println("抽口烟");
}
}
8、结果
同样是在HumanTest.java下测试