前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基于注解和AOP方式实现简单的学生信息管理

基于注解和AOP方式实现简单的学生信息管理

作者头像
天道Vax的时间宝藏
发布2021-08-11 10:51:18
3830
发布2021-08-11 10:51:18
举报
文章被收录于专栏:用户5305560的专栏

实验内容:

  1. 采用注解的方式完成学生信息的查询和录入操作
  2. 基于bean的配置和基于annotation的装配方式
  3. 基于AOP完成日志输出。

实验步骤:

  1. 在eclipse下创建项目stuManagement,目录结构:

2. 添加.jar包

3. 在src下创建com.xxx.po.Student接口,添加selectStu()、insertStu()方法

4. 在src下创建com.xxx.po.CollegeStudent类,实现Student接口,包含属性:String类型stuNo,stuName和score(Integer)

5. 在src下创建com.xxx.aspect.LogAspect切面,定义环绕通知myAround()。

6. 在src下创建applicationContext.xml文件

7. 在src下创建com.xxx.test.StuTest类,调用selectStu()、insertStu()方法。

代码目录:

代码语言:javascript
复制
//Student.java
package com.xzk.po;

public interface Student {
	public void insertUser();
	public void selectUser();
}
//CollegeStudent.java
package com.xzk.po;

import org.springframework.stereotype.Repository;

@Repository("student")
public class CollegeStudent implements Student {
		private String stuNo;
		private String stuName;
		private Integer score;
		public void insertUser() {
			System.out.println("添加用户成功!!!");
		}
		public void selectUser() {
			System.out.println("查找用户成功!!!!");
		}
}
//LosAspect.java
package com.xzk.aspect;

import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.stereotype.Component;

@Aspect
@Component
public class LosAspect {
	@Pointcut("execution(* com.xzk.po.*.*(..))")
	private void myPointCut(){}
	
	@Around("myPointCut()")
	public Object myAround(ProceedingJoinPoint proceedingJoinPoint) 
            throws Throwable {
		// 开始
		System.out.println("环绕开始:执行目标方法之前,模拟开启事务...");
		// 执行当前目标方法
		Object obj = proceedingJoinPoint.proceed();
		// 结束
		System.out.println("环绕结束:执行目标方法之后,模拟关闭事务...");
		return obj;
	}
}
//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:aop="http://www.springframework.org/schema/aop"
  xmlns:context="http://www.springframework.org/schema/context"
  xsi:schemaLocation="http://www.springframework.org/schema/beans 
  http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
  http://www.springframework.org/schema/aop 
  http://www.springframework.org/schema/aop/spring-aop-4.3.xsd
  http://www.springframework.org/schema/context 
  http://www.springframework.org/schema/context/spring-context-4.3.xsd">
      <!-- 指定需要扫描的包,使注解生效 -->
      <context:component-scan base-package="com.xzk" />
      <!-- 启动基于注解的声明式AspectJ支持 -->
      <aop:aspectj-autoproxy />
</beans>
//StuTest.java
package com.xzk.test;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.xzk.po.Student;

public class StuTest {
	public static void main(String args[]) {
		String xmlPath = "applicationContext.xml";
		ApplicationContext applicationContext = 
                 new ClassPathXmlApplicationContext(xmlPath);
		Student student = (Student) applicationContext.getBean("student");
		System.out.println("徐振凯的实验输出:");
		student.insertUser();
		student.selectUser();
	}
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/06/04 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 实验内容:
  • 实验步骤:
  • 代码目录:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档