java
白马湖小龙王
我在修仙
展开
-
SSM框架(Spring+SpringMVC+MyBatis)详细搭建过程
首先来看web.xml我的配置中主要分三部分: 1定义要加载的Spring配置文件 <context-param> <!--参数定义了要装入的 Spring 配置文件。 --> <param-name>contextconfigLocation</param-name> <param-value>classpath:applicationContext.xml原创 2017-09-15 16:34:00 · 403 阅读 · 0 评论 -
模拟spring注入mybatis原理【重写spring】
思路 通过注解拦截到需要进行数据持久化操作的类,获取所所携带的注解信息,及dao层接口的请求路径,通过工厂创建实例注入到所需的类中步骤 1构建所需的注解 mapper注解,用于注册dao层接口@Target({ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interface M...原创 2018-06-01 14:19:13 · 565 阅读 · 0 评论 -
netty点对点聊天保存聊天记录
接着这一篇点对点通讯的来,请先弄懂netty实现点对点通讯的原理效果 聊天界面 聊天记录 实现方案 1首先拼接用户id和好友id在Redis数据库中注册key值 Jedis jedis = new Jedis("xxx.xx.xx.xxx", 6379); //权限认证 jedis.auth("xxxx"); ...原创 2018-06-27 14:27:00 · 2170 阅读 · 0 评论 -
Filter,拦截器,aop拦截的实现与区别
Filter,拦截器,aop拦截的实现与区别效果 实现 1 Filter 直接实现Filter接口,重写拦截方法,再到@WebFilter注解上配置拦截规则即可实现@Component@WebFilter(urlPatterns = { "/**" }, filterName = "tokenAuthorFilter")public class Configur...原创 2018-07-10 16:06:03 · 10092 阅读 · 1 评论 -
重写 Collections.sort 的 compare 方法自定义排序
业务说明: 数据结构:list 需要根据bean内某个字段的大小进行倒序排序 步骤: 1,实现Comparator接口public class CourseScheduleImpl implements Comparator<PageData> {2重写方法 @Override public int compare(PageData o1, ...原创 2018-07-11 17:36:33 · 5484 阅读 · 0 评论 -
springboot Filter解决Access-Control-Allow-Origin实现跨域
@Component@WebFilter(urlPatterns = { "/**" }, filterName = "tokenAuthorFilter")public class ConfigurationFilter implements Filter{ @Override public void destroy() { // TODO Auto-gene...原创 2018-07-13 20:07:50 · 1555 阅读 · 1 评论 -
仿照shiro实现前后分离项目权限认证
第一部分:访问控制 目的:防止非本系统用户通过http请求操作用户数据 方法: 1 当用户执行登录操作的时候,由前端生成token传到后台,后台将token以及该token的过期的时间存储在数据库 2 往后所有的api请求头内必须携带该token,否则该请求无效。如果请求中携带token则前去数据库检索该token的有效性及是否超时 实现:@Component//拦截所有路径...原创 2018-08-15 13:35:41 · 1991 阅读 · 0 评论 -
SpringBoot的HandlerInterceptor中依赖注入为null
原因 拦截器加载是在springcontext创建之前完成 解决 让bean提前加载 实例 注意拦截链里面的是你注入到spring的拦截类而不是你实际用的拦截类。我之前查资料的时候就很多人直接把要用的拦截类插入到拦截链里面,还他娘的发出来给别人参考!@Configurationpublic class interceptorConfig extends WebMvcConfigur...原创 2018-08-15 14:13:48 · 1506 阅读 · 0 评论 -
MyBatisGenerator With Maven自动生成增删改查sql文
1配置maven pom文件 <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-b...原创 2018-08-17 14:14:30 · 1305 阅读 · 0 评论 -
springBoot使用junit mock单元测试
单元测试: 单元测试的思路就是我们想在不涉及依赖关系的情况下测试代码。这种测试可以让你无视代码的依赖关系去测试代码的有效性ReflectionTestUtils.setField(roomService, "mysqlDAO", mysqlDAO);由于Spring可以使用@Autoware类似的注解方式,对私有的成员进行赋值,此时无法直接对私有的依赖设置mock对象。可以通过引入R...原创 2018-08-30 16:45:33 · 2013 阅读 · 0 评论 -
RSA非对称加密应用于前台js加密后台java解密
首先我们加密的时候都是使用对称加密,就是加密解密都是使用一套秘钥 非对称加密是指加密解密使用不同的秘钥说明:本次记录的加密思路是后台java生成1 加密模块 2 加密公钥 3 加密秘钥其中公钥用于对字符串进行加密,秘钥用于对字符串进行解密,每次http请求后台将新生产的加密模块和加密公钥传送的前台,秘钥保存在后台。当前台使用公钥加密后,将数据传送到后台,后台再使用之前保存的秘钥进行解密。...原创 2018-08-30 17:47:29 · 8730 阅读 · 1 评论 -
使用 RestTemplate 报java.lang.IllegalStateException:No instances available for localhost
不能直接访问地址,需要把地址改成你所调用的ur在eureka上注册的application.name原创 2018-08-28 14:10:17 · 6826 阅读 · 0 评论 -
springboot使用注解做接口非空判断
1定义一个在方法上作用的注解@Retention(RetentionPolicy.RUNTIME) // 表示注解在运行时依然存在@Target(ElementType.METHOD) @Documentedpublic @interface noNull { public String str() default "";}2定义一个拦截类,拦截被注解的方法,并验证...原创 2018-08-24 09:26:29 · 11788 阅读 · 0 评论 -
Spring依赖注入解析与重写--【重写spring系列】
介绍 所谓的依赖注入本质就是控制反转,就像是本来我要什么我就去拿什么,主角是我,是我控制自己去拿我需要的工具,现在为了避免高耦合控制发生反转,我需要什么就有人帮我送过来,从此过上衣来伸手饭来张口的生活 思路1,首先通过对项目类的class文件进行扫描,构建bean仓库 2,调用及注入,当类被调用时及进行注入 3,通过拦截自定义的注入标签,获取需要注入的类的信息,在bean仓库中,获取需...原创 2018-05-31 11:01:01 · 2131 阅读 · 0 评论 -
netty实现心跳连接
用这个例子举例在上述例子的事件处理流上加上心跳连接 @Override public void initChannel(SocketChannel ch) throws Exception { ChannelPipeline pipeline = ch.pipeline(); ...原创 2018-06-07 09:32:06 · 1424 阅读 · 0 评论 -
org.json.JSONObject报错
别找了兄弟 <dependency> <groupId>org.json</groupId> <artifactId>json</artifactId> </dependency> <dependency>原创 2018-05-24 10:57:07 · 7938 阅读 · 11 评论 -
netty同时实现http与websocket通讯
由于业务需求需要将硬件客户端的持续数据流传到netty服务器,然后返回通过websocket将服务器拿到的数据返回到h5页面必须要说的是在百度找相关技术博客资料的时候踩了太多太多的坑了,真搞不懂有些人,自己都不会把别人的博客一顿乱转,一篇相同的技术博客可以看到七八次,复制别人的就算了不是少这个就是少那个连抄都抄不好,rnmmp!之前的思路 1 是在服务端的pipeline上面分别加入s原创 2018-01-29 13:29:12 · 10398 阅读 · 11 评论 -
websocket netty 实现点对点聊天(即时通讯)
websocket netty 实现点对点聊天(即时通讯)效果图首先用h5画一个简单的聊天页面,分别录入发送人的id,接受者的id,和需要发的消息,以及消息展示框 然后分别用小明,小红和小刚登录现在小明给小红发消息,小红收的到,但小刚收不到实现点对点聊天首先,先看前台代码h5<body><div id="cont...原创 2018-03-06 09:16:49 · 20636 阅读 · 18 评论 -
Spring控制反转和依赖注入的理解
Spring依赖注入与控制反转 所有的一切都是为了松耦合 通过控制反转将原来所依赖的注入, 比如说我现在编程,需要使用编程语言,但我现在只会java,那么就实例化java这个类,然后使用类里面的各种方法。java j=new java();j.useJava();j.j....这样我就可以开心的编程了, 可是有一天突然java不能用了,那么我实例化的这个类...原创 2018-04-25 15:42:01 · 257 阅读 · 0 评论 -
springBoot结合swagger
介绍 简单来说就是后台api可视化,比如我以前写代码测我后台api可不可用,需要通过浏览器请求。现在直接在swagger提供的网址就可以测试了pom <!--swagger --> <dependency> <groupId>io.springfox</groupId> ...原创 2018-05-03 16:32:20 · 173 阅读 · 0 评论 -
springBoot Maven项目搭建
首先新建一个maven项目create a simple project 就行了 后面的groug id什么的随便填就行了建好项目后,直接把pom文件粘上去<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi...原创 2018-04-25 18:23:21 · 270 阅读 · 0 评论 -
java sql.date与string的相互转换
string转sql.dateimport java.sql.Date;Date d=Date.valueOf("你要转的字符串");sql.date转string 这个需要在sql文上做文章 SELECT DATE_FORMAT(你的日期字段 ,"%Y-%m-%d") AS date FROM .... WHERE...原创 2018-05-10 12:24:56 · 12705 阅读 · 5 评论 -
springBoot结合swagger,配置头部信息
需求 需要在http请求中的头部,添加一个变量CurTime实现在上篇的配置类上做一下修改public class SwaggerConfig { /** * * 加上以下这一段 * 期间,参数名自己替换掉 */ ParameterBuilder ticketPar = ne...原创 2018-05-04 10:52:39 · 1681 阅读 · 0 评论 -
java发送http请求获取手机验证码
Maven <!--http --> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <v...原创 2018-05-17 13:44:54 · 918 阅读 · 0 评论 -
springBoot结合redis
pom <!--redis --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-redis</artifactId>...原创 2018-05-04 18:21:01 · 194 阅读 · 0 评论 -
springBoot集合myBatis实现数据库交互
springMvc配置太复杂?试试boot啊 新建一个maven springboot 项目 我上一篇配的那个就挺好,pom,在上一篇的基础上加上myBatis的配置 <parent> <groupId>org.springframework.boot</groupId> <artifactId&g...原创 2018-04-27 16:24:17 · 1756 阅读 · 0 评论 -
Java工厂模式的理解
factory的“本质”就是根据不同的输入创建出不同类型的对象。 引入factory的原因就是你需要根据不同的输入创建不同类型的对象。 用工厂方法代替new操作的一种模式...原创 2018-05-08 15:43:40 · 258 阅读 · 0 评论 -
swagger This application has no explicit mapping for /
在springboot,swagger正常配置后正常访问即可 可是当项目的静态文件路径被修改后, 比如修改后 spring.http.multipart.location=…………..就会发生访问不到的情况 Whitelabel Error Page This application has no explicit mapping for /error, so yo...原创 2018-06-04 10:00:59 · 11241 阅读 · 1 评论 -
Eclipse使用EclEmma插件生成junit覆盖率测试报告
Eclipse安装EclEmma插件 1 下载EclEmma插件 2 解压到本地文件夹 重点内容 3打开Eclipse,按如下流程操作:Help -> intsall New Software -> Add -> Local -> 选择EclEmma解压的目标目录 -> 确定 -> OK -> 选中EclEmma -> Finish...原创 2018-09-04 11:27:45 · 5960 阅读 · 0 评论