- 博客(396)
- 资源 (22)
- 收藏
- 关注
原创 Java的Executor框架和线程池实现原理
一,Java的Executor框架1,Executor接口public interface Executor { void execute(Runnable command);}Executor接口是Executor框架中最基础的部分,定义了一个用于执行Runnable的execute方法,它没有实现类只有另一个重要的子接口ExecutorService2,Execu...
2018-11-07 16:54:55 120
原创 mysql group by 与order by 一起使用
我需要把数据分组排序,于是就想到先group by 然后 order by,可是运行的时候报错于是查资料发现group by 与order by 一起使用是要遵守一定原则的:order by 的列,必须是出现在group by 子句里的列也可以用来查询一条语句(注意数据库版本)select * from (select distinct * from op_order_c...
2018-11-05 18:12:19 971
原创 @PathVariable接受的参数可能为null
@RequestMapping(value = {"/getTreeNode/{id}","/getTreeNode"}, produces = "application/json;charset=UTF-8", method = RequestMethod.POST) @ApiOperation("查询树节点接口") public List<ModelTreeDto>...
2018-11-01 14:17:21 6074
原创 rabbitma安装
1. wget et http://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm2. sudo rpm -Uvh vh erlang-solutions-1.0-1.noarch.rpm3. sudo yum install erlang -y4. wget et https://github.com/rab...
2018-10-24 10:35:58 308
原创 springboot集成rabbitmq注意事项
1:传输对象(1)对象必须实现Serializable接口(2)实体类在项目中的位置必须一样,即包名(访问路径)一样2:创建exchange和queue 在代码中exchange和queue与rabbitmq中的持久化要一样,否则项目启动失败(Channel shutdown: channel error; protocol method: #method<chann...
2018-10-23 14:51:13 236 1
原创 websocket @ServerEndpoint注解形式开发 @OnOpen 如何获取httpSession
通过Configurator获取httpsession,通过httpsession可获取serviceimport javax.servlet.http.HttpSession;import javax.websocket.HandshakeResponse;import javax.websocket.server.HandshakeRequest;import javax.web...
2018-10-22 13:16:25 24075 1
原创 websocket注入service或dao
1.写工具类:import org.springframework.beans.BeansException;import org.springframework.context.ApplicationContext;import org.springframework.context.ApplicationContextAware;import org.springframework...
2018-10-22 11:25:39 2316 2
原创 springboot集成websocket消息实时发送
WebSocketConfig :import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.web.socket.server.standard.ServerEndpoin...
2018-10-19 14:34:13 1042
原创 springboot跨域问题
1:新增一个configration类 或 在Application中加入CorsFilter和CorsConfiguration方法import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.sp...
2018-10-18 13:34:05 215
原创 springboot事务配置
springboot中已经默认对jpa、jdbc、mybatis开启了事事务,引入它们依赖的时候,事务就默认开启,不需要在启动类上添加注解@EnableTransactionManagement // 启注解事务管理,等同于xml配置方式的 <tx:annotation-driven />@Transactional可以作用于接口、接口方法、类以及类方法上。当作用于类上时,该类的...
2018-10-18 10:33:56 1250
原创 springboot集成activeMQ
1.添加依赖:<!-- activemq --><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-activemq</artifactId></dependency&g...
2018-09-29 18:33:13 262
原创 Log4j 详细配置及配置详解
引入依赖:<!-- 忽略自带的日志框架. --><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> <exclusions> ...
2018-09-27 11:22:42 2437
原创 Hibernate-Validation的使用和常用的注解
@AssertTrue //用于boolean字段,该字段只能为true @AssertFalse//该字段的值只能为false @CreditCardNumber//对信用卡号进行一个大致的验证 @DecimalMax//只能小于或等于该值 @DecimalMin//只能大于或等于该值 @Digits(integer=2,fra...
2018-09-23 13:17:44 978
转载 Struts标签、Ognl表达式、el表达式、jstl标签库这四者之间的关系和各自作用
一 介绍1.Struts2的作用 Struts2标签库提供了主题、模板支持,极大地简化了视图页面的编写,而且,struts2的主题、模板都提供了很好的扩展性。实现了更好的代码复用。Struts2允许在页面中使用自定义组件,这完全能满足项目中页面显示复杂,多变的需求。Struts2的标签库有一个巨大的改进之处,struts2标签库的标签不依赖于任何表现层技术,也就是说strtus2提供了...
2018-09-21 11:49:07 147
转载 js获取select标签选中的值和表单提交方式
js获取select标签选中的值var obj = document.getElementByIdx_x(”testSelect”); //定位idvar index = obj.selectedIndex; // 选中索引var text = obj.options[index].text; // 选中文本var value = obj.options[index].value;...
2018-09-21 11:47:40 8984
转载 mybatis拦截器之分页插件
拦截器的一个作用就是我们可以拦截某些方法的调用,我们可以选择在这些被拦截的方法执行前后加上某些逻辑,也可以在执行这些被拦截的方法时执行自己的逻辑而不再执行被拦截的方法。Mybatis拦截器设计的一个初衷就是为了供用户在某些时候可以实现自己的逻辑而不必去动Mybatis固有的逻辑。打个比方,对于Executor,Mybatis中有几种实现:BatchExecutor、ReuseExecutor、S...
2018-09-21 11:46:36 936
原创 正则表达式
元字符 描述 \ 将下一个字符标记符、或一个向后引用、或一个八进制转义符。例如,“\\n”匹配\n。“\n”匹配换行符。序列“\\”匹配“\”而“\(”则匹配“(”。即相当于多种编程语言中都有的“转义字符”的概念。 ^ 匹配输入字行首。如果设置了RegExp对象的Multiline属性...
2018-09-19 18:33:18 187
原创 solr中特殊字符的处理
如查询的条件为:params.add("fq", "jiucaiyun_brand:Double A" ),这样是查不出带有空格的条件,需要把空格转义if(brand2.contains(" ")) { brand2=brand2.replace(" " , "\\ ");}params.add("fq", "jiucaiyun_brand:" + brand2);这样...
2018-09-19 17:53:45 1822
原创 solr - defType - 查询权重排序
Solr的defType有dismax/edismax两种,这两种的区别,可参见:https://blog.csdn.net/lyf_ldh/article/details/82754224下面示例用于演示如下场景:有一网站,在用户查询的结果中,需要按这样排序:VIP的付费信息需要排在免费信息的前头 点击率越高越靠前 发布时间越晚的越靠前这样的查询排序使用普通的查询结果的Orde...
2018-09-18 11:08:12 814
原创 solr 的edismax与dismax比较与分析
edismax支持boost函数与score相乘作为,而dismax只能使用bf作用效果是相加,所以在处理多个维度排序时,score其实也应该是其中一个维度 ,用相加的方式处理调整麻烦。而dismax的实现代码逻辑比较简单,看起来比较易理解,edismax是它的加强版,其实是改变了不少。。比如在以下:先看看dismax的解析主要实现思路:首先取出搜索字段名qf将最终解析成一个Boo...
2018-09-18 11:07:39 1319
原创 Solr的DisMaxQParserPlugin排序及使用自定义的requestHandle
DisMaxQParserPlugin提供在针对文本boost打分上,支持搜索多个schema索引字段,并针对每一个字段设置不同的boost权限。pf查询 与 qf查询pf: 可提供对一条记录的多个字段做匹配的功能qf: 针对查询的每个字段设置不同的boost权重打分,其设置的字段必须为在pf中配置的项。可在solrconfig.xml中的browse中配置做如下配置:<reque...
2018-09-18 11:03:56 429
原创 solr基本语法和关键字使用介绍
一、查询参数说明在做solr查询的时候,solr提供了很多参数来扩展它自身的强大功能!以下是使用频率最高的一些参数!1、常用q-查询字符串,这个是必须的。如果查询所有*:*,根据指定字段查询(Name:张三 AND Address:北京)fq- (filter query)过虑查询,作用:在q查询符合结果中同时是fq查询符合的,例如:q=Name:张三&fq=...
2018-09-17 10:49:12 4956
原创 solr高级查询
public class SearchServiceImpl implements SearchService { @Autowired private SolrServer solrServer; public void selectPaginationByQuery(String keyword ,Long brandId,Strin...
2018-09-17 10:29:08 518
原创 solr复制域和多值域高亮显示
复制域高亮:title和content组成一个复制域,law_keywordspublic SearchResult search(String keyword, int page, int rows) throws IOException, SolrServerException { SolrQuery query = new SolrQuery(); ...
2018-09-17 10:26:31 1653
原创 BloomFilter——大规模数据处理利器
Bloom Filter是由Bloom在1970年提出的一种多哈希函数映射的快速查找算法。通常应用在一些需要快速判断某个元素是否属于集合,但是并不严格要求100%正确的场合。 一. 实例 为了说明Bloom Filter存在的重要意义,举一个实例: 假设要你写一个网络蜘蛛(web crawler)。由于网络间的链接错综复杂,蜘蛛在网络间爬行很可能会形成“环”。为了避免形成“环...
2018-09-15 16:07:01 183
原创 spring注解@PostConstruct与构造的执行顺序和@PreDestroy
@PostConstruct是java5的时候引入的注解,指的是在项目启动的时候执行这个方法,也可以理解为在spring容器启动的时候执行,类似于Serclet的inti()方法。被@PostConstruct修饰的方法会在构造函数之后,init()方法之前运行。相当于init-mehtod<bean id="idService" class="com.robert.vesta.s...
2018-09-15 16:06:13 4939
原创 Spring 注解大全与详解
Spring使用的注解大全和解释注解 解释 @Controller 组合注解(组合了@Component注解),应用在MVC层(控制层),DispatcherServlet会自动扫描注解了此注解的类,然后将web请求映射到注解了@RequestMapping的方法上。 @Service 组合注解(组合了@Component注解),应用在service层(业务逻辑层)...
2018-09-15 16:05:41 197
原创 solr高级使用之group和facet
Group对比FacetGroup和Facet的概念很像,都是用来分组。Facet返回所有相关的结果并允许用户基于facet的目录重新定义结果集。Facet可以对分组数量进行过滤,以及排序,和日期范围,时间范围分组,但是如果你想得到具体的数据,还得需要查询一次或多次。group可以得到分组的组数量,一次请求,可以拿到所有的数据。Group和Facet可以结合起来使用,但只能使用facet....
2018-09-14 18:45:29 2411
原创 模板模式(Template Pattern)
在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。介绍意图:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。主要解决:一些方法通用,却在每一个子类都重新写了这一方法...
2018-09-09 09:10:22 383
原创 策略模式(Strategy Pattern)
在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象。策略对象改变 context 对象的执行算法。介绍意图:定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。主要解决:在有多种算法相似的情况下,使用 i...
2018-09-09 09:04:46 124
原创 mybatis多个入参,不同类型
当调用接口:public List<Message> getMessage(String company,List<Integer> types);userMapper.xml的书写应该为:<select id="getMessage" resultType="Message">SELECT * FROM op_message m...
2018-09-04 13:12:51 2033
原创 in和exists的区别
in 和existsin是把外表和内表作hash 连接,而exists 是对外表作loop 循环,每次loop 循环再对内表进行查询。一直以来认为exists 比in 效率高的说法是不准确的。如果查询的两个表大小相当,那么用in 和exists 差别不大。如果两个表中一个较小,一个是大表,则子查询表大的用exists,子查询表小的用in:IN适合于外表大而内表小的情况;EXISTS...
2018-09-03 09:32:44 275
原创 JSON转换为对象,数字类型默认值如何设为null
传递的json数据为:{\"loginID\":1,\"branchCD\":null,\"shelfNo\":null,\"stage\":null,\"range\":null,\"stack\":null,\"productCD\":null,\"productName\":null,\"specName\":null,
2018-08-31 17:38:06 6164
转载 springboot 集成 spring security 详细 附代码
一、Spring security 是什么?Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架。它提供了一组可以在Spring应用上下文中配置的Bean,充分利用了Spring IoC,DI(控制反转Inversion of Control ,DI:Dependency Injection 依赖注入)和AOP(面向切面编程)功...
2018-08-27 15:18:59 230
原创 springboot拦截post请求后request没有body
定义过滤器,包装requestimport java.io.IOException;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletException;import javax.serv...
2018-08-23 14:21:42 2793
转载 计算机网络协议层次
计算机网络学习的核心内容就是网络协议的学习。网络协议是为计算机网络中进行数据交换而建立的规则、标准或者说是约定的集合。计算机网络协议同我们的语言一样,多种多样。为了给网络协议的设计提供一个结构,网络设计者以分层的方式组织协议。一个协议层能够用软件、硬件或者两者的结合来实现。比如HTTP和SMTP这样的应用层协议几乎总是在端系统中用软件实现的,传输层协议也是如此。因为物理层和数据链路层负责处...
2018-08-18 10:44:55 6693
原创 springboot单元测试
添加依赖:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope></d
2018-08-12 16:19:41 104
转载 YAML最最基础语法
正如YAML所表示的YAML Ain’t Markup Language,YAML 是一种简洁的非标记语言。YAML以数据为中心,使用空白,缩进,分行组织数据,从而使得表示更加简洁易读。一边学习规则一边可以在在线Demo这个YAML转化JSON网页中进行上手练习基本规则YAML有以下基本规则:1、大小写敏感2、使用缩进表示层级关系3、禁止使用tab缩进,只能使用空格键4、缩进长...
2018-08-11 16:48:14 303
原创 观察者设计模式
当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知它的依赖对象。观察者模式属于行为型模式。介绍意图:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。主要解决:一个对象状态改变给其他对象通知的问题,而且要考虑到易用和低耦合,保证高度的协作。何时使用:一个对象(目...
2018-08-06 15:54:29 135
Spring Security、Spring Social 、Spring Security OAuth
2018-09-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人