• 自定义注释@interface


    1.@interface自定义注解
    <1>@interface自定义注解自动继承了java.lang.annotation.Annotation接口,由编译程序自动完成其他细节。
    <2>在定义注解时,不能继承其他的注解或接口。
    <3>使用@interface来声明一个注解,
    1>.每一个方法实际上是声明了一个配置参数,
    2>.方法的名称就是参数的名称,
    3>.返回值类型就是参数的类型,(返回值类型只能是基本类型、Class、String、enum)
    4>.可以通过default来声明参数的默认值
    package com.xsz.common.annotation;
    
    import java.lang.annotation.ElementType;
    import java.lang.annotation.Retention;
    import java.lang.annotation.RetentionPolicy;
    import java.lang.annotation.Target;
    
    import org.apache.poi.hssf.util.HSSFColor;
    
    /**
     * Excel导出项配置
     */
    
    @Retention(RetentionPolicy.RUNTIME)
    @Target({ ElementType.FIELD })
    public @interface ExportConfig {
        /**
         * @return 表头显示名(如:id字段显示为"编号") 默认为字段名
         */
        String value() default "field";
    
        /**
         * @return 单元格宽度 默认-1(自动计算列宽)
         */
        short width() default -1;
    
        /**
         * 将单元格值进行转换后再导出:<br/>
         * 目前支持以下几种场景:<br/>
         * 1. 固定的数值转换为字符串值(如:1代表男,2代表女)<br/>
         * <b>表达式:</b> "s:1=男,2=女"<br/>
         * 
         * 2. 数值对应的值需要查询数据库才能进行映射(实现com.xsz.util.poi.convert.ExportConvert接口)<br/>
         * 
         * @return 默认不启用
         */
        String convert() default "";
    
        /**
         * @return 当前单元格的字体颜色 (默认 HSSFColor.BLACK.index)
         */
        short color() default HSSFColor.BLACK.index;
    
        /**
         * 将单元格的值替换为当前配置的值:<br/>
         * 应用场景: <br/>
         * 密码字段导出为:"******"
         * 
         * @return 默认true
         */
        String replace() default "";
    }
    package com.xsz.system.domain;
    
    import java.io.Serializable;
    import java.util.Date;
    
    import javax.persistence.Column;
    import javax.persistence.GeneratedValue;
    import javax.persistence.Id;
    import javax.persistence.Table;
    
    import com.xsz.common.annotation.ExportConfig;
    
    @Table(name = "t_menu")
    public class Menu implements Serializable {
        private static final long serialVersionUID = 7187628714679791771L;
    
        public static final String TYPE_MENU = "0";
    
        public static final String TYPE_BUTTON = "1";
    
        @Id
        @GeneratedValue(generator = "JDBC")
        @Column(name = "MENU_ID")
        @ExportConfig(value = "编号")
        private Long menuId;
    
        @Column(name = "PARENT_ID")
        private Long parentId;
    
        @Column(name = "MENU_NAME")
        @ExportConfig(value = "名称")
        private String menuName;
    
        @Column(name = "URL")
        @ExportConfig(value = "地址")
        private String url;
    
        @Column(name = "PERMS")
        @ExportConfig(value = "权限标识")
        private String perms;
    
        @Column(name = "ICON")
        @ExportConfig(value = "图标")
        private String icon;
    
        @Column(name = "TYPE")
        @ExportConfig(value = "类型", convert = "s:0=菜单,1=按钮")
        private String type;
    
        @Column(name = "ORDER_NUM")
        private Long orderNum;
    
        @Column(name = "CREATE_TIME")
        @ExportConfig(value = "创建时间", convert = "c:com.xsz.common.util.poi.convert.TimeConvert")
        private Date createTime;
    
        @Column(name = "MODIFY_TIME")
        private Date modifyTime;
    
        /**
         * @return MENU_ID
         */
        public Long getMenuId() {
            return menuId;
        }
    
        /**
         * @param menuId
         */
        public void setMenuId(Long menuId) {
            this.menuId = menuId;
        }
    
        /**
         * @return PARENT_ID
         */
        public Long getParentId() {
            return parentId;
        }
    
        /**
         * @param parentId
         */
        public void setParentId(Long parentId) {
            this.parentId = parentId;
        }
    
        /**
         * @return MENU_NAME
         */
        public String getMenuName() {
            return menuName;
        }
    
        /**
         * @param menuName
         */
        public void setMenuName(String menuName) {
            this.menuName = menuName == null ? "" : menuName.trim();
        }
    
        /**
         * @return URL
         */
        public String getUrl() {
            return url;
        }
    
        /**
         * @param url
         */
        public void setUrl(String url) {
            this.url = url == null ? "" : url.trim();
        }
    
        /**
         * @return PERMS
         */
        public String getPerms() {
            return perms;
        }
    
        /**
         * @param perms
         */
        public void setPerms(String perms) {
            this.perms = perms == null ? "" : perms.trim();
        }
    
        /**
         * @return ICON
         */
        public String getIcon() {
            return icon;
        }
    
        /**
         * @param icon
         */
        public void setIcon(String icon) {
            this.icon = icon == null ? "" : icon.trim();
        }
    
        /**
         * @return TYPE
         */
        public String getType() {
            return type;
        }
    
        /**
         * @param type
         */
        public void setType(String type) {
            this.type = type == null ? "" : type.trim();
        }
    
        /**
         * @return ORDER_NUM
         */
        public Long getOrderNum() {
            return orderNum;
        }
    
        /**
         * @param orderNum
         */
        public void setOrderNum(Long orderNum) {
            this.orderNum = orderNum;
        }
    
        /**
         * @return CREATE_TIME
         */
        public Date getCreateTime() {
            return createTime;
        }
    
        /**
         * @param createTime
         */
        public void setCreateTime(Date createTime) {
            this.createTime = createTime;
        }
    
        /**
         * @return MODIFY_TIME
         */
        public Date getModifyTime() {
            return modifyTime;
        }
    
        /**
         * @param modifyTime
         */
        public void setModifyTime(Date modifyTime) {
            this.modifyTime = modifyTime;
        }
    }
  • 相关阅读:
    迭代器生成器
    elasticsearch系列(五)score
    数据结构(五)串
    数据结构系列(四)栈与队列
    数据结构系列(三)线性表
    数据结构系列(二)算法
    数据结构系列(一)入门
    elasticsearch系列(四)部署
    SpringBoot系列(一)RestTemplate
    基于python的爬虫(一)
  • 原文地址:https://www.cnblogs.com/tszr/p/15901340.html
Copyright © 2020-2023  润新知