spring-3-AOP
2020-12-13 03:44
标签:long name 相关 rom 判断 问题 int 创建 mic 2、定义dao(模拟映射) 4、测试 5、测试结果 6、先关项目截图 与OOP对比,AOP是处理一些横切性问题,这些横切性问题不会影响到主逻辑实现的,但是会散落到代码的各个部分,难以维护。AOP就是把这些问题和主业务逻辑分开,达到与主业务逻辑解耦的目的。 spring-3-AOP 标签:long name 相关 rom 判断 问题 int 创建 mic 原文地址:https://www.cnblogs.com/gnwzj/p/11086945.htmlpackage 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();
}
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;
}
}
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";
}
}
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);
}
}
上一篇:Extjs表单控件入门