码迷,mamicode.com
首页 > 编程语言 > 详细

spring-3-AOP

时间:2019-06-25 22:13:40      阅读:149      评论:0      收藏:0      [点我收藏+]

标签:long   name   相关   rom   判断   问题   int   创建   mic   

自定义注解类
1、定义注解类
package anno;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

//此注解依次可以在类 属性 方法进行
@Target({ElementType.TYPE,ElementType.FIELD,ElementType.METHOD})

//运行时可以查看注解信息
@Retention(RetentionPolicy.RUNTIME)
public @interface Entity {
    //注解的参数
    public String value();
}

  

2、定义dao(模拟映射)

package dao;

import anno.Entity;

@Entity("entity")
public class CityEntity {
    private String id;
    private String name;

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getId() {
        return id;
    }
}

  

3、创建公共生成sql工具类
package util;

import anno.Entity;
import dao.CityEntity;

public class UtilSql {
    public static String builSqlStr(Object object){

        Class clazz = object.getClass( );

        // 先判断是否存在注解
        if(clazz.isAnnotationPresent(Entity.class)){

            //判断是否是自定义Entity注解
            Entity entity = (Entity) clazz.getAnnotation(Entity.class);

            //获取相关注解传的值
            String tableName = entity.value();
            CityEntity cityEntity = (CityEntity) object;
            String sql = "select * from "+tableName+" where id =‘"+cityEntity.getId()+"‘  and name = ‘"+cityEntity.getName()+"‘";
            return sql;
        }
       return "没有获取到相关sql";
    }
}

  

4、测试

package test;

import dao.CityEntity;
import util.UtilSql;

public class Test {
    public static void main(String args[]){
        CityEntity cityEntity = new CityEntity();
        cityEntity.setId("1");
        cityEntity.setName("wjw");
        String sql = UtilSql.builSqlStr(cityEntity);
        System.out.println(sql);
    }
}

  

5、测试结果

技术图片

 

6、先关项目截图

技术图片

 

 
Aop是什么

  与OOP对比,AOP是处理一些横切性问题,这些横切性问题不会影响到主逻辑实现的,但是会散落到代码的各个部分,难以维护。AOP就是把这些问题和主业务逻辑分开,达到与主业务逻辑解耦的目的。

 

 

spring-3-AOP

标签:long   name   相关   rom   判断   问题   int   创建   mic   

原文地址:https://www.cnblogs.com/gnwzj/p/11086945.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!