动态

Spring AOP 的相关概念

*爱你&永不变心* 提交于 2019-12-03 17:02:55
1.1AOP 概述 AOP:全称是 Aspect Oriented Programming 即:面向切面编程。 简单的说它就是把我们程序重复的代码抽取出来,在需要执行的时候,使用动态代理的技术,在不修改源码的 基础上,对我们的已有方法进行增强。 1.1.2 AOP 的作用及优势 作用: 在程序运行期间,不修改源码对已有方法进行增强。 优势: 减少重复代码 提高开发效率 维护方便 1.1.3 AOP 的实现方式 使用动态代理技术 动态代理 动态代理的特点 字节码随用随创建,随用随加载。 它与静态代理的区别也在于此。因为静态代理是字节码一上来就创建好,并完成加载。 装饰者模式就是静态代理的一种体现。 动态代理常用的有两种方式 基于接口的动态代理 提供者:JDK 官方的 Proxy 类。 要求:被代理类最少实现一个接口。 基于子类的动态代理 提供者:第三方的 CGLib,如果报 asmxxxx 异常,需要导入 asm.jar。 要求:被代理类不能用 final 修饰的类(最终类)。 Spring 中的 AOP 2.1Spring 中 AOP 的细节 2.1.1 说明 我们学习 spring 的 aop,就是通过配置的方式,实现上一章节的功能。 2.1.2 AOP 相关术语 Joinpoint(连接点): 所谓连接点是指那些被拦截到的点。在 spring 中,这些点指的是方法,因为

weui中的picker使用js进行动态绑定数据

别等时光非礼了梦想. 提交于 2019-12-03 16:42:11
解决方案; picker和Select组件是通过input标签绑定,可以先通过input的父级元素移除input标签,重新插入input标签,最后重新初始化picker或Select组件。 <div class="weui-cell"> <div class="weui-cell__hd"><label for="time-format" class="weui-label">性别</label></div> <div class="weui-cell__bd"> <input class="weui-input " id="appl_sex" name="appl_sex" type="text" value=""> </div> </div> <div id="box"> <input type="text" id='camera' value="前置摄像头"/> </div> js代码: $("#appl_sex").picker({ title: "请选择", cols: [ { textAlign: 'center', values: ["1",'2'] } ], onChange: function(p, v, dv) { console.log(p, v, dv); }, onClose: function(p, v, d) { console.log("close"

报表工具中动态参数的灵活运用

房东的猫 提交于 2019-12-03 16:32:42
报表开发过程中,有的时候我们会觉得普通参数很难满足一些业务需求,比如第二个数据集要引用第一个数据集的结果进行计算,动态控制 SQL 的过滤条件,动态列等,如果您遇到了这种情况,可以尝试使用动态参数即 ${参数名} 的方式来达到我们想要的效果。 那么,什么是动态参数呢? 动态参数一般是依赖于普通参数的具有计算能力的参数,在报表中动态参数我们可以看做是一个占位符,在报表运算之前,系统会全面搜索整张报表定义,将所有 ${参数名} 中的参数名替换成参数值即 动态参数表达式的结果。 下面我们举几个例子,看一下 首次展现参数值为空,查询全部数据 实现方法: a. 将数据集中原有的 where 子句部分,用动态参数替换 如下图 更改前 SQL: SELECT 订单. 订单 ID, 订单. 客户 ID, 订单. 订购日期, 订单. 货主地区, 订单. 运货商, 订单. 运货费 FROM 订单 where 订单. 订单 ID >=10254 更改后 SQL: b. 菜单栏中 选择【报表】à 【参数】,新增动态参数, 表达式为:if(bid==null,"",“where 订单. 订单 ID >=”+@bid) 意为:根据参数模板 bid 的参数值是否为空,确定 sql 部分被替换的内容,如下图 注:bid 为参数模板传递的参数名称 c. 其他,设置按照报表常规操作进行开发设计。 2.

[译]Webpack 4 — 神秘的SplitChunksc插件

江枫思渺然 提交于 2019-12-03 12:00:06
原文链接: Webpack 4 — Mysterious SplitChunks Plugin 官方发布了 webpack 4,舍弃了之前的 commonChunkPlugin,增加了 SplitChunksPlugin, 对于这个插件,它的 option 选项有‘initial’、'async'、'all'三个值。我想大多数刚学习 webpack 4 的同学都不能很好的理解这几个值的区别,到底每个选项值意味着什么呢,这篇文章为我们详细解释了这几个值的区别。 这是我的一个粗略尝试,通过一个常见的例子来理解和帮助你使用 SplitChunksPlugin 选项。 作为早期的爱好者,我试图理解代码分割 (Code-Spliting) 背后的魔法。文档说 splitChucnks 接受'initial', 'async', 'all'。我有点困惑,更加提高了我的好奇心。 我深入研究了文档的 Github 历史记录和 WebpackOptions 概要,并发现, “There are 3 values possible ”initial”, ”async” and ”all”. When configured the optimization only selects initial chunks, on-demand chunks or all chunks.” — Github

Violet音乐社区需求分析说明书

别说谁变了你拦得住时间么 提交于 2019-12-03 10:26:07
目录 一、引言 1.1 编写目的 1.2 开发背景 1.3 开发工具 二、项目需求 2.1 角色定义 2.2 模块划分 2.3 功能概述 2.4 数据流图 三、前端页面 四、软件要求 4.1 性能要求 4.2 属性要求 五、人员分工 一、引言 1.1 编写目的 此文档为“Violet”音乐社区开发团队的指导文档。开发人员阅读此文档有助于团队间合作,同时提高软件质量。开发者应仔细阅读此文档,根据文档需求来进行开发,达到预期功能与效果。 1.2 开发背景 音乐是一门艺术,是由有组织的乐音来表达人们情感、反映人类现实生活情感的艺术。现代科技的发展使得人们可以利用网络随时随地的享受音乐,然而在当今互联网却很少有一个以音乐为媒介的社交平台。本开发团队想以“音乐+社交”的形式,开发一款集听歌、交友和讨论为一体的网上社区——“Violet”音乐社区。Violet多指紫罗兰,也可形容羞怯的人,本团队旨在通过此平台增强人们对音乐的交流,同时拉近人与人之间的距离。 1.3 开发工具 前端 后端 开发语言 JavaScript Python 框架 Vue.js Flask 二、项目需求 2.1 角色定义 角色 定义 管理员 可对音乐库进行乐曲的上传和下架,对普通用户进行管理,对用户动态和圈子进行管理。 普通用户 可以搜索音乐并播放并且关注其他用户,可以发布动态和创建圈子。 游客

js动态表格

人盡茶涼 提交于 2019-12-03 10:24:50
用js实现动态增加表格行数。 html: <table> <thead> <tr> <td>学号</td> <td>姓名</td> <td>操作</td> </tr> </thead> <tbody id="body"></tbody> </table> <button onclick="add()">添加一行</button> css: 1 <style> 2 table{ 3 border: solid 1px #000000; 4 } 5 td{ 6 width: 100px; 7 border: solid 1px #000000; 8 } 9 </style> View Code 来源: https://www.cnblogs.com/Fourteen-Y/p/11791014.html

动态代理

好久不见. 提交于 2019-12-03 10:17:04
反射机制:程序运行时自省的能力,通过反射操作类与对象,获取对象的类定义,类声明的属性与方法,调用方法与构造对象,甚至在运行时修改类的定义。 动态代理是一种方便运行时动态构建代理,动态处理代理方法调用机制。 很多繁琐的重复编程,都可以被动态代理机制优雅解决。代理是对调用目标的一个包装,对目标代码不是直接发生,而是通过代理发生, 动态代理,很多情况可以看作是装饰器的一个运用 来源: https://www.cnblogs.com/cloudsu/p/11790635.html