- 博客(35)
- 收藏
- 关注
原创 ASP .NET Core 配置框架
在很久以前,还是单服务器的时候,而且服务器还部署在我们自己的服务器上,我对配置框架基本不怎么了解,因为配置都是定死的,基本上很难有变动,如今在公司开发的项目是微服务的,有很多的服务器,而且支持用户自己去写url,port这种配置,因此熟悉了一下.Net core的配置框架,看看怎么样可以灵活的部署项目。读取配置的功能主要用.Net Core写好的实现就可以了。using System.Collections.Generic;namespace Microsoft.Extension...
2021-08-23 23:43:47 296
原创 webpack初探
为什么需要前端打包?在很久以前,服务端渲染html的时代,用户输入了url点击回车,服务器解析url找到对应的控制器,动态的渲染好html返回给前端,然后前端解析这个html去拿js,css等资源,这个在以前用户量小,操作简单的时代是可以的,如今网页的功能五花八门,各种新样式,大型的高清图片,一天十几万上百万的访问量,如果在和以前一样以一个个的http请求去获取原始的js,css可能就顶不住了,一个页面连接100个javascript也不是不可能了,一个图片好几兆,一个来个100张也不是不可能了,这个时
2021-03-22 09:55:38 123
原创 c# 委托浅析
委托 当需要把方法传递给其他方法时,就需要用到委托,委托本身是一个继承了多播委托的类。那么为何需要传递一个方法? 方法就是参数,逻辑,返回值,如果我们要编写一个通用的集合,插入可以编写,但是查找,删除,修改,排序这些方法如果想要写的灵活,就需要支持用户自己编写的代码,支持用户以对象的某一个属性就行查找删除修改。比如说下面的代码。static void Main(string[] args){ List<Student> studentList = new...
2021-02-18 22:21:59 178
原创 前端双向绑定的简单实现
有关于图形化的编程,我们往往会采用MVVM的模式来进行编程,将页面抽象成数据可以让编程变得更好把握,网页前端也是如此,频繁的dom操作势必造成逻辑上的混乱,当项目特别庞大的时候,维护和开发就会变得非常困难,因此,我们程序员只要修改和页面UI绑定的...
2020-07-15 11:30:35 624
原创 LINQ SelectMany cannot be inferred from the usage. Try specifying the type arguments explicitly.
在linqPad中使用了SelectMany结果报错无法从用法推断。尝试显式指定类型参数。原因就是类型不匹配,SelectMany需要的是一个List,list.SelectMany(p=>p)会出错,因为p是一条数据,将数组中带有数组的数据进行拼凑聚合。SelectMany<TSource,TResult>(IEnumerable<TSource>, Func<TSource,IEnumerable<TResult>>)比如数据是这样的情.
2020-07-07 12:20:54 928
原创 安卓压缩图片并上传到.Net core服务器
在安卓开发中有一个非常常用的功能就是上传图片了,但往往图片较大,而安卓屏幕较小,不需要过高的分辨率,我们需要压缩一下在发送到服务器这样可以减少服务器的存储压力和减少网络的使用。下面是服务端的代码就是要获取到一个IFormFile对象就行了,这样就能或得到流,然后我们通过流写到服务器所在的机器硬盘里就可以了。文件名我们用随机数生成就可以了。using System;using Syste...
2020-03-24 11:28:49 661
原创 .net core mvc登录验证
本文仅仅是能够告诉读者怎么用,什么效果,不包含原理讲解。在java学习中,登录往往是通过cookie,session,过滤器这样的模式完成的,.net core中登录模块完成了非常好的封装,来提供登录校验的这种能力,但是封装太好往往会看不懂,做不出来,本篇文章不讨论内部细节,以一个项目的模式来看看在Visual Studio中如何去使用这个写好的框架。打开visual studio开始项目...
2019-12-27 11:57:53 3318
原创 c# Entity Framework初探 (sql server)
ADO .NET Entity Framework是对象-关系映射架构,提供ORM的功能。首先我们在SQL Server中添加一个表CREATE TABLE [dbo].[Student]( [Uid] [int] IDENTITY(1,1) NOT NULL, [Name] [varchar](20) NOT NULL, [TeaUid] [int] NOT NULL, [No...
2019-12-25 10:14:14 1747 1
原创 C# 自己实现IEnumerable接口来实现foreach遍历
实现了IEnumerable接口的集合才可以使用foreach如何进行foreach是通过IENumerable下的GetEnumerable方法来实现的。这个方法需要一个IEnumerator对象这个对象的这些方法就决定了怎么样去遍历你定义的集合如下图是自己定义的LinkedList需要自己去实现下面这个方法。I IEnumerator IEnumerable...
2019-12-12 16:38:57 2243
原创 NIO学习笔记
一直不太明白NIO,找了个视频学习了一下,这里做个笔记同时分享出来。https://www.bilibili.com/video/av57390351?from=search&seid=2783466173871972451对于java来说并不能进行网卡驱动,java能读到来自网络的数据本质上是操作系统读到了网络上的数据然后放到缓存之后,发一条消息来通知java去取,所以java是...
2019-08-23 13:52:46 112
原创 B树
https://www.bilibili.com/video/av36069871?from=search&seid=11071313654867248772我是根据这个视频来的。为何要用到b树,原因是当数据量特别巨大时(操作系统的文件系统,数据库的索引),普通的搜索二叉树会导致树的深度非常的深,而b树是多路查找树,一个节点中有多个关键字(就是你需要的有效信息),这样可以减少树的深度从...
2019-08-21 12:37:02 307
原创 异步servlet
Tomcat分配的servlet线程是非常消耗资源的,如果处理十分复杂的逻辑业务会导致系统分配servlet线程迟迟不能回归到tomcat线程队列之中,造成性能下降,异步servlet的主要目的是为了让tomcat分配的工作线程早点回收,而相应可以延后返回,因此采用异步servlet并没有加快响应的返回速度,只是让tomcat可以同时处理更多的请求。按照传统的servlet的走法应该如下图...
2019-06-29 20:40:10 370
原创 Cookie讲解
无状态的请求响应式行为,无法关联来自同一客户端的多个请求,当然也无法确定这些请求之间的共享数据。从服务端的角度来说,当用户的Web浏览器打开第一个链接到服务器的套接字时请求就开始了,直到服务器返回最后一个数据包关闭连接时,请求结束。ip地址或许是一个好的想法,但是NAT并不可靠,以大学校园来说,学生们使用着相同的ip,而真实的ip隐藏在NAT路由之后,因此如何辨别请求是否来自同一客户端便有了难...
2019-06-29 20:36:17 774
原创 JSON读取值
开发中有个需求就是从json字符串中读取值,用的阿里巴巴的那个 <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.28</version> &l...
2019-05-24 10:36:39 1054
原创 EasyPoi来为一个单元格设置属性
easyPoi本来是挺好用的,和一个java实体类关联,操控实体数组就能写出来一个Excel文件,但在实际用途中我们需要为一些特殊的单元格做一些调整,让人看的舒服一些,也更加突出。要达到这种效果。先加上maven <!--poi--> <dependency> <groupId>cn.afterturn</groupId&g...
2019-05-23 14:56:59 12261
原创 OkHttp3忽略所有证书
做了个工具,用到了okhttp3,利用https访问一些资源结果报错SSLHandShakeException,查了查最后给解决了,这里不讨论https,网上好不容易弄好的,这里分享一下,网上大部分是安卓的,我这里就是利用的java,做个笔记解决因为证书问题而无法访问。 就是在new OkHttpClient okHttpClient;的时候加些自定义证书,写一些代码在okH...
2019-05-05 10:42:15 2303
转载 java泛型父类获取子类传递泛型
abstract class BaseDao<T> { public BaseDao() { Type t = getClass().getGenericSuperclass(); ParameterizedType p = (ParameterizedType) t ; Class<T> c = (Class<...
2019-03-04 17:57:25 3436
原创 基于CXF——rest的webService
在开发过程中,我们可能会需要天气,电话号码等信息,然而这些信息我们的数据库中没有,而且这也并不是我们项目所侧重的地方,天气信息自然气象局有,电话信息自然通信公司有,那么如何才能得到这些数据呢?WebService是一种很好的解决方案,它是通过将自己写好的接口外放而让别人来调用接口的方法,整体而言,类似于RMI,但它有一些约束和特点。WebService是跨平台的,也就是不限制语言,所以这就决定...
2019-02-16 17:48:32 407
原创 HashMap初探
在java的开发之中,我们经常会用到一个类,它就是HashMap,用来存储带有键值关系的数据,其中键是不相同的,值可以相同。那么HashMap中到底放的是什么数据结构呢?我们打开源码进行查看。发现了放的是Node<K,V>节点。 static class Node<K,V> implements Map.Entry<K,V> {...
2019-01-24 17:42:17 128
原创 职责链设计模式
在日常的生活中,有如下情况,你提出了借钱的请求,这个请求需要处理,200块以下你的同学就能帮你处理,200以上500一下你的好友能够帮你处理,500以上你的父母帮你处理,50000以上银行帮你处理。这有四个对象,他们都有一个共同的方法,就是借钱给你。这时你可能会有4个if - else语句来解决你的需求,然而在日常的开发生活中,对象不见得一定就是这4位,比如领导现在也能问你借钱了,那就要添加一个...
2019-01-19 14:43:12 238
原创 java toString方法导致程序栈崩溃原因
在模拟实现ioc过程中,因为想看看循环依赖注入的效果,就重写了toString方法,结果导致了栈崩溃。大家都知道spring容器中的实例可以是单例的,这样有利于管理对象。那么我们要在A中注入B,B中注入C,C中注入A,就会导致循环依赖。public class ClassA { @AutoWired private ClassB b; public ClassB ge...
2019-01-16 17:52:36 1731 1
原创 javassist初探
在平时的编程中,我们往往是写好了类,编译成字节码和分配内存这些工作我们是不必关心的,那么就有了一个疑问,我们能否自己编写字节码文件从而生成对象呢?答案是可以的,千叶兹教授创建了javassist令我们可以动态的生成字节码,也就是通过代码来生成指定的字节码文件,下面做一个演示。1.首先记得导入包。2.public class DynClass { public static void...
2018-12-23 19:46:27 277
原创 计时器的实现
在平时的开发中,我们常常遇到一些这样的需求,比如一天打一个报表,一周打一个报表,一月打一个报表,每天把数据库里几年没登录的用户删除掉等等,我们往往会利用计时器来完成这些业务,所谓的计时器就是能够根据准确时间来完成业务的调用。首先计时器应该是一个线程,它独立于业务,且尽量开销小,因为它存活的时间是可能非常久的。其次业务函数调用的时间不算在计时器计时的时间内,因此调用业务函数应该也是一个线程。频...
2018-12-14 12:02:28 933
原创 从客户端减少服务器压力的方法以及实现(模态框,swing,线程)
用户常常有一个习惯,那就是在手机或电脑卡的时候多次点击,我们知道,通常视图界面是一个单另的线程案例,而网络这边是另一个线程,卡是因为我们的服务器端向客户端发送响应速度慢,而这时候视图界面还是运行态,因此用户的多次点击是一种无效而且对服务器增加压力的一种体现。为什么需要一个进程显示视图,另一个线程做网络传输,这是因为我们不可能发送请求后就令客户端阻塞,而且等待响应回来的时候才唤醒客户端线程,这无疑...
2018-11-23 10:48:20 991
原创 servlet中getServletContext()空指针异常原因以及解决方法
在项目的开发中遇到了在servlet中使用getServletContext空指针的错误,觉得挺有意思的,下面解释一下。网上查了许多都说是重写了init方法造成的,但我并不是,所以稍微研究了一下。首先是为什么servlet里头会有servletContext对象,这是web服务器在实例化你的对象之前调用了init(ServletConfig)方法,所以才会有,如果你重写了init方法并且没有调...
2018-11-17 16:39:30 8342 4
原创 volatile解释
java语言规范第3版中对volatile的定义如下:Java编程语言允许线程访问共享变量,为了确保共享变量能被准确和一致地更新,线程应该确保通过排他锁单独获得这个变量。解释:多线程环境下,读取和更改可能是同时进行,因此具有不确定性,而volatile关键字保证了共享变量的“可见性”。可见性就是当一个线程修改一个共享变量是,另外一个线程能读到这个修改的值。如何能够保证可见性,我们先看下cpu的...
2018-11-11 17:46:28 278 2
原创 Object流在C/S架构中的顺序问题
ObjectInputStream和ObjectOutputStream流在客户端、服务器程序之中是需要注意实例化顺序的,否则阻塞。不能两端同时先实例化ObjectInputStream流案例public class Server { private ObjectInputStream ois = null; private ObjectOutputStream oos = null; ...
2018-11-01 21:14:41 133
原创 IOC,AOP单例模式的实现
前提:对springIOC和DI有一点了解,知道springIOC需要做什么。知道代理的一些知识,明白代理和原对象的关系,知道代理对象调用方法时,可以调用原方法,因此可以在原方法前后添加业务,这是AOP(切面变成)注意:本文采取单例模式,多例模式不讨论。1.IOC(控制反转),指在程序设计中,实例不再由程序开发者来创建,而是通过容器(spring)来创建,令控制权由应用代码转移到了外部容器,控...
2018-10-26 19:05:20 1162
原创 CGLib代理对象解释
我们通常通过代理来实现aop,spring中常常用JDK代理,因为JDK代理要实现接口,灵活性相较于CGLib较低,本文讲解一下cglib代理对象如何实现aop。首先aop是在原对象调用方法时,在调用前后加一些业务,比如打印日志,权限之类的,然而在不改变原类代码的情况下就要给原方法加业务是实现不了的,如果实现了,我们的代码就毫无安全可言了。但我们还是需要这种需求,所以提出了代理。先介绍一下cg...
2018-10-23 19:15:02 1982
原创 js原型空间
类(函数)拥有prototype成员,这个成员被称为“原型对象”,它是实际存在的空间。 function Fun() { }; var fun = new Fun; var func = new Fun;其中Fun函数是方法,也是类,fun和func为Fun类实例出来的对象.。我们看一下他们分别是什么。我们发现fun和func的prototype成员...
2018-10-20 13:07:37 268
原创 分发器的简单应用
引入在servlet中,当容器接收到前端发过来的request时,会通过解析操作来调用GenericServlet中的service(ServletRequset,ServletResponse)方法,当然我们是需要在Web.xml中配置的,那么就可以通过这个xml文件的配置找到这个类并且调用其中的方法,类的信息以及参数的信息通过http协议发送到服务器端。但一般是直接使用了httpServle...
2018-10-14 22:38:03 2045 2
原创 Java的xml解析小工具
xml解析小工具(java)对于java来解析xml文件在许许多多的工具之中都有涉及,比如hibernate就需要用户通过xml来建立表和java对象之间的映射关系,这确实很常用。我们常常把键值对用properties来处理,而有层次结构的往往可以使用xml来进行记录。下面看一下jdk自带的api是如何解析xml的吧:这是Student.xml文件在src目录下<hzy> ...
2018-09-28 21:57:38 3236 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人