自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

cjのice_bear

一切油于兴趣

  • 博客(37)
  • 收藏
  • 关注

原创 用rocketMQ写文件传输有意义吗?

用rocketMQ写文件传输有意义吗?我不明白为什么会有人考虑用消息队列写文件同步!!!!?rt,我也不清楚用rocketMQ写文件传输是否有意义,突然觉得可以试一下,于是这么写了。我不清楚rocketMQ在这些场景是否存在优势,或者存在什么劣势,我只管写,写完之后我去对比,尝试,然后得出结论:我再也不会考虑使用rocketMQ来写文件同步了。功能需求本demo实现的功能是监听本...

2020-03-04 10:55:30 2587

原创 基于james实现在物理隔离环境下邮件的传输

基于james实现在物理隔离环境下邮件的传输背景为了保护高安全级别的网络安全,国家保密局于1999年12月27日发布了涉密网络的物理隔离要求,并于2000年1月1日颁布实施的《计算机信息系统国际联网保密管理规定》,该规定中第二章保密制度第六条规定;“涉及国家秘密的计算机信息系统,不得直接或间接地与国际互联网或其他公共信息网络相连接,必须实行物理隔离。”物理隔离通常是通过部署网闸来...

2020-02-21 18:22:11 1508

原创 钱包开发经验分享:BTC篇

钱包开发经验分享:BTC篇[TOC]BTC节点搭建关于BTC的第一步,自然是搭建节点。由于BTC流行最久最广,网络上关于BTC的节点搭建,或者在同步节点时出现问题的相关文章很多,我这里就不赘述了(主要是没有环境用来搭建节点)。这里推荐一篇文章:区块链-Linux下Bitcoin测试节点搭建。没有搭建节点的可以考虑一下两个网站:blockcypher、blockchain。BTC的账户模型...

2020-01-15 14:21:03 2679

原创 SpringBoot @EnableAutoConfiguration非详细解读

提示本文是我的学习笔记,请自己思考内容并且实践,有错误的地方欢迎指出。前置知识SpringBoot要求4.3.2.BUILD-SNAPSHOT或以上版本,有一个很重要的原因是因为spring4提供了条件注解@Conditional,而SpringBoot大量地使用了这种注解来为我们自动配置一些信息,可以根据容器是否存在某些bean,jvm版本,指定路径是否存在指定类等等,功能十分强大。简单的实验@C

2017-11-21 18:59:52 2686 1

原创 消息队列

消息队列的作用是什么?关于消息队列的使用 这篇文章讲得好好高深,看它就没错了。搭建ActiveMQ在没有接触消息队列之前我们一直熟悉请求/响应的模式,但是这种模式一直有很多问题产生,特别是在实际的生产环境中,于是便引入了消息队列这种模式,把所有待执行指令存入消息队列等待程序调用,这种方法的好处在上面那位大牛的文章中也写得十分清楚了。ActiveMQ是一种消息队列,它是对JMS(Java Messa

2017-05-10 15:37:55 421

原创 DirContext初始化过程分析

这篇博文的原因主要是因为犯了一个很愚蠢的错误,在实例化DirContext的时候报了AuthenticationException,错误码为49,我很疑惑,同样的方式通过ldapBrowser可以连接,在JNDI却不能连接了,同样尝试了Java的Apache Directory Studio插件也是不能连接,但是匿名连接却连接得上。基于这个原因便开始了探究初始化过程的分析,不过最后的结论却是——只是

2017-04-12 17:12:45 5338 5

原创 Windows搭建OpenLDAP

目的之初始于学Security的SSO的时候想要自己搭建一个LDAP服务,原本以为一两天就能搞定的东西,我还是低估了LDAP这片大领域,到目前为止走了不少弯路,百度谷歌了不少资源,其中大多数是Linux下的搭建,而且无一例外,大部分都是拷贝粘贴的成品,虽然我这篇也基本集精华于百度谷歌,不过也想和大家分享分享我的学习成果,主要讲讲我走过的一些弯路。首先OpenLDAP我下载的是:(2.4.42)

2017-04-11 20:04:12 3624

转载 OpenLDAP初学习

LDAP入门学习LDAP:LDAP是轻型目录访问协议,实现提供被称为目录服务的信息服务。目录服务是特殊的数据库系统,其针对读取、检索、浏览进行特定优化。LDAP目录是按照树型结构组织的,具体信息存储在条目(entry)的数据结构中,条目相当于关系型数据库中的表的记录。条目通过dn(distinguishName)区分,其相当于关系型数据库中的主键;属性包含type和values,一个type可以对

2017-04-10 11:14:12 971

转载 JNDI与LDAP

读使用JNDI访问Domino目录之后创建一个JNDI可用连接的过程 创建一个HashTable,存入LDAP工厂类(Context.INITIAL_CONTEXT_FACTORY)、服务器地址(Context.PROVIDER_URL)、(如果需要验证的话)验证方式(Context.SECURITY_AUTHENTICATION)、用户账号(Context.SECURITY_PRINCEPAL

2017-04-10 10:41:10 1300

原创 spring security初探之Remember-me源码解析

希望CSDN能解决一个用户只能打开一个编辑器的问题,辛辛苦苦写的文字突然就没有了。重新来过吧。说说Remember-me简单的说,Remember-me就是记住用户,下次登陆的时候不用密码也能登陆。实现这个功能主要是依靠cookie,因为Http是无状态协议,所以我们需要一个替服务端保存登陆状态的小饼干,这个小饼干就是cookie。源码分析初次登陆的Remember-me我们知道,用户初次登陆时候

2017-03-30 16:39:42 1828

原创 spring security配置

我们已经经历了对认证和授权源码的探索,现在是时候把两者结合起来了!配置过滤器(在web.xml加入以下代码) <!-- 配置过滤器 --> <listener> <!--为了启用登录并发控制,即同一个用户的登录人数限制。--> <listener-class>org.springframework.security.web.session.HttpSessionEve

2017-03-29 20:31:32 416

原创 spring security初探之授权原理源码解析

说说授权授权的定义是:判断某用是否拥有访问某资源的权限。我们这里说的资源被定义为URL(当然也可以是方法,但这不在我们讨论的范围内),权限我们这里定义为角色,那么对授权的定义我们就转化成,判断用户是否拥有访问某条URL的角色。一个用户可以对应多个角色,一个角色可以对应多个资源,这样我们的假设就出来了。对授权过程的假设我们可以知道,在认证过程中,用户信息生成的Authentication

2017-03-29 14:22:37 1671 1

原创 spring security之停下来思考一下

之前一直在学spring security,一股脑子学,学习方法就是看源码,然后突然回过头看,很恍惚,自己在学什么东西?这个东西有什么内容?完全不了解这些东西,只管一股脑子学,学着学着,突然发觉,自己是在学东西吗?还是在满足自己“在做事”的虚伪?不得解。现在,尝试着拨开云雾,把对spring Security的学习暂定为以下四个方面。spring security 4 认证原理剖析spring

2017-03-29 09:34:48 476 1

原创 树形json的删改操作

公司上周五突然来了个任务,来到这家公司这么久第一次被要求做的任务就是做json数据的删改操作,不过我很喜欢算法,所以对我而言这是个再有趣不过的任务,下面贴出我的算法与大家共享,初出茅庐,第一次是为了工作写算法,边界考虑有失周全的地方请提出来。package com.hk13a;import java.io.File;import java.io.FileNotFoundException;imp

2017-03-27 10:33:29 1162 1

原创 SpringSecurity初探之认证源码分析

首先,笔者初学SpringSecurity,因此本文章提供的观点不一定正确,笔者也没有具体求证(主要是能力有限)。因此请读者带着批判质疑的眼光浏览。大概的原理分析(其实是别人分析过,这边进行总结)spring Security实现安全的级别有两种:web访问级别和方法调用级别。首先我们需要知道的是:web访问级别通过一系列过滤器链实现安全,方法调用级别则是通过AOP实现安全。

2017-03-23 18:12:33 1732 3

原创 SSM框架一些相关配置解读(不完整)

<!-- pom.xml --><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.o

2017-03-21 09:35:16 651

原创 先写一个邮件工具类吧

写一个邮件发送大概有多麻烦首先是初始化邮件工具类,初始化主要是创建一个邮件的会话,并获取该会话的mimeMessage对象。除此之外就是设置一些参数包括发件服务器,发件人账号密码等。设置发件人信息,设置发件人通过mimeMessage对象的setFrom设置,它接收一个InternetAddress对象。如:”InternetAddress from = new InternetAddress(se

2017-03-14 20:24:15 513

原创 写一个我自己的文件管理工具类

1、判断文件是否存在2、上传文件 上传文件的核心是file.transferTo(targetFile),该语句将输入的数据流转存到另一目标文件中,因此targetFile必须是实际存在的路径,且包括文件名。也可以先判断文件路径是否存在,如果不存在可以通过mkdir()来创建该路径。在实际项目中上传文件的路径往往被定义在外部的properties文件内,这样做大概是为了在文件服务器满载的时候可以转

2017-03-14 11:27:21 604

原创 大概有用的知识点

1、对参数的检查应该写在controller层,service层应当只涉及业务逻辑和操作dao层。因此获取参数,对参数封装、以及校验应当写在controller层。2、对参数校验主要对一些参数格式、是否非空、参数长度等进行校验。3、mybatis新增对象的同时获取对象通过以下方式实现:<insert id="uploadAnnex" parameterType="com.hhit.core.prev

2017-03-14 10:30:15 327

原创 Linux-网络与配置

什么是数据包? 数据包是网络传输的实体。数据包的结构包括头和净荷,其中头包含接收方、发送方和基本协议等识别信息,净荷则包含数据实体。网络上通过包来传递数据的原因之一是通过这种传输方式异步操作数据。网络层次一个完整的网络,应该包含一个被称之为网络栈的网络层次,典型的互联网栈自顶而下有如下层次:应用层:包含应用间、服务器间的交流语言——通常是一种高级的协议。一般有超文本传输协议

2017-03-13 22:07:34 376

原创 不完整的spring学习报告

Spring容器主要负责创建应用程序中的bean并通过DI协调对象之间的联系。Spring容器主要提供三种装配方案: - 在XML显式配置 - 在Java中显式配置 - 隐式的bean发现和自动装配Spring从两个角度实现自动化装配: - 组件扫描:Spring会自动发现应用上下文所创建的bean。 - 自动装配:Spring会自动满足bean之间的依赖@Component:声明为bea

2017-03-13 21:41:36 386

原创 自主学习报告第二周S_Part

并行编程并行与并发的区别 并行与并发是两个不同的概念。从CPU的角度上看,并行是将命令切分成多个等分部分同时执行,而并发是多个线程在同一个单核CPU上交互执行。并发是在一个单核CPU上实现多线程“同时”运行的效果,而并行才是真正利用到多核CPU的特点。并行首先说说数据流并行处理的底层实现:数据流并行处理的底层实现是依托fork/join框架,相信大多数人都听闻过这个框架。当一条数据在线程中被执

2017-02-24 09:57:47 348

原创 自主学习报告第二周F_Part

自主学习报告第二周什么是有状态转换和无状态转换? 在流的概念里,有状态和无状态区别在于转换过程是否依赖原始流的元素,依赖称为有状态转换,不依赖称为无状态转换。之前我们所介绍的流转换操作均为无状态转换,它们的转换不需要依赖之前的元素,接下来介绍几个有状态转换的方法。distinctdistinct方法用于排除重复值,要排除重复值说明转换过程必须依赖原始元素进行,因此是有状态转换。Stream.

2017-02-21 09:50:47 418

原创 自主学习报告第一周S_part

自主学习报告第一周流 Stream什么是流?流和集合有什么区别? 在Java中,流是对数据操作的一种方式,它和集合不尽相同,却又完全不同。主要区别在于: 1. 流不会自己存储数据,它是对数据操作的一种方式,而不是存储数据的容器,因此流的数据可能以其他方式存储在底层的集合中。 2. 流不会改变源对象,相反它会通过流转换生成新的流,每一个流都会在使用过后,不论最终有没有终止操作,流都会被

2017-02-17 09:37:06 740

原创 自主学习报告第一周F_part

自主学习报告第一周Java8新特性总览接口的默认方法Lambda表达式函数式接口方法引用Lambda作用域访问局部变量访问对象字段与静态变量访问接口默认方法Date APIAnnotation注解接口的默认方法:从Java8开始,支持在抽象方法中定义非抽象方法,只需用default关键字将该方法声明为默认方法。Lambda表达式: Lambda表达式是一个传递

2017-02-15 22:07:41 417

原创 测试

我在进行测试

2016-10-27 16:00:47 292

原创 欢迎使用CSDN-markdown编辑器

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl

2016-10-27 15:57:21 268

原创 Structs2:映射通配符、动态方法调用

映射通配符代码示例<action name="*_*" class="com.actiontest.{1}" method="{2}"> <result>/{0}.jsp</result></action>映射通配符一般由**、*和\组成,其中**匹配带/的字符串、*匹配不带/的字符串、\作为转义字符,当需要匹配*时使用。访问时可以用{N}来访问各个元素。举个栗子,假如匹配的actionN

2016-09-23 08:16:08 402

原创 structs2如何获取web资源

什么是web资源? web资源指的是HttpServletRequest、HttpSession、ServletContext等原生的Servlet API。如何访问web资源和Servlet API解耦的方式:只能访问到有限的Servlet API对象,且只能访问其有限的方法。 通过ActionContext方法实现XxxAware接口和Servlet API耦合的方式:可以访问更多

2016-09-19 18:52:31 450

原创 structs2配置文件详解

下面是structs2的配置文件structs.xml的代码示例:<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds

2016-09-19 10:10:38 888

原创 structs2环境配置

配置structs2环境配置流程主要分为三个步骤: 1. 引入structs2jar包 2. 在web.xml配置过滤器 3. 引入structs2配置文件structs.xml下面是具体的配置过程的截图。首先下载地址是点击下载structs-2.3.28。在有些视频教程一些教授会建议我们使用稳定一点的老版本,但是我觉得年轻人更适合去解决问题,而不是享受着别人为我们配置好调试好的万无一失的环境

2016-09-18 10:08:46 654

原创 JSP详解

什么是jsp?很久之前,我们的网页都是静态的,就是我们所看到的页面在编写好之后总是唯一的。后来有人便提出动态页面的概念,相应的就提出了Servlet。Servlet动态网页技术,是可以把Java语言嵌入到HTML页面上。那时候Servlet是个大忙人,它既要处理显示效果,又要处理数据,又要处理页面跳转,耦合度高,不方便代码维护,为了解决这个问题,SUN公司联合其他公司制定了JSP动态网页技术标准。事

2016-09-15 17:07:56 454

原创 线程详解

1. 概念线程,CPU调度的基本单位,被包裹在进程里面,同一个进程里的线程共享同一片内存空间。其中,守护线程是特殊的线程,守护线程自创建伊始会在后台为用户线程提供服务,其生命贯彻进程的整个生命周期。2. 特点轻型实体:这种轻体现在线程是程序执行流的最小单位,执行时仅向系统请求执行所必须的一点儿资源。共享进程内存空间:同一个进程里的线程拥有同一个内存空间地址(进程空间地址),共享这片内存空间,同一

2016-09-09 21:05:26 308

原创 有一家游乐园,它叫Program

本文是按照个人理解写的一篇关于阐述程序、进程和线程关系的故事Demo,可能在内容上不是很严谨,请多包涵。在某个不知名郊区,一个叫程序员的大富翁买下了一大片土地,建造了一座很大很大的游乐园,给它起了个名字:Program。游乐园(Program)很大很大,有很多很多个游乐项目,每个游乐项目都有很多个工作人员在参与工作程先生自己负责统计游乐园(Program)的营收。他在想,有一些游乐项目并不常年使用

2016-09-08 15:45:29 753

原创 Servlet学习笔记(三)

主要知识点:1、Forward和Redirect2、ServletConfig和ServletContext 单一职责原则:即每个类只完成单一的功能,这样做的好处是使类更简短,方便后期维护程序。为了实现单一原则,人们提出了转发的概念。Forward和RedirectForward1、实现语句: request.getRequestDispatcher(path).forward(r

2016-09-07 20:01:11 310

转载 null和""的区别

本文为转载文章,源地址->http://www.cnblogs.com/qiuting/p/5373571.html1. 类型null是一个对象的值,而不是一个字符创。 “”是一个长度为0的字符串。2. 内存String s = null在该定义中定义了一个String的对象,但对该对象没有具体实现,即只创建了在栈中的引用,而不创建对应的实例,因此在堆中不占用内存。 String s = ""

2016-09-07 09:45:31 389

原创 servlet学习笔记(二)

servlet登陆功能实现与思考servlet实现登陆功能主要是通过get()方法或者post()方法接收前端页面输入的参数,然后跟数据库中已有的用户数据进行匹配,匹配上则登陆成功,否则失败。 由此,我觉得假如在这个过程中存在优化方案的话肯定是在这个匹配过程中。匹配过程中决定登陆速率的主要在两个方面,一个是匹配算法,另一个是表结构。匹配算法无非几个过程,先读取表的内容,然后通过for语句进行一一

2016-09-06 19:38:59 406

空空如也

空空如也

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

TA关注的人

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