当前位置: 首页 > news >正文

智慧城市网站 seo 优化建议

智慧城市,网站 seo 优化建议,办公电脑租赁,360建筑网的内容百度可以查到吗一.AOP切面公共字段填充 问题分析 如果都按照上述的操作方式来处理这些公共字段, 需要在每一个业务方法中进行操作, 编码相对冗余、繁琐#xff0c;那能不能对于这些公共字段在某个地方统一处理#xff0c;来简化开发呢#xff1f; 答案是可以的#xff0c;我们使用AOP切…一.AOP切面公共字段填充 问题分析 如果都按照上述的操作方式来处理这些公共字段, 需要在每一个业务方法中进行操作, 编码相对冗余、繁琐那能不能对于这些公共字段在某个地方统一处理来简化开发呢 答案是可以的我们使用AOP切面编程实现功能增强来完成公共字段自动填充功能。 实现思路 1. 2 在发生insert操作时 需要为字段赋值 3. 4 在发生insert update操作时 需要为字段赋值 我们为了简便操作就要通过切面这种方式统一处理为这几个字段赋值的操作 比如在持久层Mapper 执行insert, 就可以通过切面拦截这个insert操作 我们还需要设置一个手段, 能够知道当前持久层的操作是否需要为公共字段赋值(一堆连接点怎么找切入点) 我们就是通过 自定义注解 的方式为这个Mapper的方法加入注解, (让这个方法成为切入点) 作为一个标识表示该操作需要赋值 没有标识就不需要 整体实现过程: 技术点枚举、注解、AOP、反射 1) 枚举(创建一个枚举类, 包含insert, update, 加在注解类AutoFill内部,用以区分是需要为四个字段还是两个字段赋值) 2). 自定义注解 AutoFill用于标识需要进行公共字段自动填充的方法 3). 自定义切面类 AutoFillAspect统一拦截加入了 AutoFill 注解的方法通过反射为公共字段赋值 在内部使用反射机制完成赋值 //根据当前不同的操作类型为对应的属性通过反射来赋值if(operationType OperationType.INSERT){//为4个公共字段赋值try {Method setCreateTime entity.getClass().getDeclaredMethod(AutoFillConstant.SET_CREATE_TIME, LocalDateTime.class);Method setCreateUser entity.getClass().getDeclaredMethod(AutoFillConstant.SET_CREATE_USER, Long.class);Method setUpdateTime entity.getClass().getDeclaredMethod(AutoFillConstant.SET_UPDATE_TIME, LocalDateTime.class);Method setUpdateUser entity.getClass().getDeclaredMethod(AutoFillConstant.SET_UPDATE_USER, Long.class);//通过反射为对象属性赋值setCreateTime.invoke(entity,now);setCreateUser.invoke(entity,currentId);setUpdateTime.invoke(entity,now);setUpdateUser.invoke(entity,currentId);} catch (Exception e) {e.printStackTrace();}}else if(operationType OperationType.UPDATE){//为2个公共字段赋值try {Method setUpdateTime entity.getClass().getDeclaredMethod(AutoFillConstant.SET_UPDATE_TIME, LocalDateTime.class);Method setUpdateUser entity.getClass().getDeclaredMethod(AutoFillConstant.SET_UPDATE_USER, Long.class);//通过反射为对象属性赋值setUpdateTime.invoke(entity,now);setUpdateUser.invoke(entity,currentId);} catch (Exception e) {e.printStackTrace();}} 4). 在 Mapper 的方法上加入 AutoFill 注解 二. 阿里云文件上传  因为在新增菜品时需要上传菜品对应的图片(文件)包括后绪其它功能也会使用到文件上传故要实现通用的文件上传接口。 文件上传是指将本地图片、视频、音频等文件上传到服务器上可以供其他用户浏览或下载的过程。文件上传在项目中应用非常广泛我们经常发抖音、发朋友圈都用到了文件上传功能。 实现文件上传服务需要有存储的支持那么我们的解决方案将以下几种 直接将图片保存到服务的硬盘springmvc中的文件上传 优点开发便捷成本低缺点扩容困难使用分布式文件系统进行存储 优点容易实现扩容缺点开发复杂度稍大有成熟的产品可以使用比如FastDFS,MinIO使用第三方的存储服务例如OSS 优点开发简单拥有强大功能免维护缺点付费 在本项目选用阿里云的OSS服务进行文件存储。前面课程已学习过阿里云OSS,不再赘述 实现步骤: 1). 定义OSS相关配置 2). 读取OSS配置 配置属性类  加载yml文件  完成赋值 3). 生成OSS工具类对象 项目启动时就可以加载下面这个配置类 启动程序 自动加载 其中AliOssUtil类 Data AllArgsConstructor Slf4j public class AliOssUtil {private String endpoint;private String accessKeyId;private String accessKeySecret;private String bucketName;/*** 文件上传** param bytes* param objectName* return*/public String upload(byte[] bytes, String objectName) {// 创建OSSClient实例。OSS ossClient new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);try {// 创建PutObject请求。ossClient.putObject(bucketName, objectName, new ByteArrayInputStream(bytes));} catch (OSSException oe) {///} catch (ClientException ce) {} finally {if (ossClient ! null) {ossClient.shutdown();}}//文件访问路径规则 https://BucketName.Endpoint/ObjectNameStringBuilder stringBuilder new StringBuilder(https://);stringBuilder.append(bucketName).append(.).append(endpoint).append(/).append(objectName);log.info(文件上传到:{}, stringBuilder.toString());return stringBuilder.toString();} } 4). 定义文件上传接口 RestController RequestMapping(/admin/common) public class CommonController {Autowiredprivate AliOssUtil aliOssUtil;/*** 文件上传*/PostMapping(/upload)ApiOperation(文件上传)public ResultString upload(MultipartFile file){log.info(文件上传{},file);try {//原始文件名String originalFilename file.getOriginalFilename();//截取原始文件名的后缀 dfdfdf.pngString extension originalFilename.substring(originalFilename.lastIndexOf(.));//构造新文件名称String objectName UUID.randomUUID().toString() extension;//文件的请求路径String filePath aliOssUtil.upload(file.getBytes(), objectName);return Result.success(filePath);} catch (IOException e) {log.error(文件上传失败{}, e);}return Result.error(MessageConstant.UPLOAD_FAILED);} }
http://www.dnsts.com.cn/news/135799.html

相关文章:

  • 设计师需要了解的网站做网站实名认证总是失败怎么回事
  • 台州市住房和城乡建设局网站网上推广平台 怎么入手
  • 西安企业网站主题 wordpress
  • 自建房外观设计网站推荐注册工作室流程及费用
  • 重庆微信开发网站建设北京短视频拍摄
  • 怎么做一个电商网站吗网站设计怎么设计学生作业
  • 情人节给女朋友做网站建筑工程施工合同范本
  • 网站系统有哪些python 做网站 数据库
  • 济南网站制作哪家最好做ppt的图片素材网站有哪些
  • 网站建设交流成都做小程序的公司
  • 南昌网站设计企业自己如何建一个网站
  • 做 视频在线观看网站内推网
  • 网站支持asp创意产品设计大赛
  • 网站建设图片上传网络营销的具体措施
  • 国内优秀设计网站wordpress 自定义feed
  • 如何查看网站备案号互联网公司排名去哪里看
  • 国内十大网站建设公司排名广州互联网公司排行榜
  • 如何整合网站天宁网站建设
  • 长春建设工程管理中心网站淮北论坛网官网
  • 公司网站经典案例东莞中英文网站建设
  • 青岛网站设计推广类似百科式的网站建设
  • dede+营销型网站什么是网站的空间
  • 怎么在虚拟空间做两个网站自己怎么制作公众号
  • 谷歌不收录网站电子商务网站管理系统
  • 建设银行网站 查余额查询天蓝色系网站设计
  • 网站开发的后台开发工具点金wordpress主题网
  • 阿里巴巴网站域名注册wordpress商城中文
  • 专门做肥料外贸的网站微信公众号里的小网站怎么做的
  • html网站首页图片切换天元建设集团有限公司 天眼查
  • 洛阳营销型网站建设网站开发后未付维护费