自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

学习痕迹

每一篇都是前进路途中留下的痕迹

  • 博客(25)
  • 资源 (1)
  • 收藏
  • 关注

原创 通俗易懂理解依赖注入

控制反转就是将对象提前创建出来并放到一个容器中,以便在使用时可以复用。依赖注入就是将对象的地址赋值给声明的变量,这样我们就可以通过引用变量访问到堆内存中对应对象。

2021-05-13 16:33:24 446 1

原创 深入理解java继承

继承extends:译为扩展、延伸之意。在java中,继承是在面向对象的基础上提出的概念。面向对象讲究的是将同类型事物抽象出来,然后封装成类。类相当于是一种模板,根据这种模板产生具体的实例对象,而实例对象则负责完成具体的业务逻辑。在类型的抽象过程中,有很多属性和方法是通用的,即很多类都具有相同的部分。所以我们需要将这些相同的部分抽离出来,作为基类,子类只要继承了基类,则自动拥有了那些公共的属性。这样就可以减少代码重复,使代码更加简洁,逻辑更加清晰。java中所有的类都默认继承自Object类,Obje

2020-05-24 18:24:15 4544 4

原创 换个角度理解封装的意义

封装封装其实就是对复杂事物的一种简化。任何事物随着不断地发展,总是会越来越复杂,体量越来越大,效率越来越低,管理起来越来越困难。这时候就需要进行分类升级,也就是我们所说的抽象,将相同特征的一类事物进行抽象封装。抽象程度越高,封装就越彻底。在计算机领域中,最开始是使用二进制的机器语言进行电脑的控制管理,一串010101的二进制码表示了对计算机的操作指令。十分的复杂且不方便记忆。俗话说,穷则思变,变则通。复杂就需要改变,然后出项了汇编语言,使用人类可以理解的指令来代替机器语言,一条汇编指定可能就表示好多条

2020-05-23 21:29:31 4851 4

原创 EasyExcel导出中单元格合并遇到问题

在项目中需要对各种报表进行excel导出,主要使用了两种方式:esayExcel模板导出,poi手工导出。esayExcel模板导出使用模板导出相对而已比较简单,其过程如下:准备excel模板按照需求设计展示样式,同时填入对应的字段名称。字段的名称和填充的数据相关。如果是填充的集合,则需通过“对象名.属性”的方式进行模板设计。通过模板得到ExcelWriter public static ExcelWriter getExcelWriterWithMergeStrategy(H

2021-05-19 17:21:55 3414 1

原创 mysql对varchar字段进行max操作时排序规则问题

在对mysql中声明为varchar类型字段进行max操作时,默认按照字符大小排序。但是对其他集合运算不影响,如avg、 sum等。如果不能更改字段类型,只能先将字段类型转为数字,然后再进行聚合计算。将varchar转为数字的方式有很多进行 + 0 运算。使用CAST()函数使用CONVERT(value, type)方法...

2021-01-28 14:50:18 667

原创 grafana 源码编译二次开发整合oauth2

背景在已有系统中嵌入grafana仪表盘作数据展示,需要对界面进行二次开发满足风格统一,同时需要对grafana的权限部分进行修改,满足页面进行无缝跳转,同时识别当前用户。安装grafana 依赖于nodejs、go、git等,其安装过程略过。grafana下载后,我选择了v7.0.0 tag分支进行开发。如果是在window上面进行环境搭建,还需要安装GCC环境。这里我使用的是minGW64, 这里要根据操作系统选择安装,我选择安装64位。安装过程可以参考这里遇到的问题go get

2020-06-30 13:14:44 2563

原创 spring bean 生命周期

方法一使用xml方式,指定初始化方法和销毁方法<bean id="car" class="com.spring.cycle.Car" init-method="init" destroy-method="destroy"> <property name="brand" value="BWM"></property></bean>...

2019-09-26 17:12:47 87

原创 maven分布式项目中spring bean未加载问题

maven分布式项目中spring bean未加载问题。spring 在初始化时,默认是扫描启动类所在目录,将所有带有注解的java类进行统一管理。而其他引入模块的bean则不能被导入。通过@ComponentScan注解即可完成其他模块下bean的扫描注入。

2019-07-24 14:58:30 1434

原创 Vue select 绑定动态变量

概述根据后台的数据生成多个select,由于数据的数量不定,所以v-model绑定的变量名也不定。所以通过数据的id进行变量拼接。页面能够成功渲染,但是当进行下拉框的选值时,组件不刷新,选中的结果并没有展示。Code<el-form-item v-for="item in line" :key="item.id" :label="item.lineName"> <el...

2019-04-04 17:43:14 9903 1

原创 springboot 静态目录访问以及下载文件破损

static目录的访问情景项目中需要做一个模板文件下载的功能,可以采用将文件流写入response,然后返回response这种方式。但本次直接使用的a标签,地址指向目标文件路径,从而实现文件下载。问题于是需要访问静态文件,springboot中将静态文件放置在resource下的static中,templates用来存放html页面文件。但访问的时候,直接报404。静态文件访问不到...

2019-03-07 09:41:32 1820

原创 springboot集成kettle, 访问不到ktr文件

背景介绍由于系统需要从sql server 远程数据库抓取数据存储到当前数据库(mysql)中,所以采用了kettle来进行数据抽取。使用spoon图形化工具进行ktr文件的编写。测试通过后,想集成进项目中,然而遇到以下问题:首先,kettle的jar包引入,在一些共有的maven库中找不到相关jar包。所以从spoon客户端中,拷贝出jar包,然后加入本地maven库。主要包括kettle...

2018-10-22 18:50:31 5362 4

原创 关于mysql group by 用法总结

group by 用法select 聚合函数(分组字段) from table group by table.id having ……当sql语句中包含group by 时,select后的字段只能是聚合函数或者group by 后面的分组字段。如果需要条件筛选,则写在having 后面。聚合函数: sql语言中一种特殊的函数,包括SUM, COUNT, MAX, MIN, AVG等。...

2018-08-03 16:54:21 2813 2

原创 spring对象注入失败问题

spring对象注入失败问题描述笔者在编写代码中,希望构建一个工具类,在工具类中需要访问dao层接口操作数据库。于是便想在工具类中注入一个mabatis的mapper接口。代码片段public class LogUtil { @Autowired private LogMapper logMapper; public static final Stri...

2018-07-03 19:29:13 3062 3

原创 java实现文件下载

原理:设置response对象的header以及contentType并获取outputStream,往流中写入数据即可。eg: @RequestMapping(value = "/license/download/{companykey}", method = RequestMethod.GET) public String licenseDownload(@PathVariable("...

2018-04-02 19:51:40 453

原创 Spring中Date处理

问题描述java中的date类型 在接收前台传入的参数时报400错误。时间格式为“yyyy-MM-dd HH:mm:ss”。问题分析由于前端传入的参数默认为String,然后与后台接收的参数不匹配,所以浏览器报400错误。解决方案通过String 变量来接收字符串,然后通过时间转换类DateFormatter进行转换后,得到Date对象。@Contr...

2017-12-02 15:22:42 1091

原创 java 语法层面调优

主要是针对java语法层面的优化使用Clone()方式创建对象采用clone()方式是直接复制当前对象的所有信息,不会调用对象的构造函数。性能得到提升,但是clone()方法是浅克隆,如果对象中有引用对象,则直接将引用复制。避免对boolean进行判断如string.endswith(“a”) == true。在表达式本身就是boolean值结果的时候,避免比较可以使代码执行更快且更整洁。使

2017-10-23 17:29:51 351 3

原创 bootstrap table样式丢失

问题描述:采用bootstrap中的table进行页面布局,然后通过ajax请求数据源,然后动态添加表格内容。添加时,采用的自己拼接字符串,然后追加到表格中。结果发现bootstrap的表格样式没有生效。页面代码: 消费类别 描述 消费数量 消费时间 JS代码:$.ajax({ ty

2017-10-14 11:53:59 5210

原创 AOP实现方法的日志记录,并输出到指定文件

使用AOP对service中的方法进行绑定,实现日志记录,并使用自定义的log4j级别进行日志文件输出。

2017-04-29 15:07:22 2689

原创 log4j自定义级别并分类输出到文件

自定义log4j级别,并按照级别分类输出。

2017-04-29 11:47:52 3123

原创 Mysql 插入集合时,动态生成ID

mysql insert into 集合时,动态产生ID。

2017-03-13 10:05:06 2033

原创 PrintWriter中write与println方法的区别

最近写了一个网络编程的小程序,即服务端与客户端相互发送信息即可。在其中发现了一些问题,就是在往IO流中写数据的问题。其中的write()方法,本身不会写入换行符,如果用write()写入了信息,在另一端如果用readLine()方法。由于读不到换行符,意味中读不到结束标记,然后由于IO流是阻塞式的,所以程序就是一直卡在那里不动了。原因即为缺少回车标识。如果在写入的时候加上“\r\n”,就可以解决这

2017-02-25 16:08:21 11259 9

原创 java 自动装箱遇到的问题

今天在书上看到一段代码,然后……就懵逼了,百度过后终于知道了为什么,分享给大家。package com;public class Test { public static void main(String[] args) { Integer a = 1; Integer b = 2; Integer c = 3; Integer d = 3; Integer

2016-11-28 21:49:23 343

原创 字符串转换为JSON对象,数据精度丢失

今天在项目开发中发现了数据提交后台处理后,精度改变问题。在一阵调试后,发现是JSON转换出了问题。需求是导入一个excel表格,然后显示内容,最后存到数据库中。读入表格时内容显示:![正确数据](http://img.blog.csdn.net/20161112223147341)然而保存后:![错误数据](http://img.blog.csdn.net/20161112223324890)

2016-11-12 22:43:30 8141

原创 easyUI 弹框中点击取消按钮刷新父页面

问题描述:在原页面弹出一个新页面进行处理,当弹出页面数据变更后,父页面随即刷新。难点:取消按钮由easyUI 框架自动添加并处理,只是简单的将弹出框关闭。方法一:通过对页面的查看,然后通过js选择器,找到取消按钮对象的元素,然后对其添加事件,然后对其进行处理。方法二:废弃原有的取消按钮,重新自定义按钮,进行事件处理。由于方法一太过繁琐,实际问题时,采用了方法

2016-09-02 15:26:02 4256

原创 easyUI datagird复选框与行选中分离

问题描述:在easyUI框架中,给数据展示表格添加一个复选框,实现可以逐个勾选功能。首先页面布置如下: 引用js对其进行内容填充:$('#dg').datagrid({ nowrap : true,// 设置为true,当数据长度超出列宽时将会自动截取 striped : true,// 设置为true将交替显示行背景。 url

2016-09-02 14:43:10 776

Git初学资料整理——常见命令介绍

适用于初学者学习git使用。包含Git原理理解,常用命令使用,以及提交冲突的解决实例。

2016-11-28

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除