- 博客(43)
- 收藏
- 关注
转载 spring之JdbcTemplate查询数据的两种方式
在spring中对原生的jdbc操作进行封装成模板类JdbcTemplate类,之所以封装,是因为原生jdbc操作不但麻烦而且啰嗦,使业务代码和数据库操作代码混在一起,相当杂乱。而且如果你获得数据源连接之后如果忘了关闭,就会有数据连接泄露的风险,久而久之,系统崩溃。而使用JdbcTemplate就不一样了,spring对于数据的操作采用模板模式进行,分为模板和回调两个部分,对于连接数据库,释放资源...
2019-07-01 15:40:26
1104
原创 redis 分布式锁实现方式
分布式锁 分布式锁其实可以理解为:控制分布式系统有序的去对共享资源进行操作,通过互斥来保持一致性。分布式锁的实现方式1、基于数据库的乐观锁实现分布式锁2、基于zookeeper 临时节点的分布式锁3、基于redis的分布式锁(常用)分布式锁的注意事项1、互斥性:在任意时刻,只有一个客户端能持有锁2、同一性:加锁和解锁必须是同一个客户端,客户端自己不能把别人加的锁给...
2019-06-18 20:52:16
242
转载 Java:第一章 Shiro简介——《跟我学Shiro》
张开涛 博客地址 :https://jinnianshilongnian.iteye.com/blog/2049092前言关于java项目的权限管理,我看到很多人在推荐使用shiro,似乎这个是当前比较流行的一个框架,所以在项目里面引入了shiro,用起来一波三折,特此记录一些学习的笔记。下面是找到的似乎是网上最热门的一个介绍帖–事实上官网讲的,个人感觉不是太清楚–加入一些心得和笔记。...
2019-05-30 10:08:15
240
转载 pinpoint
转载地址:https://blog.youkuaiyun.com/kangguang/article/details/77290209
2019-05-24 16:07:05
224
原创 CookieUtil
import javax.servlet.http.Cookie;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class CookieUtil { public static void SetCookies(String CookieN...
2019-01-30 16:47:38
200
原创 solr 在Java中的使用
//先创建一个实体,省略get, set 方法public class Project{ @Field(value = "id") private String id; @Field(value = "title") private String title; @Field(value = "description") private Str...
2019-01-28 21:18:59
279
原创 Java BasicDBObject $elemMatch 实现对文档的高级查询
项目中使用的是 Morphia 框架 的Datastore 来操作mongodb, 不的不说Morphia 还是非常强大的,满足了大部分的需求,知道有一天,我需要用到文档查询,想到了使用 hasThisElement(Object obj) 方法, datastore.createQuery(ContractCustomField.class).field("name").hasThisE...
2019-01-18 18:35:34
4538
原创 Rabbit returnListener
在发布消息时设置mandatory等于true,监听消息是否有相匹配的队列,没有时ReturnListener将执行handleReturn方法,消息将返给发送者 ;看个例子消费者package rabbitmq.api.returnListener;import com.rabbitmq.client.Channel;import com.rabbitmq.client....
2019-01-18 16:16:57
287
原创 Guava eventbus
EventBus是Guava框架对观察者模式的一种实现,使用EventBus可以很简洁的实现事件注册监听和消费。Guava框架里面提供了两种相关的实现,一种是单线程同步事件消费,另外一直是多线程异步事件消费。后者在对象设计上是前者的子类。 eventBus 是通过传递的参数来决定具体调用那个订阅者方法,1.两个简短的观察者类public class DataObserver1 { ...
2018-12-11 11:21:53
224
原创 idea 坑之路2018-12-03 21:15:14.123 [main] [INFO ] [c.w.s.guice.ServletRuntimeModule.loadFromClasspath:5
启动项目加载的时候出现2018-12-03 21:15:14.123 [main] [INFO ] [c.w.s.guice.ServletRuntimeModule.loadFromClasspath:57] - 0 modules was installed.查看断点, 是否勾选了java Method Breakpoints 选项,该选项是进入java 方法断点;...
2018-12-03 21:17:34
196
转载 终端下使用mysql数据库的基本操作
在学习表的操作前,我们要先掌握一些数据库的基本操作,比如创建数据库,查看数据库,使用数据库,删除数据库,我们的所有的表结构都是基于数据库的,也就是是说我们是在数据库上建立数据表。1.查看当前已有的数据库:show databases;以上数据库在mysql安装好的时候就默认存在的,它们记录了一些关于mysql的基本信息2.创建数据库:create database 数据库名;比如创...
2018-10-16 11:11:51
2556
原创 Spring boot 整合RabbitMQ AMQP实战
RabbitAdminRabbitAdmin类可以很好的操作RabbitMQ, 在Spring 中直接进行注入即可注意:1、autoStartup 必须要设置为true, 否则Spring 容器不会加载RabbitAdmin类;2、rabbitAdmin 的底层实现就是从Spring 容器中获取Exchange、Bingding、RoutingKey以及Queue的@Bean声...
2018-10-10 20:43:34
1496
原创 rabbitmq——高级特性
rabbitmq,高级特性目录rabbitmq,高级特性1.消息如何保障100% 的投递成功? 1.1 自定义消费者 1.2 消息的ack与重回队列 1.3 消息的限流 1.4 TTL消息 1.5 死信队列2.幂等性概念详解消费端,幂等性保障;(1)唯一id + 指纹码 机制, 利用数据库主键去重; (2) 利用redis 的原...
2018-09-29 17:42:36
3149
原创 rabbitMq AMQP.BasicProperties
AMQP.BasicProperties 提供了一个构造器,可以通过builder() 来设置一些属性; 可以通过AMQP.BasicProperties 来设置消息的一些属性Map<String, Object> headers = new HashMap<String, Object>(); headers.put("my1", ...
2018-09-21 18:00:32
7633
原创 rabbit的fanout_exchange
fanout Exchange1. 不处理路由键,只需要简单的将队列绑定到交换机上, 不走路由键;2. 发送到交换机的消息都会被转发到与该交换机绑定的所有队列上3.fanout 交换机转发消息是最快的看个图片,来源于 看一下测试代码消费者package fanoutExchange;import com.rabbitmq.client.*;public clas...
2018-09-21 13:27:40
425
原创 rabbit TopicExchange
看一幅图, 很清楚的讲述了topic package top_exchange;import com.rabbitmq.client.*;public class ConsumerTopicExchange { public static void main(String[] args) throws Exception { Connec...
2018-09-21 13:09:28
302
原创 rabbitMq 入门demo
创建一个项目,添加rabbitmq 的依赖jar包<dependency> <groupId>com.rabbitmq</groupId> <artifactId>amqp-client</artifactId> <version>3.5.3<...
2018-09-21 10:33:29
1803
原创 消息中间件Rabbit Mq
1、RabbitMq 核心概念及AMQP协议RabbitMq 高性能是如何做到的 RabbitMq 是采用Erlang语言开发的, Erlang 最初用于交换机领域 Erlang的优点 有着和sockte 语言一样的延迟和响应2.使用brew来安装 RabbitMQ 与启动brew install rabbitmq安装成功localhost:~ l...
2018-09-19 19:59:08
700
原创 Git设置当前分支为默认push分支
git push 到远程分支时, 出现这种情况,是因为没有设置默认push 的分支;fatal: The upstream branch of your current branch does not matchthe name of your current branch. To push to the upstream branchon the remote, use gi...
2018-09-19 16:20:35
14287
原创 guice 注解小结
@ImplementedBy首先我们定义服务Service,这个服务有一个简单的方法sayHello,当然了我们有一个服务的默认实现ServiceImp然后使用@ImplementedBy将服务和默认实现关联起来,方法注册protected <T> void register(Class<T> serviceInterface, Class<? exte...
2018-09-13 20:31:06
1006
原创 guice 注解 定义拦截器
首先我们需要定义一个类,实现 MethodInterceptor 接口public class AuthorityExpenseAdminInterceptor implements MethodInterceptor { // 可以注入一些自己用到的类 @Inject private ProjectBudgetDao projectBudgetDao; @...
2018-09-13 20:22:22
912
原创 Map 工具类
map 工具类key 是否存在 /** * * key是否存在 * @param map * @param key * @param <K> * @param <V> * @return */ public static <K, V> Boolean isExist...
2018-09-13 11:35:58
678
转载 ava Map 按Key排序和按Value排序
Map排序的方式有很多种,这里记录下自己总结的两种比较常用的方式:按键排序(sort by key), 按值排序(sort by value)。1、按键排序jdk内置的java.util包下的TreeMap<K,V>既可满足此类需求,向其构造方法 TreeMap(Comparator<? super K> comparator) 传入我们自定义的比较器即可实现按键...
2018-09-12 20:53:20
155
原创 BigDecimal 结果保存百分比
public static void main(String[] args) { BigDecimal a = new BigDecimal(10); BigDecimal b = new BigDecimal(3); BigDecimal divide = a.divide(b, 2, BigDecimal.ROUND_HALF_UP); System.out....
2018-09-12 15:48:17
6738
原创 mysql 更改密码,启动
安装前,我们可以检测系统是否自带安装 MySQL:rpm -qa | grep mysql如果你系统有安装,那可以选择进行卸载:rpm -e mysql // 普通删除模式rpm -e --nodeps mysql // 强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除可以使用brew来安装,个人觉的很好用;Mysql安装成功后...
2018-09-08 15:45:55
267
转载 Pinyin4j使用手册,HanyuPinyinVCharType的意义
一般用法 pinyin4j的使用很方便,一般转换只需要使用PinyinHelper类的静态工具方法即可: String[] pinyin = PinyinHelper.toHanyuPinyinStringArray(‘刘’); //该类还有其他的拼音转换形式,但是基本上用不到,就不介绍了 返回的数组即是该字符的拼音,如上例就是pinyin[0]=liu2,后面的数字代表声调,声调为5表示轻...
2018-09-05 11:46:52
2699
转载 java finalize方法总结、GC执行finalize的过程
1. finalize的作用 finalize()是Object的protected方法,子类可以覆盖该方法以实现资源清理工作,GC在回收对象之前调用该方法。 finalize()与C++中的析构函数不是对应的。C++中的析构函数调用的时机是确定的(对象离开作用域或delete掉),但Java中的finalize的调用具有不确定性 不建议用finalize方法完成...
2018-08-15 19:52:53
163
原创 MongoDb Count+distinct+Group
1.Count 请查询persons中美国学生的人数.方式1、 db.persons.find({country:"USA"}).count()方式2、{ count: <collection or view>, query: <document>, limit: <integer>, skip: <in...
2018-08-07 19:51:46
1984
原创 MongoDb 索引
•索引详讲 1.创建简单索引准备数据:for(var i = 0 ; i<200000 ;i++){ db.books.insert({number:i,name:i+"book"})} 1.先检验一下查询性能 var start = new Date()db.books.find({number:65871})va...
2018-08-06 20:21:56
223
转载 Java中的正则表达式(详细)
转载说明:此文中正则表达式中所有的正斜杠/均为反斜杠\)首先介绍下正则表达式: 1.字符x 字符 x。例如a表示字符a\\ 反斜线字符。在书写时要写为\\\\。(注意:因为java在第一次解析时,把\\\\解析成正则表达式\\,在第二次解析时再解析为\,所以凡是不是1.1列举到的转义字符,包括1.1的\\,而又带有\的都要写两次)\0n 带有八进制值 0的字符 ...
2018-08-06 16:48:44
442
原创 mongoDb Find查询
•Find 详讲1.指定返回的键 db.[documentName].find ({条件},{键指定}) 数据准备db.persionpretty() 方法以格式化的方式来显示所有文档。db.books.find().pretty() 1.1 查询出所有数据的指定键(name ,age ,country) db.persons.fi...
2018-08-02 15:12:57
3594
原创 mongoDb 增删改操作
创建数据库use foobaruse foobar 也可也用于切换数据库;show dbs 查看数据库show dbsadmin 0.000GBconfig 0.000GBfoobar 0.000GBlocal 0.000GBtest 0.000GB通过 show collections 可以查看到文档对象> show coll...
2018-08-01 18:27:08
325
原创 MongoDb 安装>
安装 : brew install mongodb Installing dependencies for mongodb: gdbm==> Installing mongodb dependency: gdbm==> Downloading https://homebrew.bintray.com/bottles/gdbm-1.17.high_sierra.bott...
2018-08-01 10:43:44
348
原创 brew
brew --help 帮助brew --cache 查看brew缓存地址brew install mongodb 安装MongoDBbrew uninstall mongodb 卸载安装的软件 ,我这里是卸载mongodb
2018-07-31 20:34:36
2489
原创 集合去重,并保持原来的顺序
在工作中需要对一个集合去重,但是要保留之前的数据,当时想到了 new LinkedHashSet<>(tasks); 很方便的就解决了;LinkedHashSet<Task> newTasks1 = new LinkedHashSet<>(tasks);但是高兴的太早了,如果存在继承关系,如果只有继承类中的属性不一样,其他的都是一样,这样做任然会丢失...
2018-07-31 16:32:07
2751
原创 java 动态代理
涉及到两个类InvocationHandlerProxy动态代理有以下特点:1.代理对象,不需要实现接口2.代理对象的生成,是利用JDK的API,动态的在内存中构建代理对象(需要我们指定创建代理对象/目标对象实现的接口的类型)3.动态代理也叫做:JDK代理,接口代理public interface IUserDao { void save();}实现这个接口...
2018-07-31 10:47:56
151
转载 使用IntelliJ IDEA查看类的继承关系图形
最近正好也没什么可忙的,就回过头来鼓捣过去的知识点,到Servlet部分时,以前学习的时候硬是把从上到下的继承关系和接口实现记得乱七八糟。 这次利用了IDEA的diagram,结果一目了然,也是好用到炸裂,就此分享。 1、查看图形形式的继承链在你想查看的类的标签页内,点击右键,选择 Diagrams,其中有 show 和 show ... Popup,只是前者新建在标签页内,后...
2018-07-31 10:18:22
208
转载 redis入门篇 不管你是码场菜鸟,还是码产老鸟,这篇关于redis,真的很良心,反正我受益匪浅
转载自: http://www.h5min.cn/article/56448.htm 这篇文章主要介绍了超强、超详细Redis入门教程,本文详细介绍了Redis数据库各个方面的知识,需要的朋友可以参考下 目录【redis是什么】【redis的作者何许人也】【谁在使用redis】【学会安装redis】【学会启动redis】【使用redis客户端】【redis数据结构...
2018-07-26 19:39:07
438
转载 MyBatis3-基于注解的示例
在基于注解的示例中,可以简化编写XML的过程,全部采用注解方式进行编写,并在注解上写SQL语句,语句和XML的语句保持一致,并且可以省略掉XML文件不用引入的好处。但还有一点,基于注解的方式还没有百分百覆盖所有XML标签,所有还是有一点缺陷。在org.apache.ibatis.annotations包下包含了所有注解。下面引用官方文档的说明http://www.mybatis.org/m...
2018-07-26 18:46:44
169
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人