用maven配置项目:
配置文件:
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.zit</groupId>
<artifactId>spring004</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.1.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.9.1</version>
</dependency>
</dependencies>
<build>
<finalName>${project.artifactId}</finalName>
<testSourceDirectory>src/test/java</testSourceDirectory>
<sourceDirectory>src/main/java</sourceDirectory>
<!--处理无法加载资源文件-->
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
<include>**/*.properties</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.xml</include>
<include>**/*.properties</include>
</includes>
</resource>
</resources>
</build>
</project>
src/main/resources/beans.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:annotation-config/>
<bean id="sdao" class="com.zit.dao.StudentDao"/>
<bean id="bdao" class="com.zit.dao.BookDao"/>
<bean id="log" class="com.zit.dao.Log"/>
<aop:config>
<aop:pointcut id="cc" expression="execution(public * com.zit.dao..*.s*(..))"/>
<aop:pointcut id="sd" expression="execution(public * com.zit.dao.StudentDao.de*(..))"/>
<aop:aspect ref="log">
<aop:before method="init" pointcut-ref="cc"/>
<aop:after method="info" pointcut-ref="cc"/>
</aop:aspect>
<aop:aspect ref="log">
<aop:after method="dinfo" pointcut-ref="sd"/>
</aop:aspect>
</aop:config>
</beans>
文件:
com.zit.dao.BookDao.java
package com.zit.dao;
public class BookDao {
public void saveBook(){
System.out.println("保存书籍...");
}
}
com.zit.dao.Log.java
package com.zit.dao;
public class Log {
public void init() {
System.out.println("打开 连接数据库");
}
public void info() {
System.out.println("关闭数据库连接...");
}
public void dinfo() {
System.out.println("删除后,关闭数据库连接...");
}
}
com.zit.Dao.StudentDao.java
package com.zit.dao;
public class StudentDao {
public void save() {
System.out.println("保存学生信息");
/* Log log=new Log();
log.info();*/
}
public void delete() {
System.out.println("删除信息完成");
/* Log log=new Log();
log.dinfo();*/
}
}
测试文件:
test/java/com.Demo.java
package com;
import com.zit.dao.BookDao;
import com.zit.dao.StudentDao;
import com.zit.entitey.Student;
import org.junit.Test;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Demo {
@Test
public void tt() {
ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");
StudentDao sdao = ctx.getBean("sdao", StudentDao.class);
sdao.save();
sdao.delete();
System.out.println("********************************");
BookDao bdao = ctx.getBean("bdao", BookDao.class);
bdao.saveBook();
}
}
完成。。。