分类 编程技术 下的文章
- 首页
- 编程技术
Spring Boot Gradle 瘦身打包 thinJar,分离 lib jar 依赖
需求背景:srping boot 2.0+ 打包生产的 fat jar 虽然部署起来很方便,但将所有依赖都打包到一个 jar 包中使得体积也不小(40M+),第一次部署还没问题,之后的更新就很痛苦了,每次发布更新时一般都是自己项目的业务代码发生变化,依赖一般不会变化除非升级或增加了项目依赖。我们期望的场景是每次更新只上传我们自己的业务模块 jar 包,大小可能只有几十K,这就是今天要讲的 t...
Spring Boot 多模块开发全局异常 @RestControllerAdvice 不起作用没效果
环境介绍微酷搭建了多模块框架开发 spring boot,三个模块分别为my-commonmy-frameworkmy-web其中my-web是启动模块,依赖另外两个模块。问题在my-framework模块中编写的全局异常处理类@RestControllerAdvice没有效果,idea编辑器也显示灰色提示没有用到。解决方案对比其它人写的项目好久也没发现哪里有问题,无意中发现spring 官...
利用 DataBindings 实现 GridControl 和编辑控件数据同步
本文代码实现了DevExpress的GridControl控件和编辑控件如dateEdit、LookUpEdit等数据同步功能,利用的是微软的DataBindings属性。//单元格更改后提交到数据源 gridView1.CellValueChanged += (s, e) => { gridView1.PostEditor(); gridView1.UpdateCurrentRow(...
SQL Server:利用 stuff 函数和 for xml path 将多行拼接字符串
有时我们需要在SQL中将多行数据拼接到一起形成一个字符串,可能会以逗号等字符分隔,等等。实例代码以下 SQL 语句将仓库登录表中的仓库代码和仓库名称通过逗号拼接,并使用|将多行的记录连接在一起,最终形成一个字符串。select aa=stuff(( select top 5 '|'+ckcode+','+rtrim(ckmc) from sys_ckdjb for xml path('')...
DevExpress GridControl 常用属性设置
DevExpress是开发Windows窗体应用最牛逼的控件库,其中的GridControl控件功能也是超级强大,这里微酷分享一下GridControl/GridView常用属性。如何让各列头禁止移动?gridView1.OptionsCustomization.AllowColumnMoving = false;如何让各列头禁止排序?gridView1.OptionsCustomizati...
[转]关于 java 中用 get() 和 set() 方法而不用 public 的一点总结
在很多程序中,都喜欢定义一个privata变量,然后为这个私有变量加上get(),set()方法。那为什么不直接定义一个public变量呢?这样做到底有什么好处和意义呢?难道真的仅仅只是为了代码规范?别逗了,不管你信不信,反正我是不信!带着这个问题我在网上寻找答案,真是众说纷纭啊,每个人都能说出一点点道理,但是却都不足以说服我!(所以在这里做一些总结,和大家分享,我们共同学习,共同进步。如果...
Redis 开启远程访问
编辑配置文件# 注释掉bind,或者增加需要监听的 ip,多个用空格分隔。如: bind 127.0.0.1 222.134.77.11 10.200.0.60可能还需要设置密码,因为在 redis 3.2 之后增加了 protected-mode,模式启用时,如果没有设置密码,也无法连接。所以推荐的做法:# 监听多个ip bind 127.0.0.1 222.134.77.11 10.20...
PHPMyAdmin 隐藏指定的 MySQL 数据库
通过 PHPMyAdmin 管理 MySQL 数据库时会发现在数据库列表中有一些 Mysql 自带的系统数据库,平时一般用不到看着挺碍事,下面说下如何隐藏数据库。登录 PHPMyadmin 然后依次打开以下菜单:设置 → 功能 → 数据库找到【隐藏数据库】选项,输入要隐藏的数据库的正则表达式即可,该正则表达式 (PCRE,Perl 兼容) 所匹配的数据库将被隐藏。什么,正则你不会写?没关系,...
基于 ThinkPHP 的 API 项目实战:权限控制
最近开发的移动 App 服务端 api 选用ThinkPHP来写,现需要针对不同用户进行获取数据时的权限控制,其中用户的授权信息由公司的 ERP 系统来维护,这里记录下实现过程。权限数据结构用到的相关表有:功能权限、用户权限、用户组权限,其中后两个表已经合并为一个视图方便查询。获取用户权限保存到 Array为了方便在各控制器中调用,在 common.php 中定义了 getPerms() 方...
Vue UI 控件库收集
本文将持续更新分享微酷收集的基于 Vuejs 的 UI 控件库。PC端element-ui(饿了么出品)http://element.eleme.ioiViewhttps://www.iviewui.comhttps://admin.iviewui.com/ (后台管理模板)https://weapp.iviewui.com (微信小程序 ui 组件)Ant Design Vue(阿里支付宝...
PHP empty(0) 返回 1,即 0 也被当成“空”
研究ThinkPHP源码时发现删除记录的 destory 方法中的判断有点绕,学习了下发现还是因为自己读书太少。先看下面的逻辑:/** * 删除记录 * @access public * @param mixed $data 主键列表 支持闭包查询条件 * @return bool */ public static function destroy($data) { if...
Spring Boot 连接 sqlserver 数据库
现在微酷不管研究什么框架,第一时间是将默认的Mysql连接改成SqlServer,因为公司的ERP都是跑在微软的平台上的。Spring Boot 连接 sqlserver 数据库添加依赖pom.xml 文件添加依赖<!-- https://mvnrepository.com/artifact/com.microsoft.sqlserver/mssql-jdbc --> <d...
DevExpress 购买到期后不再续费授权是否可用?
DevExpress 购买后有效期内下载的产品版本可以永久使用,即使到期不再续费也可以使用,到期后只是不能再更新新版本了。见官方 Licensing 页面:
IDEA properties 配置文件格式化代码时保留空白行设置方法
File | Settings | Editor | Code Style | Properties 勾选:Keep blank lines
Shiro 自定义 Session 过期超时时间+登录后指定时间强制 session 过期
提前说下 Session 过期时间是不发起请求持续一定时间后 session 过期,shiro 默认是 30 分钟。shiro 设置 session 超时时间Shiro 的 Session接口有一个 setTimeout() 方法,登录后,可以用如下方式取得 sessionSecurityUtils.getSubject().getSession().setTimeout(1800000);...