Java
谢同学谢童鞋
笃定一件事,耐心长久的坚持
展开
-
正则表达式匹配两个指定字符串之间的内容
public static List<String> getSubUtil(String result,String rgex){ List<String> list = new ArrayList<>(); Pattern pattern = Pattern.compile(rgex); Matcher m = pattern.matcher(result); while(m.find()){ int i=1; list.add(m.group(i)).原创 2021-02-08 11:38:50 · 1727 阅读 · 0 评论 -
springboot 整合mybatis 报错 No enum constant org.apache.ibatis.type.JdbcType."INTEGER"
首先,记录一下springboot整合mybatis的使用:pom.xml: <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> &...原创 2019-05-17 10:48:45 · 2039 阅读 · 1 评论 -
解决springboot Failed to load ApplicationContext报错
springboot使用2.1.4版本:import lombok.extern.slf4j.Slf4j;import org.junit.Test;import org.junit.runner.RunWith;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.boo...原创 2019-05-06 15:45:08 · 57454 阅读 · 4 评论 -
不可变对象设计模式
线程安全主要目的是在受控的并发访问中防止数据发生变化。除了使用synchronized关键字同步对资源的写操作之外,还可以在线程之间不共享资源状态,甚至将资源的状态设置为不可变。java.lang.String的每一个方法都没有同步修饰,但是在多线程访问的情况下是线程安全的,Java8中通过Stream修饰的ArrayList在函数式方法并行访问的情况下也是线程安全的。所谓“不可变对象”是...原创 2019-01-30 11:08:39 · 289 阅读 · 0 评论 -
Mybatis拦截器介绍及分页插件
Mybatis拦截器介绍及分页插件文章链接:http://haohaoxuexi.iteye.com/blog/18510811.1 目录1.1 目录1.2 前言1.3 Interceptor接口1.4 注册拦截器1.5 Mybatis可拦截的方法1.6 利用拦截器进行分页1.2 前言 拦截器的一个作用就是我们可以拦截某些方法的调用...转载 2016-04-14 21:07:29 · 539 阅读 · 0 评论 -
Java并发编程--基础(四)
阅读《Java高并发编程详解》后的笔记。ThreadGroupJava中,默认情况下,新的线程都会加入到main线程所在的group中,main线程的group名字同线程名。和线程存在父子关系一样,ThreadGroup也存在父子关系。复制Thread和ThreadGrouppublic int enumerate(Thread[] list) public int enumer...原创 2019-01-23 15:26:55 · 292 阅读 · 0 评论 -
For input String "" 类型转换错误
这是一个非常小的错误,当它发生的时候,发现自己在修改代码的时候就已经给自己埋下了坑,发生这个错误一般是因为: 前台界面表单中没有数据,提交到后台之后进行了数据类型转换,所以会出错,因为前台表单中没有数据的时候,传到后台之后是“”,而不是NULL。String postCycle = this.getMethod();obj.setPostCycle(Long.va...原创 2018-03-28 10:15:18 · 19423 阅读 · 0 评论 -
SpringBoot 配置多数据源
有时候一个工程需要多个数据源,SpringBoot配置多数据源如下:1、配置文件application.properties:spring.thymeleaf.cache=truespring.thymeleaf.prefix=classpath:/templates/spring.thymeleaf.suffix=.htmlspring.thymeleaf.mode=HTML5...原创 2018-07-10 15:37:34 · 774 阅读 · 0 评论 -
获取访问的真实ip地址
获取访问的ip地址:@RequestMapping(value ={"/third/staticReport","staticReport"} , method = {RequestMethod.GET,RequestMethod.POST}) public String getBIReportSetting( @RequestParam("orgIndex") String o...原创 2018-07-11 14:29:26 · 833 阅读 · 0 评论 -
SpringBoot + maven + IDEA开发第一个应用程序
在此之前都是使用eclipse/myeclipse等IDE开发工具进行开发Javaweb应用,而spring boot我也是刚刚接触,在此记一下使用心得:一、IDEA安装及使用Idea 2017版本下载:https://pan.baidu.com/s/1N--Oc8VTe5gHXynPZ5BUAA安装之后会需要激活,激活我也是百度知道的,方法有几种,推荐使用以下这种方式:在C:\W...原创 2018-07-14 17:36:59 · 404 阅读 · 0 评论 -
优雅地使用枚举enum
在开发中,我们可能会遇到这样的问题:某一个对象的某些字段比如常见的xxx的状态,字段名字叫xxxStatus,在数据库中存储的时候存的值一般是数字,比如:0 未处理 1 已处理 2 已取消在界面展示的时候,我们不可能直接将数字展示,需要将它的实际含义进行对应展示,以前的自己代码可能会这样写: <td> <c:choose> ...原创 2019-05-14 16:46:15 · 697 阅读 · 0 评论 -
redis分布式锁实现秒杀
使用springboot+spring data jpa +redis实现一个简单的后台秒杀程序:pom.xml: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis&...原创 2019-05-21 14:32:22 · 1381 阅读 · 0 评论 -
一线大厂的 MQ 组件实现思路和架构设计思路
转载作者:HmilyMing链接:https://www.jianshu.com/p/38344551feaa来源:简书首先来看看一线大厂的 架构图一线大厂的 架构图如上图所示,中间是我们的 MQ 集群架构, 在上层利用 keepalived 和 HA-Proxy, 最下面是 两个大的 MQ 集群 做一个高可用。当然了,在实际大厂里面 可能就不止 两个集群了,可以是...转载 2019-07-05 09:55:15 · 540 阅读 · 0 评论 -
SET化消息中间件架构实现
SET化架构设计方案:基于集群图中有两个集群,如果需要实现数据同步,那么通过Federation将集群一的node3和集群二的node1实现数据同步即可,在集群内可以通过镜像队列进行数据同步。实现:通过Federation插件进行数据同步1、准备好环境:虚拟机+centos7安装好rabbitmq 2个节点:192.168.2.208 、192.1...原创 2019-07-05 09:50:36 · 784 阅读 · 0 评论 -
RabbitMQ集群架构
转载:作者:一行代码一首诗链接:https://www.jianshu.com/p/588e1c959f03来源:简书RabbitMQ集群架构主备模式实现RabbitMQ的高可用集群,一般在并发和数据量不高的情况下,这种模式非常的好且简单。主备模式也称为Warren模式主备模式:主节点提供读写,从节点不提供读写服务,只是负责提供备份服务,备份节点的主要功能是在主节点宕机时...转载 2019-07-05 09:50:06 · 822 阅读 · 0 评论 -
RabbitMQ整合Spring Cloud Stream
RabbitMQ整合Spring Cloud Stream说明:最底层是消息服务,中间层是绑定层,绑定层和底层的消息服务进行绑定,顶层是消息生产者和消息消费者,顶层可以向绑定层生产消息和和获取消息消费。 Barista接口:Barista接口是定义来作为后面类的参数,这一接口定义通道类型和通道名称,通道名称是作为配置用,通道类型则决定了app会使用这一通道进行发送消息还是从中接收消...原创 2019-07-10 10:59:11 · 686 阅读 · 0 评论 -
RabbitMQ整合Springboot实现消息100%投递成功方案一
RabbitMQ保障消息100%投递成功设计方案一如下图:具体参考:RabbitMQ高级特性--消息100%投递成功方案RabbitMQ整合Springboot代码简单实现以上方案:gitHub:https://github.com/upSunShine/moocStudy/tree/master/spring-rabbitmq...原创 2019-07-04 10:25:17 · 581 阅读 · 0 评论 -
RabbitMQ高级特性--消息100%投递成功方案
保障消息100%投递成功设计方案什么是生产端的可靠性投递?保障消息的成功发出 保障MQ节点的成功接收 发送端收到MQ节点(Broker) 确认应答 完善的消息补偿机制如果想保障消息100%投递成功,只做到前三步不一定能够保障。有些极端情况,比如生产端在投递消息时可能失败了,或者说生产端投递了消息,MQ Broker也收到了,MQ Broker在返回确认应答时,由于网络闪断...原创 2019-07-04 10:23:45 · 779 阅读 · 1 评论 -
ActiveMQ入门(二) Spring Jms
activemq集成spring 使用:pom.xml:<properties> <spring.version> 4.2.5.RELEASE </spring.version> </properties> <dependencies> <dependency> ...原创 2019-05-23 11:57:39 · 156 阅读 · 0 评论 -
ActiveMQ入门(一)
安装:使用服务安装,不用每次启动“黑匣子”。启动之后浏览器可以进入后台管理:代码演示两种消息模式:pom.xml:<dependencies> <dependency> <groupId>org.apache.activemq</groupId> <...原创 2019-05-23 11:45:44 · 181 阅读 · 0 评论 -
工具类--向指定url发送Get/Post请求
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.io.PrintWriter;import java.net.URL;import java.net.URLCon...原创 2018-07-24 15:12:40 · 434 阅读 · 0 评论 -
排序算法
前两天面试,开始没有进行笔试,谈着谈着面试官突然说,请写一个冒泡排序,难怪当时进来的时候他手上拿着一支笔,说着将我的简历朝背面铺开,当时心里小小慌了一下,因为我算法不算好,而且很久没有复习算法基础知识,拿起笔那一刻,强行叫自己不要慌,然后开始回忆冒泡的步骤,大概3分钟的样子,写出来了,写完之后心想,回去之后还是得好好巩固基础,不进则退。import java.util.Arra...原创 2018-08-13 15:45:27 · 230 阅读 · 0 评论 -
mybatis configuration 一些标签配置问题
The content of element type "configuration" must match "(properties>settings>typeAliases>typeHandlers>objectFactory>objectWrapperFactory>plugins>environments>mappers?)".(prop...原创 2016-04-14 21:57:53 · 4913 阅读 · 0 评论 -
mybatis java.lang.NullPointerException
org.apache.ibatis.exceptions.PersistenceException:### Error querying database. Cause: java.lang.NullPointerException### The error may exist incom/imooc/config/sqlxml/Command.xml### The error ma...原创 2016-04-14 21:52:45 · 18749 阅读 · 1 评论 -
java.lang.IllegalArgumentException: Result Maps collection does not contain value forcom.imooc.bean
org.apache.ibatis.exceptions.PersistenceException:### Error querying database. Cause: java.lang.IllegalArgumentException: Result Maps collection does not contain value forcom.imooc.bean.CommandCont...原创 2016-03-18 18:10:26 · 5730 阅读 · 0 评论 -
java.lang.IllegalArgumentException: Mapped Statements collection does not contain value forCommand.c
org.apache.ibatis.exceptions.PersistenceException:### Error querying database. Cause:java.lang.IllegalArgumentException: Mapped Statements collection does not contain value forCommand.commandLi原创 2016-03-18 18:06:14 · 2940 阅读 · 0 评论 -
spring 源码如何导入到eclipse
http://wind-bell27.iteye.com/blog/1969930http://www.cnblogs.com/xleequ/archive/2013/01/16/2863332.html官方说明:https://github.com/spring-projects/spring-framework 先讲基本步骤,如下:去GitHub中下载spring...转载 2016-03-03 22:46:45 · 2707 阅读 · 0 评论 -
Hibernate之org.hibernate.exception.GenericJDBCException:could not execute statement
ERROR: Field 'rempid' doesn't have adefault value2016-3-1 21:07:20 org.hibernate.engine.jdbc.batch.internal.AbstractBatchImplreleaseINFO: HHH000010: On release of batchit still contained JDBC stat...原创 2016-03-02 22:36:24 · 10701 阅读 · 0 评论 -
Hibernate HQL之org.hibernate.QueryException:could not resolve
org.hibernate.QueryException:could not resolve Customer.hbm.xml:<?xml version="1.0" encoding="utf-8"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"...原创 2016-03-02 22:19:10 · 779 阅读 · 0 评论 -
Hibernate之Could not getconstructor for org.hibernate.persister.entity.SingleTableEntityPersister
Could not getconstructor for org.hibernate.persister.entity.SingleTableEntityPersister “Unableto instantiate default tuplizer[org.hibernate.tuple.entity.PojoEntityTuplizer] 同时有两个错误:配置文件错误:...原创 2016-03-02 22:14:17 · 4715 阅读 · 0 评论 -
Could not resolve archetype org.apache.maven.archetypes:maven-archetype-quickstart
Could not resolve archetype org.apache.maven.archetypes:maven-archetype-quickstart:RELEASE from any of the configured repositories.Could not resolve artifact org.apache.maven.archetypes:maven-arch...原创 2016-04-21 18:03:44 · 1042 阅读 · 0 评论 -
Echarts+Java实现根据开始时间和结束时间按周或者按月查询
前端:jquery,jsp,html,日历插件:my97 后端 java springmvc该实现方式代码写的很low,欢迎提出意见改正!实现效果:(1)按周查询,选择日期只能从周一开始。 这是日历控件my97控制实现的,可到其官网查询使用文档(2)按月查询,只看到月份(3)按周查询效果图:横坐标是第几周(4)按月查询结果图:横坐标是几月1、引入ec...原创 2018-11-28 17:03:35 · 8799 阅读 · 9 评论 -
7种单例模式设计
阅读《Java高并发编程详解》后的笔记。1、饿汉式:/** * 饿汉式 * 若一个类的成员都是比较重的资源,这种方式不合适 *///不允许被继承public final class Singleton { //定义实例变量的时候直接初始化 //instance被ClassLoader 加载后很长一段时间才被使用,它所开辟的堆内存会驻留更久 privat...原创 2019-01-04 11:38:47 · 823 阅读 · 1 评论 -
quartz+Java:定时更新每周的可预约日期(加入补班,排除法定假日),可预约时间与预设一致
首先,quartz与spring结合使用:pom.xml: <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>2.2.1</version&g...原创 2018-12-05 16:06:23 · 1075 阅读 · 0 评论 -
Single Thread Execution设计模式
Single Thread Execution设计模式:同一时刻只允许一个线程访问共享资源。synchronized关键字虽然可以保证single Thread Execution,但是使用不当可能会导致死锁。死锁场景示例:吃面问题,A手持刀等待B放下叉,B手持叉等待A放下刀。public class Tableware { //餐具名称 private final ...原创 2019-01-29 10:39:28 · 209 阅读 · 0 评论 -
Java并发编程--volatile
阅读《Java高并发编程详解》后的笔记。并发编程的三个重要特征原子性指在一次的操作或者多次操作中,要么所有的操作全部得到了执行并且不会受到任何因素的干扰而中断,要么所有的操作都不执行。典型代表:银行转账。tip1:两个原子性的操作结合在一起未必是原子性的,如i++,其中 get i,i+1,set i=x都是原子性操作,但是不代表i++是。tip2:volatile不保证数据...原创 2019-01-21 14:48:46 · 230 阅读 · 0 评论 -
Java并发编程--基础(三)
阅读《Java高并发编程详解》后的笔记。线程间通信同步阻塞和异步非阻塞同步方式提交业务请求:缺陷:客户端等待时间过长:提交Event时间+接受Event创建thread时长+业务处理时长+返回结果时长 系统整体吞吐量不高 一个线程处理一个Event,频繁创建开启与销毁,增加额外开销 业务高峰时,大量业务处理线程阻塞导致频繁CPU上下文切换,降低系统性能。异步方式提交...原创 2019-01-24 14:50:40 · 181 阅读 · 0 评论 -
JAVA并发编程--JAVA内存模型以及CPU缓存知识
阅读《Java高并发编程详解》后的笔记。CPU cache模型CPU的处理速度和内存的访问速度差距太大,于是在CPU和主存之间增加了缓存。CPU cache模型如图:Cache的出现解决直接访问内存效率低下。程序运行时,Cache会将运算所需要的数据从主存复制一份到CPU cache中,这样CPU进行计算时就可以直接对CPU Cache中的数据进行读取和写入,运算结束后,再将C...原创 2019-01-18 17:25:46 · 396 阅读 · 0 评论 -
Java并发编程--线程上下文类加载
阅读《Java高并发编程详解》后的笔记。类加载过程1、类加载的过程类加载阶段类连接阶段(1)验证文件格式,元数据验证、字节码验证、符号引用验证。(2)准备为类变量(静态变量)分配内存并设置初始值。(3)解析类接口解析、字段解析、类方法解析、接口方法解析。类初始化阶段如果某各类没有静态代码块、静态变量,那就不会生成<clinit>(),接...原创 2019-01-18 14:54:32 · 368 阅读 · 0 评论 -
Java并发编程--基础(二)
阅读《Java高并发编程详解》后的笔记。线程安全与数据同步上篇中,模拟营业大厅叫号机,程序设计最大号码是50,运行结果很正常,但是如果变成500,多次运行可能出现以下问题:某个号码略过没有出现 某个号码多次显示 号码超过了500/** * 模拟营业大厅叫号机 * */public class TicketRunnable implements Runnable{ ...原创 2019-01-18 14:53:44 · 218 阅读 · 0 评论