博客
关于我
【Spring Aop】练习:注解实现Jdbc的Aop操作
阅读量:329 次
发布时间:2019-03-04

本文共 5188 字,大约阅读时间需要 17 分钟。


文章目录


要求

  • 利用注解形式实现JDBC中的通知,通知方法形式是输出当前的时间~

代码实现

实体类

  • 根据数据库表格封装实例类
package JDBC_AOP.Entry;public class User {    // 字段    private String userId;    private String userName;    private String userStatus;        // 重写toString方法    @Override    public String toString() {        return "User{" +                "userId='" + userId + '\'' +                ", userName='" + userName + '\'' +                ", userStatus='" + userStatus + '\'' +                '}';    }        // set/get 方法    public void setUserId(String userId) {        this.userId = userId;    }    public void setUserName(String userName) {        this.userName = userName;    }    public void setUserStatus(String userStatus) {        this.userStatus = userStatus;    }        public String getUserId() {        return userId;    }    public String getUserName() {        return userName;    }    public String getUserStatus() {        return userStatus;    }}


Dao层

package JDBC_AOP.Dao;import JDBC_AOP.Entry.User;import java.util.List;public interface UserDao {    List
getAll();}
package JDBC_AOP.Dao;import JDBC_AOP.Entry.User;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.jdbc.core.BeanPropertyRowMapper;import org.springframework.jdbc.core.JdbcTemplate;import org.springframework.stereotype.Repository;import java.util.List;@Repositorypublic class UserDaoImpl implements UserDao {    @Autowired    private JdbcTemplate jdbcTemplate;        @Override    public List
getAll() { String sql = "select * from t_user"; List
list = jdbcTemplate.query(sql, new BeanPropertyRowMapper
(User.class)); System.out.println(list.get(1).getUserName()); return list; }}


Service层

package JDBC_AOP.Service;import JDBC_AOP.Entry.User;import java.util.List;public interface UserService {    List
getAll();}
package JDBC_AOP.Service;import JDBC_AOP.Dao.UserDao;import JDBC_AOP.Entry.User;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import java.util.List;@Servicepublic class UserServiceImpl implements UserService {    @Autowired    private UserDao dao;        @Override    public List
getAll() { return dao.getAll(); }}


Aop处理

package JDBC_AOP.Extra;import org.aspectj.lang.annotation.After;import org.aspectj.lang.annotation.Aspect;import org.aspectj.lang.annotation.Before;import org.aspectj.lang.annotation.Pointcut;import org.omg.CORBA.PUBLIC_MEMBER;import org.springframework.stereotype.Component;import java.text.SimpleDateFormat;import java.util.Date;@Aspect@Componentpublic class Extra {    @Pointcut("execution(* JDBC_AOP.Dao.UserDaoImpl.getAll(..))")    public void all() {}        @Before(value = "all()")    public void showTimeBefore() {        Date date = new Date(System.currentTimeMillis());        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-hh HH:mm:ss:SSS");        String str = simpleDateFormat.format(date);        System.out.println(str + " Before");    }        @After(value = "all()")    public void showTimeAfter() {        Date date = new Date(System.currentTimeMillis());        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-hh HH:mm:ss:SSS");        String str = simpleDateFormat.format(date);        System.out.println(str + " After");    }}


XML配置

    


测试类

package JDBC_AOP;import JDBC_AOP.Dao.UserDao;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;public class Test {    @Autowired    private UserDao dao;        public void print() {        dao.getAll();    }        public static void main(String[] args) {        ApplicationContext context = new ClassPathXmlApplicationContext("JDBC_AOP/jdbcaop.xml");        Test test = context.getBean("test", Test.class);        test.print();    }}

转载地址:http://zjeq.baihongyu.com/

你可能感兴趣的文章
php设置cookie,在js中如何获取
查看>>
php设置socket超时时间
查看>>
php设计模式 萨莱 pdf,PHP设计模式 建造者模式
查看>>
PHP设计模式之----观察者模式
查看>>
php设计模式之装饰器模式
查看>>
R&Python Data Science系列:数据处理(5)--字符串函数基于R(一)
查看>>
PHP设计模式:观察者模式
查看>>
php访问mysql(1)
查看>>
php详细学习1
查看>>
php语言优劣
查看>>
PHP语言最优雅的支付SDK扩展包
查看>>
PHP请求https域名发生segment fault段错误
查看>>
PHP读写XML文件
查看>>
PHP读写XML文件
查看>>
R&Python Data Science 系列:数据处理(3)
查看>>
php读取xml 数据库字段超长处理
查看>>
php课程 12-40 抽象类的作用是什么
查看>>
php课程 4-16 数组自定义函数(php数组->桶)
查看>>
PHP调用接口用post方法传送json数据
查看>>
php转化IP为整形
查看>>