- 博客(69)
- 资源 (1)
- 收藏
- 关注
原创 关于excel 导出 springboot 报错org.springframework.web.HttpMediaTypeNotAcceptableException
org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation项目都是@ RestController 返回结果都是json通过response 导出 xlsx 报错 @PostMapping(value = "/exportExcel") public Result<Void> exportExcel(@RequestBody Li
2021-12-31 16:26:45
2161
原创 RestTemplate 实践和踩坑日记
话不多说场景就是 我调用外部需要鉴权的接口, 需要按照对方的格式写参数。呜呜呜官网添加链接描述 说这个东西 5.0后不推荐使用了。大概下面这个意思 As of 5.0 the RestTemplate is in maintenance mode, with only minor requests for changes and bugs to be accepted going forward. Please, consider using the WebClient which offers a
2021-01-21 19:02:35
518
3
原创 Mybatis plus 多表分页查询实践和注意点
单表的Mybatis plus平时单表Mybatis plus 挺简单的。最近遇到两个表的连接查询。想到用mybatis plus 不合适。项目又没有用pageHelper ,自己写SQL又要 自己写分页。就琢磨下 mybatis plus 如何多表连接查询@TableField 注解官网描述这个注解可以加在字段上 。第一个解决是想要将查询的数据列 (放到当前对象里。)如何处理连接字段? xml 中描述第二个问题 如何用到它的分页,不用管 生效了。第三个问题,开干DO 属性 加入不是当前表
2021-01-20 14:37:45
909
原创 Java zip批量下载和踩坑笔记
话不多说,直接上代码需求是 阿里云 url pfd 文件打包成zip代码如下public void downloadZip(String no, HttpServletResponse response) { List<DeclareAttachmentDO> list = this.list(no); // 查询数据 String zipName = "xxx打包.zip"; OutputStream out = null;
2021-01-15 13:30:46
309
原创 MyBatis源码分析1-工作原理
MyBatis 的工作流程分析首先在 MyBatis 启动的时候我们要去解析配置文件,包括全局配置文件和映射器配置文件,这里面包含了我们怎么控制 MyBatis 的行为,和我们要对数据库下达的指令,也就是我们的 SQL 信息。我们会把它们解析成一个 Configuration 对象。第二个就是SqlSession 对象,通过会话工厂SqlSessionFactory 的Builder来创建。SqlSession 持有了一个 Executor 对象,用来封装对数据库的操作。在执行器 Executor
2020-10-10 15:53:12
140
原创 chrome same-site 跨域cookie问题
same-site 是什么?设置chrome策略: (win平台,mac 平台)升级chrome到最新版本打开chrome 输入 chrome://flags/ 搜索 SameSite by default cookies找到SameSite by default cookies和Cookies without SameSite must be secure将上面两项设置为 Disable.来自 https://www.cnblogs.com/websir/p/12553489.htm
2020-09-01 09:16:49
1075
原创 Ribbon负载均衡分析
负载均衡原理分析@LoadBalanced@Beanpublic RestTemplate restTemplate(RestTemplateBuilder builder) { return builder .setConnectTimeout(Duration.ofMillis(100)) .setReadTimeout(Duration.ofMillis(500)) .requestFactory(this::requestFactory)
2020-05-21 18:55:04
258
原创 确保 Web 安全的HTTPS
确保 Web 安全的HTTPSHTTP 的缺点通信使用明文(不加密),内容可能会被窃听TCP/IP 是可能被窃听的网络如果要问为什么通信时不加密是一个缺点,这是因为,按TCP/IP 协议族的工作机制,通信内容在所有的通信线路上都有可能遭到窥视。所谓互联网,是由能连通到全世界的网络组成的。无论世界哪个角落的服务器在和客户端通信时,在此通信线路上的某些网络设备、光缆、计算机等都不可能是个人的私有物,所以不排除某个环节中会遭到恶意窥视行为。加密处理防止被窃听通信的加密一种方式就是将通
2020-05-09 14:33:49
274
原创 Javascript原型与原型链
Javascript 笔记JS 原型与原型链javascript是基于原型的面向对象的语言,没有类的概念。_proto_ 实现继承关系对象名.prototype在原型对象层次优化子对象对公共方法的调用。普通对象与函数对象凡是通过 new Function() 创建的对象都是函数对象,其他的都是普通对象。构造函数实例的构造函数属性(constructor)指向构造函...
2020-05-05 20:31:40
186
原创 Spring bean的加载
Spring bean的加载AbstractBeanFactory#doGetBeandoGetBean才是真正向IoC容器获取被管理Bean的过程AbstractAutowireCapableBeanFactory#doCreateBean真正创建bean//获取IOC容器中指定名称的Bean @Override public Object getBean(String n...
2020-05-04 19:37:51
180
原创 Java Web 中中文编码问题
Java Web 中中文编码问题WEB环境中编码问题queryString 解析在请求头中 指定 content-type 的编码打开Tomcat conf 文件夹下的server.xml文件,对文件中设置如下: 在HTTP/1.1中增加URIEncoding="utf-8;<Connector port="8098" protocol="HTTP...
2020-05-02 11:04:20
181
原创 AOP分析
AOP分析核心概念前置通知:在目标方法执行之前执行,不改变方法的执行流程及执行结果,前置通知的实现类要实现MethodBeforeAdvice这个接口。环绕通知:也叫方法拦截器,可以改变方法的执行流程及执行结果,环绕通知的实现类要实现MethodInterceptor这个接口。 (最强大)后置通知:在目标方法执行之后执行,不改变方法的执行流程及执行结果,后置通知的实现类要实现A...
2020-05-01 21:02:19
207
原创 JAVA事件监听机制和 Spring 事件机制
JAVA事件监听机制和 Spring 事件机制JAVA事件监听机制 Java 事件处理采用的是面向对象方法,所有的事件都是由 java.util包中的EventObject类扩展而来的 ( 公共超类不是 Event , 它是旧事件模型中的事件类名 。 尽管现在不赞成使用旧的事件模型, 但这些类仍然保留在Java 库中 )。 事件对象封装了事件源与监听器彼...
2020-04-30 20:05:58
390
原创 bean的生命周期源码分析
bean的生命周期源码分析AbstractAutowireCapableBeanFactory#doCreateBeaninitializeBean(beanName, exposedObject, mbd);分析 protected Object doCreateBean(final String beanName, final RootBeanDefinition mbd, final ...
2020-04-29 11:39:35
151
原创 理解钩子方法
理解钩子方法对于钩子方法,是对于抽象方法或者接口中定义的方法的一个空实现。钩子方法是啥钩子顾名思义就是用来挂东西的。那么要挂东西必须有个被挂的东西,要不就是铁环、要不就是墙的边沿。所以要能挂住东西必须要有个被勾住的铁环,要一个钩子。那么在java中也是同样的原理,你首先需要一个被挂在的东西,一个挂载的东西。钩子的实现方法在实际中的应用,比如说有一个接口,这个接口里有7个方法,而你只想用其...
2020-04-28 13:39:49
2612
原创 快速失败(fail-fast)和安全失败(fail-safe)
快速失败(fail-fast)和安全失败(fail-safe)1.fail-fast和fail-safe比较Iterator的安全失败是基于对底层集合做拷贝,因此,它不受源集合上修改的影响。java.util包下面的所有的集合类都是快速失败的,而java.util.concurrent包下面的所有的类都是安全失败的。快速失败的迭代器会抛出ConcurrentModificationExcep...
2020-04-27 20:21:42
187
原创 SpringMVC DispatcherServlet 核心流程分析2
SpringMVC DispatcherServlet 核心流程分析/** 中央控制器,控制请求的转发 **/ protected void doDispatch(HttpServletRequest request, HttpServletResponse response) throws Exception { HttpServletRequest processedRequest =...
2020-04-26 21:00:51
158
原创 SpringMVC 基本流程源码分析1
SpringMVC 基本流程源码分析ContextLoaderListener分析 <!-- Spring监听器 --><listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener&...
2020-04-26 20:58:54
193
原创 Springboot 集成swagger 报错Error creating bean with name 'linkDiscoverers' defined in class path resourc
2020-04-26 10:58:14.466 WARN 1499 --- [ main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframewor...
2020-04-26 11:10:26
2197
原创 Springboot 自动装配浅析
1.注解 EnableAutoConfiguration@Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented @Inherited @SpringBootConfiguration @EnableAutoConfiguration @ComponentScan(excludeFilters = { ...
2020-03-16 14:18:31
113
原创 Promise对象
Promise 的含义Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大。Promise对象有以下两个特点。(1)对象的状态不受外界影响。Promise对象代表一个异步操作,有三种状态:pending(进行中)、fulfilled(已成功)和rejected(已失败)。只有异步操作的结果,可以决定当前是哪一种状态,任何其他操作都无法改变这个状态。这...
2020-01-17 11:07:32
120
原创 Guava Ordering 使用
public static void main(String[] args) { // Ordering.from(Comparator.comparing()) // 对集合中元素调用Function,再按返回值用当前排序器排序。 List<String> list = Lists.newArrayList("10","2","5"); Strin...
2020-01-10 15:42:10
156
原创 方法引用报错
List<String> list = Lists.newArrayList("10","2","5"); String min = Ordering.from(Comparator.comparingInt((String s) -> Integer.valueOf(s))).min(list); String min2 = Order...
2020-01-10 15:21:00
173
原创 关于request.getRequestURL()和request.getRequestURI
request.getRequestURL()和request.getRequestURI 如果我的请求是:http://localhost:8080/ServletTest02/servlet/Hello request.getRequestURI() 返回值类似:/ServletTest02/servlet/Hello request.getRequestURL() 返回值类似:...
2020-01-02 22:00:38
804
原创 正则表达式 (.*?)
.*? 表示匹配任意字符到下一个符合条件的字符例子:正则表达式a.*?xxx 可以匹配 abxxx axxxxx abbbbbxxx*匹配0或多个正好在它之前的那个字符。例如正则表达式。*意味着能够匹配任意数量的任何字符。?匹配0或1个正好在它之前的那个字符。注意:这个元字符不是所有的软件都支持的。.*是指任何字符0个或多个,.?是指任何字符0个或1个。.是任意字符 可以匹配任何单个...
2019-12-31 14:12:15
17115
1
原创 Spring事务管理抽象 第二篇
事务的同步管理器Spring 将 JDBC 的 Connection、Hibernate 的 Session 等访问数据库的连接或者会话对象统称为资源,这些资源在同一时刻是不能多线程共享的 。为了让 DAO 或 Service 类可以实现单例模式,Spring 的事务同步管理类 org.springframework.transaction.support.TransactionSynchron...
2019-12-21 23:15:45
192
原创 Spring事务管理抽象 第一篇
Spring事务管理抽象Spring 事务管理的SPI抽象层的三个主要接口,分别是:PlatformTransactionManager,TransactionDefinition,TransactionStatusTransactionDefinition 用于描述事物的隔离级别,超时时间,是否为只读事务,事务传播行为TransactionStatus 代表了一个事务的运行状态Plat...
2019-12-21 22:54:04
354
原创 遍历删除list元素java.util.ConcurrentModificationException,正确的删除的方式。
遍历删除list元素java.util.ConcurrentModificationException:错误的做法for(MtMakeOrderVO temp : mtMakeOrderVOS){ if(temp.getMyDate() == null){ mtMakeOrderVOS.remove(temp); }...
2019-11-08 10:22:36
215
原创 idea mybatis 出现 Invalid bound statement (not found):错误
idea mybatis项目 使用报错 mapper文件扫描不到!org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): .....当mapper 接口和xml文件 在java 路径下 如图IDEA的maven项目中,默认源代码目录下的xml等资源文件并不会在编译的时候一块打包进...
2019-09-22 21:06:19
138
转载 Could not resolve dependencies for project com.xxx:xxx-service:jar:2.0.0
Maven多模块项目jar包引用问题:Failed to execute goal on project xxx-service: Could not resolve dependencies for project com.xxx:xxx-service:jar:2.0.0: Failed to collect dependencies at com.yyy:yyy-facade:jar:1....
2019-07-17 09:55:18
5190
转载 MySQL 5.7 安装教程
博客参考:https://blog.youkuaiyun.com/weixin_44051608/article/details/85163823
2019-07-15 17:49:40
68
原创 IDEA 和 Maven 整合 spring 加mybatis 项目, idea 采坑
IDEA 和 Maven 整合 spring 加mybatis 项目, idea 采坑org.apache.ibatis.binding.BoindingException: Invalid bound statement (not found):就是mapper文件扫描不到!找到博客说: 需要在pom.xml文件中配置resource,不然mapper.xml文件就会被漏掉! ...
2019-04-18 12:59:01
285
原创 关于处理日期的工具类
记录笔记@Slf4jpublic class DateUtil { /** * 计算日期天数的差 * @param dateStr1 开始日期 * @param dateStr2 结束日期 * @return * @throws ParseException */ public static int daysOf...
2019-01-09 20:03:38
227
原创 关于Object[] 数组不能强转成String[]数组
笔记Object[] ob = {"hello","World"};String[] str = (String[]) ob;Object[] objArr = list.toArray();//这样是对象数组String keys[] = (String[])list.toArray();//两种转换String[] 数组 报异常Exception in thread “main”...
2019-01-08 09:44:14
7081
2
原创 stream api 中 list to map and to list
学习stream api 转list to map 记录一下笔记public class StreamToMap { List&amp;lt;Student&amp;gt; list = Arrays.asList(new Student(1, 18, &quot;阿才&quot;), new Student(2, 18, &quot;小强&quot; ), n
2019-01-01 11:36:56
836
原创 spring JDBCTemplate 错误 IncorrectResultSetColumnCountException
今天在是spring template 出现了这个错误org.springframework.jdbc.IncorrectResultSetColumnCountException: Incorrect column count: expected 1, actual 4 at org.springframework.jdbc.core.SingleColumnRowMapper.mapRo...
2018-11-26 09:36:30
591
原创 Java中的回调
回调函数经典实现class A实现接口CallBack callback—— 实现回调接口(可以是匿名内部类即是回调函数)class A中包含一个class B的引用b ——持有类B的引用class B有一个参数为callback的方法—&amp;amp;gt;f(CallBack callback)—— 持有回调接口的方法类A的某一个方法使用持有类B的引用调用类B的f方法,类B不就用callback引...
2018-11-16 14:44:43
159
优质面试题资源
2019-03-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人