![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 92
黑白格tt
^O^
展开
-
简单学习使用java中的stream操作
stream是处理集合的一种新方式常用的有包括去重(distinct()),排序(sort()),过滤(filter()),分组(group()),统计(sum();count()),以及提取(map)测试实体类import lombok.Data;import java.util.Objects;@Datapublic class StreamTestStudent { /** * 学号 */ private Integer id; /**原创 2020-06-04 17:36:43 · 452 阅读 · 0 评论 -
使用freemarker生成代码并打包下载
使用freemarker生成代码并打包下载使用freemarker生成代码FreeMarker 是一款 模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具。 它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。使用freemarker生成实体类 <dependency> <groupId>org.freemarker</groupId&g原创 2020-05-23 16:19:01 · 883 阅读 · 1 评论 -
读取项目中的json文件遇到的文件找不到异常
读取项目中的json文件遇到的文件找不到异常异常在读取项目中的json文件时碰到的异常; /* 异常: * class path resource [data/user.json] * cannot be resolved to absolute file path * because it does not reside in ...原创 2019-11-26 14:26:12 · 2975 阅读 · 0 评论 -
RestTemplate的请求参数传递问题
RestTemplate的请求参数传递问题问题使用RestTemplate传递参数的时候,RestTemplate默认传递的是json格式,将参数放在请求体中,这就导致使用@RequestParam接收不到参数.下面测试集中参数传递的方式测试方法1.先重现错误,使用RestTemplate传递json,同时使用@RequestParam接收参数.2.更改RestTemplate参数传递方...原创 2019-11-25 17:44:29 · 4687 阅读 · 1 评论 -
学习使用netty
学习使用nettynetty详细介绍1:https://www.infoq.cn/article/netty-high-performance/#anch111813netty详细介绍2:https://blog.csdn.net/sun7545526/category_7685695.htmlnetty使用:https://blog.csdn.net/haoyuyang/article/d...原创 2019-11-19 18:21:11 · 251 阅读 · 0 评论 -
学习使用nio编程
nio编程文章参考1:https://blog.csdn.net/haoyuyang/article/details/53231585bio与nio的区别其本质就是阻塞和非阻塞的区别。阻塞概念:应用程序在获取网络数据的时候,如果网络传输数据很慢,那么程序就一直等着,直到传输完毕为止。非阻塞概念:应用程序直接可以获取已经准备就绪的数据,无需等待。IO为同步阻塞形式,NIO为同步非阻塞形式...原创 2019-11-15 16:53:39 · 191 阅读 · 0 评论 -
spring中构造方法/@PostConstruct/@Autowired/@Value的执行顺序
spring中构造方法/@PostConstruct/@Autowired/@Value的执行顺序从Java EE5规范开始,Servlet中增加了两个影响Servlet生命周期的注解,@PostConstruct和@PreDestroy,这两个注解被用来修饰一个非静态的void()方法。使用说明:使用两个类测试,TestController和TestService将TestService...原创 2019-11-13 14:29:49 · 7095 阅读 · 1 评论 -
学习使用socket编程,并自己实现一个简单的redis客户端
文章参考1:https://blog.csdn.net/weixin_39634961/article/details/80236161文章参考2:https://blog.csdn.net/weixin_39569611/article/details/81879266文章参考3:https://blog.csdn.net/a78270528/article/details/80318571...原创 2019-11-01 16:06:20 · 728 阅读 · 1 评论 -
并发编程juc包学习7-ForkJoinPool分解任务
文章参考: https://blog.csdn.net/hanchao5272/article/details/79982095这个写的很详细.并发编程juc包学习7-ForkJoinPool分解任务什么是ForkJoinForkJoin并发框架:Fork=分解 + Join=合并ForkJoin并发框架是Java 7提供的一个用于并行执行任务的框架,是一个把大任务分割(Fork)成若...原创 2019-10-21 15:37:07 · 181 阅读 · 0 评论 -
并发编程juc包学习6-线程池
文章参考:https://blog.csdn.net/sinat_33087001/article/details/77531013并发编程juc包学习6-线程池为什么使用线程池?如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。那么有没有一种办法使得线程可以复用,就是执行完一个任务,并不被销毁...原创 2019-10-18 14:32:36 · 136 阅读 · 0 评论 -
并发编程juc包学习5-DelayQueue延迟队列
参考文章:https://mp.weixin.qq.com/s/vX2maaImVzvNjEOphBKzxQ并发编程juc包学习5延时队列学习延时队列,首先,它是一种队列,队列意味着内部的元素是有序的,元素出队和入队是有方向性的,元素从一端进入,从另一端取出。其次,延时队列,最重要的特性就体现在它的延时属性上,跟普通的队列不一样的是,普通队列中的元素总是等着希望被早点取出处理,而延时队列中...原创 2019-10-18 11:00:45 · 170 阅读 · 0 评论 -
并发编程juc包学习4-并发集合类
参考文章:https://blog.csdn.net/androidsj/article/details/80334497并发编程juc包学习4线程安全的集合,为了更好的实现集合的高兵法访问处理,创建了一组心的集合工具类。➣ List和Set集合:➣ CopyOnWriteArrayList相当于线程安全的ArrayList,实现了List接口。CopyOnWriteArrayList是...原创 2019-10-17 18:09:48 · 214 阅读 · 0 评论 -
并发编程juc包学习3-并发工具类
并发编程juc包学习3CountDownLatch就是线程计数器,当每次线程执行完任务后就会进行次数减一.直到将次数减为0,(意思就是线程全部执行完了任务)/** * 测试CountDownLatch,计数器 * 作用:一个线程等待其他线程全部完成后,程序才会继续运行,否则一直处于等待状态 */public class TestCountDownLatch { static ...原创 2019-10-16 16:45:46 · 212 阅读 · 0 评论 -
并发编程juc包学习2-锁
文章参考:https://blog.csdn.net/androidsj/article/details/80239640并发编程juc包学习2ReentrantLockReentrantLock是一个可重入的互斥锁,又被称为”独占锁”。➣ ReentrantLock锁在同一个时间点只能被一个线程锁持有;而可重入的意思是,ReentrantLock锁,可以被单个线程多次获取。➣ Ree...原创 2019-10-16 16:14:10 · 124 阅读 · 0 评论 -
并发编程juc包学习1-原子类
参考文章1:https://blog.csdn.net/androidsj/article/details/80167501参考文章2: https://blog.csdn.net/sinat_33087001/article/details/77653741并发编程juc包学习1一.JUC开发包简介➣ 传统线程编程模型之中为防止死锁等现象的出现(wait()、notify()、syn...原创 2019-10-16 15:20:15 · 210 阅读 · 0 评论 -
springboot使用tkmybatis
springboot使用tkmybatistkmybatis是对mybatis的进一步封装,它对基本的单表的增删改查又做了进一步封装.如果有复杂的需求也可以自定义SQL.pom依赖 <!--tkmybatis--> <dependency> <groupId>tk.mybatis</groupId...原创 2019-10-11 16:21:18 · 552 阅读 · 0 评论 -
与线程相关的知识点
与线程相关的知识点创建一个线程安全的单例public class SingleSafe { //无参构造私有化 private SingleSafe() {} //对象属内存可见,禁止指令重排 private volatile static SingleSafe singleSafe=null; public static SingleSafe get...原创 2019-09-11 17:00:08 · 244 阅读 · 0 评论 -
简单使用适配器模式
简用适配器模式适配器模式简介适配器模式(Adapter Pattern):将一个接口转换成客户希望的另一个接口,使接口不兼容的那些类可以一起工作,其别名为包装器(Wrapper)。适配器模式既可以作为类结构型模式,也可以作为对象结构型模式。在适配器模式中,我们通过增加一个新的适配器类来解决接口不兼容的问题,使得原本没有任何关系的类可以协同工作。根据适配器类与适配者类的关系不同,适配器模式可...原创 2019-09-11 16:55:16 · 141 阅读 · 0 评论 -
将数据库字段转换为excel表格
将数据库字段转换为excel表格以前写个一个使用了map做为数据的封装,总觉得效率低,后来换了个新思路,使用jdbc+list的方式.因为数据库的数据是规范的,有顺序的,所以使用list完全没有问题.将excel写入数据库请看:https://blog.csdn.net/sqlgao22/article/details/100082382pom依赖 <dependen...原创 2019-09-11 14:59:55 · 4120 阅读 · 0 评论 -
springboot实现CORS前后端分离的跨域访问
springboot实现CORS前后端分离的跨域访问什么是跨域跨域:指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对javascript施加的安全限制。例如:a页面想获取b页面资源,如果a、b页面的协议、域名、端口不同,所进行的访问行动都是跨域的,而浏览器为了安全问题一般都限制了跨域访问,也就是不允许跨域请求资源。其实当目前项目的协议、域名、端口不同的时候,浏览器...原创 2019-08-09 18:10:56 · 405 阅读 · 0 评论 -
使用token进行用户身份验证
使用token进行用户身份验证参考文章:https://blog.csdn.net/u014799292/article/details/88365086写的很详细,具体讲解了token的原理.为什么使用token以前都是使用session:当用户第一次通过浏览器使用用户名和密码访问服务器时,服务器会验证用户数据,验证成功后在服务器端写入session数据,向客户端浏览器返回sessio...原创 2019-08-05 23:53:17 · 6583 阅读 · 3 评论 -
springboot整合shiro进行权限的验证
springboot整合shiro进行权限的验证shiroshiro是目前主流的java安全框架,主要用来更便捷的认证,授权,加密,会话管理。验证的过程是:1.创建SecurityManager安全管理器;2.Subject主体带授权信息执行授权,请求到SecurityManager3.SecurityManager安全管理器调用Authorizer授权4.Authorizer结合主...原创 2019-08-05 18:27:09 · 3657 阅读 · 2 评论 -
jdbc连接报错CannotGetJdbcConnectionException
jdbc连接报错CannotGetJdbcConnectionException使用jdbc连接window环境下的MySQL报错:org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLExcepti...原创 2019-07-25 22:22:33 · 13725 阅读 · 0 评论 -
springboot使用使用mybatis报错BindingException
springboot使用使用mybatis报错BindingException使用springboot在启动类添加上@MapperScan(“com.jd.mapper”)注解,扫描mapper所在的包,否则springboot无法启动。使用mybatis的使用报错为:org.apache.ibatis.binding.BindingException: Invalid bound stat...原创 2019-07-25 22:10:34 · 871 阅读 · 0 评论 -
使用springboot前端js的404的问题
使用springboot前端js的404的问题在访问前端的时候总是出现404无法获取。同时使用jQuery也会报错:ReferenceError: $ is not defined前端获取js的写法<script src="/static/jquery-3.4.1.min.js"></script>原因springboot需要配置一个静态文件访问的WebM...原创 2019-07-24 17:59:38 · 3492 阅读 · 0 评论 -
学习使用swagger2自动生成api文档
学习使用swagger2自动生成api文档什么是swagger2随着前后端分离的使用,进行接口的说明文档变的很有必要了,Swagger2 是一个自动生成api说明文档的框架,它可以动态生成Api接口文档,降低沟通成本,促进项目高效开发。并且与springboot整合方便,添加pom依赖 <!--swagger2的依赖--> <dependency>...原创 2019-07-23 23:42:48 · 464 阅读 · 0 评论 -
使用xshell通过跳板机(堡垒机)连接服务器
文章转载:https://blog.csdn.net/filyouzicha/article/details/86517177总结一下就是为跳板机创建隧道,为服务器创建代理,隧道和代理的端口要一致.转载 2019-08-14 15:01:51 · 18244 阅读 · 4 评论 -
使用POI将数据库导出为excel表格
使用POI将数据库导出为excel表格准备使用的是POI,是Apache项目,目前已经很少有人用jxl了,学就学习常用的东西,没有必要去学冷门.数据库 <!--操作xls类型文件--> <dependency> <groupId>org.apache.poi</groupId> ...原创 2019-08-15 00:06:12 · 855 阅读 · 0 评论 -
springboot整合quartz实现分布式定时任务集群
springboot整合quartz实现分布式定时任务集群文章参考1:https://blog.csdn.net/fyfguuug/article/details/79358159文章参考2:https://blog.csdn.net/qq_41866572/article/details/80061853文章参考3:https://blog.csdn.net/wanghaoalain/ar...原创 2019-09-09 18:31:34 · 9241 阅读 · 6 评论 -
@Autowired无法注入,异常:NullPointerException: null
@Autowired无法注入,异常:NullPointerException: null@Autowired为自动装配,将对象自动注入到类中使用.@Autowired注入有两个条件,被注入的类的对象交给了spring管理;同时使用的类的对象也要交给spring管理.两个条件都满足才能注入.我们来看一个注入失败的例子.使用拦截器在拦截器中调用其他的系统,进行权限的验证.public cl...原创 2019-08-27 15:25:18 · 6580 阅读 · 0 评论 -
# @Value无法注入static属性
@Value无法注入static属性使用@Value直接放在static的属性上是无法注入内容的!!!此方式会一直是null.原因发现@value不能直接注入值给静态属性,spring 不允许/不支持把值注入到静态变量中;spring支持set方法注入,我们可以利用非静态setter 方法注入静态变量,并且使用@Value的类必须交个spring进行管理.就如同@Autowired有时无...原创 2019-08-27 11:28:32 · 7312 阅读 · 0 评论 -
@RequestBody和@RequestParam注解使用
@RequestBody注解使用文章参考:https://blog.csdn.net/justry_deng/article/details/80972817写的很详细,我只是看了部分.用法@RequestBody主要用来接收前端传递给后端的json字符串中的数据的(请求体中的数据的);GET方式无请求体,所以使用@RequestBody接收数据时,前端不能使用GET方式提交数据,而是用P...原创 2019-08-27 10:51:36 · 6671 阅读 · 1 评论 -
将excel表格数据转为数据库数据
将excel表格数据转为数据库数据使用的是POI,思路是:将excel的数据全部取出封装在实体类中,然后使用jdbc将数据写入数据库.使用的依赖 <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</...原创 2019-08-26 17:35:43 · 9214 阅读 · 0 评论 -
使用POI创建一个excel文件
使用POI创建一个excel文件使用文件输出流也可以创建一个xls文件,但是会经常出现乱码问题.使用POI就很方便了.引入pom依赖 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifact...原创 2019-08-12 11:41:52 · 921 阅读 · 0 评论 -
使用springboot整合shiro和token实现用户的身份验证和权限控制
使用springboot整合shiro和token实现用户的身份验证和权限控制使用shiro请看:https://blog.csdn.net/sqlgao22/article/details/98506479使用token请看:https://blog.csdn.net/sqlgao22/article/details/98532943由于已经分别学习了shiro和token想到整合在一起使...原创 2019-08-11 14:44:55 · 21073 阅读 · 7 评论 -
如何区分ajax请求和非ajax请求
如何区分ajax请求和非ajax请求有时需要根据请求的类型进行不同的判断,需要区分是否是异步请求.ajax请求的请求头会多出一个请求头x-requested-with,并且请求头的内容是:XMLHttpRequest,这样就很好区分了. String ajax = request.getHeader("x-requested-with"); //区分ajax请求...原创 2019-08-11 13:45:57 · 1302 阅读 · 0 评论 -
@ConditionalOnProperty的作用和用法
@ConditionalOnProperty的作用和用法在spring boot中有时候需要控制配置类是否生效,可以使用@ConditionalOnProperty注解来控制@Configuration是否生效.配置类代码:@Configuration@ConditionalOnProperty(prefix = "filter",name = "loginFilter",havingVa...原创 2019-07-19 11:07:16 · 210733 阅读 · 14 评论