- 博客(38)
- 收藏
- 关注
原创 go学习之异常记录02: GOLAND项目external libaries 下只有go SDK 没有项目依赖包
问题如下截图:红色标记的那段没有了,这是项目依赖的外部包 。 这直接导致我整个项目里引用外部包的地方全部爆红,但是实际上对应位置上是有它依赖的包的,所以代码能跑起来。但是,一堆红谁受得了?得想办法分析:代码能跑起来说明代码是没问题的,是环境的问题只有这个项目是这样,其他项目还是有GOPATH依赖的,于是知道这是单个项目的问题,不是编译器的问题。所以,这大概率是单个项目的配置有问题。尝试解决办法就是 删除 项目配置文件 .idea ,重启项目。 嗯,解决了!...
2020-05-30 10:12:42 3949 4
原创 go学习之异常记录01:panic: reflect: call of reflect.Value.NumField on int Value
代码:package mainimport ( "fmt" "reflect" "strconv" "strings")type Inner struct { Email string `validate:"email"`}type Outer struct { Age int `validate:"eq=15"` Inner Inner}func val...
2020-04-29 18:14:00 8372
原创 go web 开发 学习笔记之gin框架学习
gin入门index.html<html> <head> <title> index.html </title> </head> <body> {{.title}} </body></html>main.gopackage mainimport ( "net....
2020-03-23 23:36:43 799 1
原创 go web开发学习笔记之模板学习
入门demo1. 定义模板hello.html<html><head><title>模板文件</title></head><body>hello {{.}}</body></html>2. 解析模板3. 渲染模板package mainimport( "fmt" "n...
2020-03-21 22:06:28 343
原创 js学习笔记
dom的概念document就是html页面的文档对象,在控制台输出的样子就是这样获取元素的方法 document.getElementById("id的值") document.getElementsByTagName("标签的名字") document.getElementsByName("标签的name值") document.getElementsByClassName("标...
2020-03-17 23:27:13 124
原创 go 学习笔记之 VSCode插件安装
go 学习笔记-安装工具包问题原因解决办法问题在使用 VSCode的时候,需要我们去安装一些帮助我们编辑代码的插件,但是这些插件的安装,很磨人啊…先说正常的安装流程:我们打开VSCode后,按快捷键:Ctrl+Shift+P可以看到如下界面:输入 go:install,选择 Go:Install/Update Tools会出现这个样子,我们全部选中,然后回车,就会自动帮我们安装哪些...
2020-03-14 21:02:40 307
原创 面试总结之java基础
面向对象的特征:封装、继承和多态封装:将数据和操作封装在数据类型内部,只暴露出一定的接口使外界与之交互,外界不需要知道内部的实现细节继承:以一个类为基础,并可以添加新的属性或方法来创建一个新类。私有属性无法继承,构造方法无法继承多态:指程序中一个变量引用所指向的具体类型和这个变量引用所调用的方法在程序编写时并不确定,只有在程序运行时才能确定。即一个引用变量具体指向哪个类的对象实例以及该引...
2019-08-31 23:12:24 129
原创 学习笔记:spring容器refresh()过程
尚硅谷和b站都是好地方,大家没事多去去。。Spring容器的refresh()【创建刷新】;1、prepareRefresh()刷新前的预处理; 1)、initPropertySources()初始化一些属性设置;子类自定义个性化的属性设置方法; 2)、getEnvironment().validateRequiredProperties();检验属性的合法等 3)、early...
2019-08-29 20:44:36 186
原创 学习笔记:spring事件监听器的使用
使用步骤:开发一个事件,该事件必须是ApplicationEvent及其子类 开发一个事件监听器并注册到容器中 发布事件,监听器就会接收并执行相应的操作举例:事件public class MyEvent extends ApplicationEvent { public MyEvent(Object source) { super(source); ...
2019-08-29 17:13:19 493
原创 学习笔记:分布式锁的三种实现方式
分布式锁的实现方式:基于数据库的实现方式 建一个表,当使用某个方法的时候,向表中插入一条数据,记录该方法名,机器id,线程id,表示获取到锁,当方法执行完毕后删除对应的数据 缺点就是基于数据库,数据库的性能会直接影响分布式系统的性能。而且如果获取到锁的线程如果挂掉了,那么这段数据永远无法删除,其他线程也就无法执行这个方法,因此需要再设置一个过期时间,并且需要定时线程来定期删除过期的数据...
2019-08-27 19:48:33 178
原创 学习笔记:spring的事务原理分析
@EnableTransactionManagement注解给容器中注册了两个组件,一个是:InfrastructureAdvisorAutoCreator,一个是ProxyTransactionManagementConfiguration. InfrastructureAdvisorAutoCreator组件的作用类似于aop原理的AnnotationAwareAspectJAutoProx...
2019-08-26 15:59:49 121
原创 学习笔记:aop原理总结
@EnableAspectJAutoProxy会给容器注册一个AnnotationAwareAspectJAutoProxyCreator组件,而该组件是一个后置处理器BeanPostProcessor; 在spring容器初始化的时候会执行registerBeanPostProcessor()方法,注册所有的后置处理器,包括AnnotationAwareAspectJAutoProxyCrea...
2019-08-26 14:41:47 241
原创 学习笔记:数据库三大范式
1NF:数据字段不可再分2NF:非主键字段必须完全依赖于全部主键,不能只依赖部分主键3NF:非主键字段不存在依赖关系三大范式的目标是消除数据的冗余,l避免插入、更新删除操作的异常。https://www.cnblogs.com/CareySon/archive/2010/02/16/1668803.html...
2019-08-26 10:50:21 112
原创 常见linux命令
用户操作添加用户:useradd -d /home/user -g group user查询用户:cat /etc/passwd |grep user查询用户分组:cat /etc/group |grep user修改用户:usermod -d /home/user2 -g group2 user删除用户:userdel -r user修改用户密码:passwd user...
2019-08-25 22:14:30 104
原创 学习笔记:BeanPostProcessor的功能原理分析,@Autowired、ApplicationContextAware的原理分析
BeanPostProcessor是一个接口,定义了两个方法,postProcessorBeforeInitialization()、postProcessorAfterInitialization()。其中,postProcessorBeforeInitialization()方法在初始化方法执行之前,在构造方法之后执行;postProcessorAfterInitialization(...
2019-08-23 18:06:24 1048
原创 异步任务、定时任务、邮件任务
异步任务使用注解@Async标注异步方法@Async("asyncServiceExecutor") public void secKillOrderAysn(Integer productId) { //从redis的任务列表中取出任务执行 SeckillOrderBO seckillOrderBO = (SeckillOrderBO) redis...
2019-08-22 19:48:45 356
原创 学习笔记:rabbitmq使用
导包: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId> </dependency>...
2019-08-22 16:49:06 143
原创 docker常用小命令
镜像:轻量级、可执行软件包,打包运行环境和基于运行环境开发的软件 容器: 容器数据卷:用于做容器数据的持久化或者数据共享 启动: systemctl start docker 、 service docker start 查看镜像:docker images 搜索镜像:docker search xxx,如 docker search rabbitmq 下载镜像:docker pull...
2019-08-22 16:42:41 133
原创 记一个springboot多模块包扫描问题
记一个springboot多模块包扫描问题问题描述:springboot建立多个模块,当一个模块需要使用另一个模块的服务时,需要注入另一个模块的组件,如下面图中例子:memberservice模块中的MemberServiceApiImpl类需要注入common模块中的RedisService组件,该怎么注入呢?解决:在memberservice模块的启动类上加上RedisServi...
2019-06-30 23:30:30 34245 14
原创 记一个以json格式传参,后台controller参数接收问题
记一个以json格式传参,后台controller参数接收问题问题描述前端向后台以json格式传参时,碰到时间类型,boolean类型的参数该如何接受?解决先解决boolean类型的参数接收问题;我们接收前端传进来的json,一般都是以一个实体类来接收 ,也就是vo。对于boolean类型的参数,只需将接收的实体类对应的属性的类型设置为boolean类型即可,spring框架会自动帮我...
2019-06-27 21:26:36 11638
原创 微服务学习(四)ribbon实现客户端负载均衡
springCloud 微服务学习笔记(四)ribbon实现客户端负载均衡ribbon简介复制项目microservice_consumer-movie为 microservice_consumer-movie-ribbon添加pom依赖添加注解修改controller启动测试使用java代码自定义ribbon配置ribbon简介ribbon是netflix发布的负载均衡器...
2019-06-18 14:30:12 650
原创 微服务学习(三)服务注册与发现
springCloud 微服务学习笔记(三)服务注册与发现创建springboot项目artifactId 是 microservice_discovery-eureka添加pom依赖配置文件更改启动类更改将微服务注册到eureka server上eureka的高可用eureka的用户认证将微服务注册到需要认证的eureka server上1.创建springboot项目...
2019-06-17 19:22:53 857
原创 微服务学习(二)构建服务消费者
springCloud 微服务学习笔记(二)构建服务消费者创建springboot项目添加pom依赖创建实体类编写接口更改配置文件启动类更改1.创建springboot项目 用ideal直接new --> project --> spring Initializr --> next --> 填写groupId,artifact -->next ...
2019-06-17 16:20:10 289
原创 微服务学习(一)构建服务提供者
springCloud 微服务学习笔记(一)构建服务提供者创建springboot项目添加pom依赖创建数据库表并插入数据创建实体类编写接口更改配置文件启动类添加注解1.创建springboot项目 用ideal直接new --> project --> spring Initializr --> next --> 填写groupId,artifa...
2019-06-17 15:56:28 238
原创 字节流和字符流的文件读写操作
1.乱码问题问题:当从本地磁盘里读取.txt文件到控制台时,如果本地文件有中文,则控制台会显示乱码;原因:本地文件是默认采用ANSI编码来进行编码的,而我们的ide采用的编码默认是UTF-8(可以采用System.getProperties().list(System.out),查看file.encoding属性的值得到自己ide默认编码。编码和解码不是同一个自然会有乱码;解决:用no...
2019-05-11 17:44:45 1475
原创 线程池的简单使用
一. 线程池的构造方法public ThreadPoolExecutor( //核心池大小 int corePoolSize, //最大线程数量 int maximumPoolSize, //线程空闲时最大存活时间 long keepAliveTime, //时间单位 TimeUnit unit, //阻塞队列,也...
2018-12-13 22:12:14 174
原创 maven 创建web项目部署发布过程
1. 创建maven项目,选择加入web模块 2. 项目目录如下 3. 选中facets,点击加号添加web模块 4. 改变刚刚创建的web模块,如下图: 5. 点击artifacts,点击中间区域加号,按步骤创建按新的artifacts 6. 配置服务器 7. 点击加号,按步...
2018-12-12 18:40:41 213
原创 idea创建普通web项目部署到发布
目前使用idea最头疼的问题就是web项目的部署发布问题了,趁着现在弄清楚了赶紧记录以下:1. 选择new普通java项目,将如下图中web Application 勾上 2. 选择facets 点加号添加一个web 3. 改变路径为web.xml路径 4. 改变路径为web根目录路径 5.生成artifacts 6. 配置tom...
2018-12-12 16:10:59 1364
原创 学习记录1:远程程序调用
问题1:什么是协议?协议定义:实现网络数据交换而建立的规则、约定或标准就称为网络协议。它最终体现为在网络上传输的数据包的格式。我的理解:协议就是语言,人与人之间的沟通依靠的是语言,而计算机与计算机之间的沟通依靠的就是协议。理解协议是什么最重要的一点就是弄清楚为什么要有协议这个概念,也就是协议的作用是什么?前面已经回答了:协议的作用就是让两台计算机之间能够沟通,能够理解对方传来的信息是什么意...
2018-12-10 20:03:27 329
原创 多线程关于volatile关键字的问题
最近在学习多线程的问题,在学到volatile关键字的时候遇到了一个问题,请有缘人帮我解答...上代码:这是线程类;package cn.whu.javaBasic.Thread.Test18;public class Service { //volatile //此处注释与否结果不一样,符合volatile关键字的用法 private boolean i...
2018-10-28 10:45:20 185
原创 回调函数
多次碰到回调这个概念一直不清楚,今天弄清楚了特别记下来:回调就是类A调用类B的方法,而此类B的方法中反过来调用了类A的方法。举个栗子:interface OneMethod{ void doSomething();}public class A implements OneMethod{ B b = new B(); public void d...
2018-10-18 10:48:56 107
原创 Java基础知识之比较器Comparator
一. 比较器的用法:举例说明:public class ComparatorTest{ public static void main(String args[]){ String[] strs = {"Hello" ,"world","I","love","java"}; Arrays.sort(strs,new Comparator<St..
2018-10-09 20:06:10 214
原创 Java基础知识之Scanner类的用法
Scanner 类的主要方法: nextLine():String 返回读取的字符串 nextInt():Int 返回读取的整形数据 nextDouble():Double 返回读取的double类型数据 其他同型方法以此类推; hasNext():boolean 判断是否还有下一个数据 ...
2018-10-09 13:26:35 432
原创 InputStreamReader与OutputStreamWriter的输入输出时编码问题
用InputStreamReader与OutputStreamWriter从客户端向服务器发送中文数据时,很容易出现乱码,原因是编解码不对应,我们写代码时用OutputStreamWriter向外写数据时没有设置编码格式,系统自动采用默认的编码,eclipse一般为UTF-8。此时需要我们利用InputStreamReader与OutputStreamWriter的构造函数来设置编码集:Input...
2018-03-18 20:18:08 4580
原创 控制台输入中文输出乱码问题解决
开始学编代码时,总是会键盘录入一些数据,然后控制台输出,然而如果键盘录入数据是中文,输出时很可能就是乱码。原因:键盘的输入流格式默认为 GBK,而我们的项目默认编码格式为UTF-8,键盘录入中文时以GBK编码,控制台输出时又以UTF_8解码,这样自然就会产生乱码了。解决办法:鼠标右键 run as -->run configurations -->右侧common --> enc...
2018-03-18 20:07:51 4152
原创 JVM基本原理
一.JVM的内存划分JVM的运行时数据区(Runtime Data Area)内存划分为五个区域,分别是:程序计数器,虚拟机栈,本地方法栈,堆,方法区。现在分别介绍这五个区域的功能与特点: 程序计数器:一个较小的内存空间,可以把程序计数器中的记录数看做是当前线程所执行的字节码的行号指示器。如果线程正在执行的是一个Java 方法,这个计数器记录的是正在执行的虚拟机字节码指令的地址;如果...
2018-03-15 21:19:50 292
原创 多线程
注意: 程序启动运行main()方法时,java虚拟机启动一个进程,主线程main在main()调用的时候创建,随着调用MitiSay的两个对象的start方法,另外两个线程也启动了,这样,整个应用就在多线程下运行。 线程在start()之后并不是立即运行,而是进入就绪状态或者说可运行状态(Runnable)等待运行,具体什么时候运行是由操作系统决定的。 ...
2018-03-15 18:56:53 287
原创 神奇的bug之逗比解决法
java.lang.UnsupportedClassVersionError: Bad version number in .class file 这个异常属于版本异常,我解决它的方法简单粗暴:换新版jdk,换新的tomcat,换新的Myeclipse.这么逗比的解决方法,也只有我能做到了,哈哈哈
2017-11-14 22:27:52 208
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人