排序:
默认
按更新时间
按访问量

关于'都要'需求的几种实现思路

"对这些操作,我们都要记录日志。"这是服务器软件的常见需求。一、拦截器如果需求的范围可以定位到我们的某些类或方法 ,这种思路比较合适。不同的环境又有不同的实现方法 ,在web应用中可以用Filter,拦截器(spring mvc、struts)。在数据库层像gi...

2018-05-16 20:18:10

阅读数:6

评论数:0

Spring的标注Autowired的required参数与自动注入关系是怎样的?

在回答标题问题前,我们先看一下什么时候才会用到required这个参数,如下图: 可以看到,就是DefaultListableBeanFactory.getBean方法去调用的,这个方法的作用是实例化对象。在org.springframework.beans.factory.suppor...

2018-02-07 11:00:03

阅读数:91

评论数:0

spring如何扫描有注释的类

1.加载xml,初始化上下文,以ClassPathXmlApplicationContext为例 一般我们给它的构造方法转入1到多个配置文件,来初始化,如: new ClassPathXmlApplicationContext("/spring-context-ioc.xml...

2018-01-09 20:23:17

阅读数:131

评论数:0

如何用动态字段实现系统的扩展性?

设计系统架构时,我们总是希望一个架构或者说是模型能支持多种业务场景,当然场景是系统范围内的。比如说做商品系统,商品有多种属性,不同类型的商品的属性不一样,怎么用关系型数据库去保存这些不同的属性呢?再比如做CMS时,除了基本的背景、位置、类型、状态等属性一致外,页面不同地方需要的数据结构却是不一样的...

2018-01-05 19:07:31

阅读数:427

评论数:0

mybatis怎么打印出sql,我被误导了很多年

关于mybatis怎么打印出sql这个问题,可以百度一下,很多答案都有类似这样的答案: 就是把java.sql.*,com.ibatis等的日志级别都配置成debug的,也许这么配置与默认的info配置相比真的有效果,把sql打印出来了。可是我今天才发现,打印sql与这些java.s...

2017-12-28 20:49:19

阅读数:2139

评论数:0

不要欺负我不懂java的volatile

在《java并发编程实战》(Brian Geoetz等著童云兰译)这本书里有对volatile的说明,Java语言提供了一种稍弱的同步机制,即volatile变量,用来确保将变量的更新操作通知到其他线程。当把变量声明为volatile类型后,编译器与运行时都会注意到这个变量是共享的,因此不会将该变...

2017-12-19 19:50:59

阅读数:70

评论数:0

lucene5.3.1的排序是怎么实现的?

排序有两种方式,在只有一个排序字段的情况下,分别看下这两种方式的实现方式。 1.在索引阶段生成排序索引(dvm,dvd): 在添加正常的字段后再添加一个该字段的SortedDocValuesField到document,即可按这个字段排序。 SortedDocValuesFiel...

2017-12-15 18:39:50

阅读数:118

评论数:0

智能小车49:atmel328p的pwm调速试验

智能小车的变速怎么实现?arduino uno的芯片atmel328p的引脚可以配置pwm功能。简单来说,这个功能就能调整电流的大小,这样就能控制电机的变速,led不同频率的闪烁。 先看下arduino uno的pwm引脚,如下图有六个引脚标有“~”,表示它们可以配置pwm。 为什么是3、5、...

2017-12-13 15:22:05

阅读数:138

评论数:0

lucene查询索引的6个步骤

先准备数据源,以两个文件名字符串做为值,保存两个document,如下图: 然后以"path:txt"为查询条件,来查询索引文件。我调试发现会有6个步骤。数据主要来源于3个文件,tim、doc、fdt。 1.先根据查询字段与词找出该字段所有的term(.tim文...

2017-12-04 18:31:07

阅读数:116

评论数:0

HashMap的面试题你能回答几个?

1.HashMap用什么数据结构实现的? 答:数组。什么样的数组?答:Node[] table这样的。Node是什么?答:看下图: 也就是说这个数组每个元素都是个单向链表。 2.HashMap的get过程是? 答:先得到key的hash值,再把这个hash值与l...

2017-11-28 09:14:32

阅读数:78

评论数:0

搜索系统19:lucene索引的五个关键知识点

1.文件锁是怎么实现的? org.apache.lucene.store.NativeFSLockFactory 这个write.lock一直为0字节。那它有什么用,怎么判断这个Lock文件就是lucene里定义的锁?如下,判断文件的创建时间是否与之前创建时的时间一致: ...

2017-11-21 14:23:08

阅读数:89

评论数:0

搜索系统18:lucene索引文件结构

1.多文件索引与复合索引的区别 2.segments(段)文件 3.段元数据 .si 保存了索引段的元数据信息 4.fnm(域名)文件 相当于solr里的schemal.xml文件 5.项词典(.TIS、TII)文件 lucene老版本的项词典是t...

2017-11-16 13:40:01

阅读数:123

评论数:0

智能小车48:不用volatile,编译器会优化什么?

有网友评论了我前面的中断实验的c代码,说全局变量需加上volatile关键字。平时写Java程序也没有用到这个,只知道这个用于多线程,但也不能完全解决多线程并发修改共享变量的问题。这几天我都在思考这个问题,向干了多年嵌入式开发的同学请教,还问了下韦东山老师,然后下文就是我的这个问题的理解。 测试...

2017-11-14 11:17:51

阅读数:99

评论数:0

搜索系统17:HttpClient的网络连接是否被复用了

上文查看是否复用连接的方法有误,当时方法是把route(ip与端口等)传给连接池,相同的请求第二次就能返回相同的对象。这是没错,但相同的对象并不代表复用了Socket(连接)。因为这个对象是org.apache.http.pool.RouteSpecificPool。为了搞明白它与连接的关系,是否...

2017-11-11 16:29:00

阅读数:157

评论数:0

智能小车46:最小系统Atmega328p的中断实验

我居然没有找到Atmega328p的中文资料,这让我做每个实验都要自己去查下英文资料,比较麻烦。这里再多费话一句,为什么我要用Atmega328p做实验,因为这是arduino uno的mcu,代码可以直接移植到arduino上去。在做了arduino实验后,再看看Atmega328p数据手册、a...

2017-11-10 20:40:11

阅读数:950

评论数:0

搜索系统16:从HttpClient学习连接池

一.HttpClient请求的一般过程 1.拿连接 2.与服务器建立连接(new Socket) 3.从服务获取结果 4.keepAlive的判断 在代码org.apache.http.impl.execchain.MainClientExec里请求结束后(req...

2017-11-08 18:19:46

阅读数:69

评论数:0

搜索系统15:tomcat如何使用NIO处理网络请求

搜索也需要web服务器,要搜得快,web服务器的性能很重要。本文简要介绍下tomcat的启动与请求处理,以便以后调优使用。我的java基础知识很久没更新了,我对连接池的认识还停留在ServerSocket阶段,以为tomcat还是用的这个呢。一看源码,学到了不少新知识,文中源码来自于tomcat-...

2017-11-07 15:01:42

阅读数:47

评论数:0

智能小车45:最小系统(Atmega328p)怎么存数据?

最小系统(Atemga328p芯片)其实是可以存储数据的,在说存数据前先了解下这个芯片有哪些存储器。 1.Flash(32K Bytes) 就是我们的程序存放的地方,这个最大,但和我们电脑的硬盘有点区别就是程序运行时不可写,只能编程时一次烧录进去。Flash中包含了boot loa...

2017-11-05 13:18:01

阅读数:172

评论数:0

搜索系统14:HttpClient怎么有两个超时参数,都该怎么配?

在Java的网络应用中,apache的HttpClient用的很多,比如Solrj中就用的是这个来给服务器发请求。其中有两个超时参数可配置,一个是HttpClientUtil.setConnectionTimeout,另一个是HttpClientUtil.setSoTimeout。通过debug代...

2017-11-03 18:04:28

阅读数:70

评论数:0

搜索系统13:一个查询从solr到lucene都干了些什么事?

用了solr一段时间后,我想了解下solr是如何包装lucene。因为使用过程中几乎没有遇到直接操作lucene代码的情况,这让我有些迷糊。今天来看看一个solr查询的执行过程,经过debug发现了以下堆栈。 再看堆栈顶的方法里的lucene工具类: 哈,这就是lucene类了...

2017-11-01 18:27:53

阅读数:41

评论数:0

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