- 博客(150)
- 资源 (2)
- 收藏
- 关注

原创 DDD领域驱动设计之聚合
小编在 2016 年初次接触领域驱动设计,可能因为之前没有留意,感觉它还不怎么被大家认可,实践 1 年多的时间以来,伴随着业务对微服务的渴求,也越来越多的看到有关微服务的文章里在提倡采用 DDD 领域驱动设计来实现模型设计,架构设计。领域驱动设计包括战略建模(即架构设计)和战术建模(即模型设计)。战术模型中包含领域,子域,限界上下文,聚合,实体,值对象,领域服务,领域事件,模块,工厂...
2018-08-01 11:31:56
3178
2

原创 乐观锁的两种实现方式
什么场景下需要使用锁?在多节点部署或者多线程执行时,同一个时间可能有多个线程更新相同数据,产生冲突,这就是并发问题。这样的情况下会出现以下问题:更新丢失:一个事务更新数据后,被另一个更新数据的事务覆盖。脏读:一个事务读取另一个事物为提交的数据,即为脏读。其次还有幻读。。针对并发引入并发控制机制,即加锁。加锁的目的是在同一个时间只有一个事务在更新数据,通过锁独占数据的修改权。
2017-08-01 23:25:54
44949
5
原创 2017年年终总结
2018年都过来一半了,遗漏的2017年的年度总结,还是想写一些,原因很简单,既然开始,就不要停留,过去的时光真的没办法再挽回,也违背了写博客的初衷,用文字整理生命,在美好的年华里有所思考,有所沉淀,也在未来的日子里不断成长。 2017年...
2018-07-10 16:06:14
688
原创 创建线程池的一种方式
创建线程池保证为每个线程指定名称,并对线程池定制异常策略。 private final String name; private final Map<Integer, ExecutorService> executorServiceMap; private final int channelCount = 10; private final int cha...
2018-02-24 17:43:33
1245
原创 spring源码学习bean载入时的安全检测方式-threadlocal
SpringIOC容器启动后开启了BeanDefinition的Resource定位,载入和注册的三个过程,loadBeanDefinitions方法中提供了Resource的定位的三种方式,classpath,url,getResourceByPath,其次就是载入的过程,主要采用原始的IO的InputSource,但是在解析xml之前做了一些安全性的操作,这种安全性的操作可以用在自己的编码中。
2018-01-16 12:47:09
772
2
原创 spring boot 集成spring security
最近在项目中使用spingboot开发,由于框架都是架构师搭建的,所以两个项目下来对spring boot的内部结构并不是很熟悉,所以拿系统的学习下spring boot的内容,学习的重点放在spring boot 如何做到特别方便的集成很多组件,让更多的基础开发人员实现傻瓜式开发,这是做技术人一种趋势,人类社会一直都是由一流的人去制定标准。
2017-08-30 22:17:28
509
2
原创 Collections.unmodifiableList()
Collections.unmodifiableList()-只读集合public class Student { private String name; private ArrayList<String> courses; public Student(String name, ArrayList<String> courses) { this.name =
2017-06-30 18:09:04
747
2
原创 solr进阶
之前对solr只是简单的认识,这次从17年9月至18年2月对公司搜索业务进行了维护,伴随着各种业务的实现,对solr有了更为深入的认知,至此对solr做一些总结。 solr作为内存的数据库,面对复杂业务的查询借助solr进行处理,下面将从 创建索引,检索,排序等方面做概要总结。 (一)创建索引,索引的创建需要注意一下几点: 1、包含必要的检索字段,无...
2017-06-30 17:21:01
721
1
转载 在微服务中使用领域事件
稍微回想一下计算机硬件的工作原理我们便不难发现,整个计算机的工作过程其实就是一个对事件的处理过程。当你点击鼠标、敲击键盘或者插上U盘时,计算机便以中断的形式处理各种外部事件。在软件开发领域,事件驱动架构(Event Driven Architecture,EDA)早已被开发者用于各种实践,典型的应用场景比如浏览器对用户输入的处理、消息机制以及SOA。最近几年重新进入开发者视野的响应式编程(
2017-04-20 16:54:38
614
2
转载 Guava库学习:学习Guava EventBus(一)EventBus
摘要: 在软件开发过程中,对象信息的分享以及相互直接的协作是必须的,困难在于确保对象之间的沟通是有效完成的,而不是拥有成本高度耦合的组件。当对象对其他组件的责任有太多的细节时,它被认为是高度耦合的。当一个应用程序有高度的耦合,维护将变得非常具有挑战,任何变化都将带来涟漪效应。为了解决这一类的软件设计问题,我们就需要基于事件的编程。本篇,我们就来学习Guava 基于事件的编程,Guava Event
2017-04-20 16:29:43
604
2
原创 2016年年终总结
2016一个特别的年份,给了我一份特别的礼物。一个越来越可以独当一面的你,一直在磨炼中成长。 -------------------------------------------------------------------------生活篇-学会接受-----------------------------------------------------------------
2017-02-05 23:13:48
479
5
原创 自定义堆栈,实现括号匹配
算法分析:判断算术表达式中 小括号,中括号,大括号的顺序是否正确匹配。 如:{ a + [ b +( c * a) / (d * e)] } 匹配正确 { a + [ b +( c * a) / (d * e) } 匹配错误 使用栈结构来完成,如果遇见右括号则入栈(push),遇到左边括号则出栈(pop),进行从左到右的遍历,扫描
2016-12-13 21:55:22
1332
7
原创 cas深入理解
最近进一步学习和研究了单点登录的cas的运行机制,上一篇博客只是从很浅显的层面介绍过单点登录,这篇是小编对CAS有了又一次深入的研究后的总结; CAS的包括两部分:CAS Server和CAS Client。 CAS Server 负责完成对用户的认证工作,需要独立部署,CAS Server会处理用户名/密码等凭证(Credentials)。 CAS
2016-09-01 10:14:46
687
4
原创 SolrCloud+zookeeper
什么是SolrCloud? SolrCloud(solr 云)是Solr提供的分布式搜索方案,当你需要大规模,容错,分布式索引和检索能力时使用 SolrCloud。当一个系统的索引数据量少的时候是不需要使用SolrCloud的,当索引量很大,搜索请求并发很高,这时需要使用SolrCloud来满足这些需求。 SolrCloud是基于Solr和Zookeeper的分布式搜索方案
2016-07-22 16:02:43
2149
3
原创 Nginx应用场景(二)反向代理,负载均衡
关于http服务器,我在以前的篇博客里有这样的介绍 《nginx+ftp实现图片的上传与访问》在这里通过ftp上传图片,nginx作为图片服务器,这样就可以通过http访问服务器中的图片。 下面来介绍下nginx实现反向代理,负载均衡: 先来张图介绍下什么是正向代理, 左边是一批处于局域网的计算机,如果想访问公网,由于不再一个网段内
2016-07-22 15:33:30
3644
4
原创 nginx应用场景
什么是nginx? Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。由俄罗斯的程序设计师Igor Sysoev所开发,供俄国大型的入口网站及搜索引擎Rambler(俄文:Рамблер)使用。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好.中国大陆使
2016-07-22 14:48:42
6321
8
转载 log4j.properties 详解与配置步骤
一、log4j.properties 的使用详解1.输出级别的种类ERROR、WARN、INFO、DEBUGERROR 为严重错误 主要是程序的错误WARN 为一般警告,比如session丢失INFO 为一般要显示的信息,比如登录登出DEBUG 为程序的调试信息2.配置日志信息输出目的地log4j.appender.appenderN
2016-07-21 21:42:11
483
4
转载 java中转发和重定向的区别
一、调用方式我们知道,在servlet中调用转发、重定向的语句如下:request.getRequestDispatcher("new.jsp").forward(request, response); //转发到new.jspresponse.sendRedirect("new.jsp"); //重定向到new.jsp在jsp页面中你也会看到通过下面的方式
2016-07-21 09:25:21
592
4
原创 java中solr的使用
solr在java程序中的应用 1.导入jar包 org.apache.solr solr-solrj 程序代码//增加索引库 @Test public void addDocument() throws Exception{ //创建连接 SolrServer solrServer = new HttpSolrServer("http://192.
2016-07-15 14:44:01
4660
3
原创 mybatis中定义mapper 出现bound statement (not found)
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): tgb.taotao.search.mapper.ItemMapper.getItemList 解决办法:将.properties,xml文件发布到目录文件中即在pom文件中添加
2016-07-14 20:17:00
6190
3
原创 使用redis对商城的首页添加缓存
1.redis服务: String get(String key); String set(String key,String value); String hget(String hkey,String key); long hset(String hkey,String key,String value); long incr(Strin
2016-07-13 16:35:33
4249
4
原创 js中文传值乱码
最近项目中遇到了中文乱码的问题,在这里记录下,也希望能给遇到类似问题的人提供一种解决问题的方式! js代码 //获取当前学期名称 var myDate = new Date(); var year =myDate.getFullYear(); //获取完整的年份(4位,1970-????) var month= myDate.getMonth(); //获取当前月
2016-07-10 21:15:05
758
3
原创 nginx+ftp实现图片的上传与访问
根据项目的开发要求,使用ftp实现上传图片,通过nginx搭建图片服务器,即对nginx的简单功能的一种应用。 关于vsftp和nginx的安装就不在这里详细演示,下面的代码是关于nginx.conf的配置,即将ftp上传的图片路径映射到nginx.conf中。 下面介绍代码是如何实现上传图片的。 j
2016-07-06 15:20:16
18534
4
原创 java多线程(四)关键字volatile
关键字volatile的主要作用是使变量在多线程间可见。 解决异步死循环 如下代码 public class RunThread extends Thread { //volatile private boolean isRunning=true; private boolean isRunning=true; public boolean
2016-06-22 21:18:06
1485
3
原创 java多线程(三)-同步工具Semaphore
Semaphore也是一个线程同步的辅助类,可以维护当前访问自身的线程个数,并提供了同步机制。使用Semaphore可以控制同时访问资源的线程个数,例如,实现一个文件允许的并发访问数。Semaphore的主要方法摘要: void acquire():从此信号量获取一个许可,在提供一个许可前一直将线程阻塞,否则线程被中断。 void release():释放一个许可,将其返回给信号量
2016-06-21 16:34:12
781
4
原创 java多线程(二)可阻塞队列BlockingQueue
先看一个程序题目:一个程序产生16个日志对象,并且需要运行16秒才能打印完这些日志,请在程序中增加4个线程去调用parseLog方法来分头打印这16个日志对象,只需要在4秒内打印完这些日志对象。 利用阻塞队列的ArrayBlockingQueue来实现如下 public static void main(String[] args) { final Block
2016-06-21 15:32:23
824
3
原创 Java多线程(一)基本用法
1、概念及优点 进程:进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在当代面向线程设计的计算机结构中,进程是线程的容器。 我们在Windows任务管理器的进程中看到的exe程序,这就是我们所说的进程。如QQ; 线程:可以理解为进程中独立运行的子任务。比如QQ.ex
2016-06-20 19:20:34
503
4
原创 Shiro的应用深入学习
上一篇中宏观上分享了Shiro的原理,今天将分享基于url的权限认证授权,以及Shiro的认证与授权的原理和流程 基于url的权限管理流程 优点: 使用基于url拦截的权限管理方式,实现起来比较简单,不依赖框架,使用web提供filter就可以实现。问题: 需要将所有的url全部配置起来,有
2016-05-31 17:47:37
2348
5
原创 安全框架-Shiro
什么是Shiro Apache Shiro是一个强大易用的Java安全框架,提供了认证、授权、加密和会话管理等功能。Shiro能做什么 认证:验证用户来核实他们的身份 授权:对用户执行访问控制,如: 判断用户是否被分配了一个确定的安全角色;判断用户是否被允许做某事; 会话管理:在任何环境下使用Session API,即使没有
2016-05-29 19:58:30
1708
6
原创 CAS实现SSO单点登录
最近研究项目中用到的单点登录以及权限认证,通过视频进一步的学习来总结和分享。 什么是SSO? 单点登录( Single Sign-On , 简称 SSO )是目前比较流行的服务于企业业务整合的解决方案之一, SSO 使得在多个应用系统中,用户只需要 登录一次 就可以访问所有相互信任的应用系统。比如你登录淘宝账号后同样可以用天猫或支付宝的功能。登录一个企业内的多个
2016-05-26 10:50:23
745
5
原创 Web Service学习与初步认识
概况: Web Service 是一种跨变成语言和跨操作系统平台的运程调用规范,它不是框架,更不是一种技术,。 所谓跨编程语言和跨操作平台,就是说服务端程序采用java编写,客户端程序则可以采用其他编程语言编写,反之亦然!跨操作系统平台则是指服务端程序和客户端程序可以在不同的操作系统上运行。 所谓远程调用,就是一台计算机a上的
2016-05-16 11:26:48
570
3
原创 EJB及其基本分类
定义: EJB是sun的JavaEE服务器端组件模型,设计目标与核心应用是部署分布式应用程序。简单来说就是把已经编写好的程序(即:类)打包放在服务器上执行。凭借java跨平台的优势,用EJB技术部署的分布式系统可以不限于特定的平台。EJB (Enterprise JavaBean)是J2EE(javaEE)的一部分,定义了一个用于开发基于组件的企业多重应用程序的标准。其特
2016-04-30 16:35:58
3460
8
原创 Mybatis学习与总结
这篇博客也是也中ORM框架,为什么要用ORM框架?我们来看下原生的jdbc程序问题: 1、数据库连接,使用时就创建,不使用立即释放,对数据库进行频繁连接开启和关闭,造成数据库资源浪费,影响数据库性能。 2、将sql语句硬编码到java代码中,如果sql语句修改,需要重新编译java代码
2016-04-30 11:51:05
577
5
原创 Hibernate-回顾与总结
ITOO项目中数据库操作层用到的东西很多,包括EclipseLink等ORM框架也包括sql,对Hibernate的了解曾学习过,但是深入认识是在最近的应用开发框架中,通过--Criteria 这一个一种比hql更面向对象的查询方式,让提醒自己再次的学习Hibernate。定义: Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得
2016-04-29 10:51:02
746
6
原创 选课系统之相信你的队友
itoo之选课 这项目已经基本落尾,在该项目中担任开发组长,看着项目一次次经历测试,内心还是收获满满的,总结下项目开发中的一些认识,以及自己的成长,再接再励。 交流:从锂电池项目,视频项目,考试项目,地铁安防项目,已完成的选课及成绩项目,正在进行的应用开发框架项目,参与任何一个项目的开发每次都会对交流有一个更深刻的认识。对于开发组长,前期的业务调研,需要跟领域专业的人员交流,深入
2016-04-26 11:51:05
693
8
原创 Java里的下载Excel模板上传Excel文件
由于项目的需要做过VB版的上传excel,vb.net,以及c#的上传excel,现在做Java项目也同样遇到了,为了解决异构系统或者整理原始数据时无法避免的会用到这个东东,所以这样的功能算是非常常见的。这篇博客将更深入的分享如何下载excel模板以及上传excel文件。这两天项目催的那个紧以及会议的问题,博客先记录下主题,稍后不上。。。。
2016-03-31 21:52:36
5972
4
原创 Spring MVC之文件上传与下载
最近项目中需要上次传文档,下载文档,所以顺便的学习了下Spring MVC的上传,以及Ajax的updateFile。待续。。。
2016-03-31 21:47:33
1726
4
原创 mysql 外键 常见的的两个错误 mysql createtable errno 121 150 错误
150错误:类型不一致错误。主要是因为主键和子键的数据类型不一致。设置外键的时候,一定要主表和从表的引擎相同,并且外键的主键和子键的数据类型也完全相同,有一个比较容易错漏的地方是无符号设置,有时候主键设成无符号,子键没有设成无符号,即使数据类型相同,一样会导致错误不能建立外键,所以要注意。 121错误:重名错误。外键和表一样,在同一个库中是不允许与其他外键重名的。
2016-03-21 17:25:34
559
4
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人