自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

玖涯博客

玖涯博客:https://blog.nineya.com

  • 博客(68)
  • 资源 (4)
  • 收藏
  • 关注

原创 SpringBoot统一响应格式带来的String双引号问题和类型强转失败问题解决

写在前面在开发中,经常会有一个自定义输出数据格式的场景,此时如果用到 ResponseBodyAdvice 做全局的数据格式控制,在响应纯字符串数据时可能会遇到某些奇怪的问题,本文描述了两个和 String 相关的问题的解决方案,内容可能和网上的其他有些不同,问题较简单,纯记录贴。XXXX cannot be cast to java.lang.String 问题;响应的字符串携带双引号问题。本文 SpringBoot 环境:<parent> <groupId>

2021-02-28 05:13:50 344 2

原创 Shiro系列(二)——Shiro 多 Realm 实现

写在前面本文基于上一篇文章《 Shiro + Springboot + JWT 的整合》延续,示例项目也是在上篇文章的基础上扩展而来的。一个系统一般都具有多种用户类型,如管理员、普通用户和运营者账号等,这些用户都存储在不同的表中。当然,通过对 Token 的内容进行条件判断,一个 Realm 是可以直接实现多个账号登录的,但是这样将导致不同用户的登录完全耦合在一起,这不是我们想看到的,所以有了多 Realm 的需求,并且 Shiro 是支持多 Realm 的。1. 实现逻辑1.1 分析通过阅读 S

2021-02-18 03:24:16 176

原创 Shiro系列(一)——Shiro + Springboot + JWT 整合

写在前面本文的出现表示不再进行 Spring Security Oauth 实现的研究了,原因是原开源项目已经被废弃了不再更新了,而且 Oauth 实现的内容有些奇怪,新的项目 spring-authorization-server 目前才发布到 0.1.0,默认只提供了基于内存的实现,个人认为还不是很完善,不适合用到项目中。而且 Spring Security 的 Oauth 流程都实现了,要修改还得从新研究 spring-authorization-server 的实现逻辑,然后进行修改定制,太耗费精

2021-02-17 05:45:08 146

原创 Spring Security系列(五)——Oauth2使用JWT生成Token无法指定授权范围的解决方法

写在前面Spring Oauth 提供了对 jwt 的支持,要实现 jwt 功能很简单,但是在指定授权范围时将会遇到无法指定授权范围的问题,本文主体描述的是如何解决这个问题。本文依赖环境:<!-- spring-security-oauth2 2.3.4.RELEASE --><dependency> <groupId>org.springframework.cloud</groupId> <artifactId>sprin

2021-02-10 10:45:32 94

原创 Spring Security系列(四)——Spring Oauth2实现登录同时授权、自定义授权界面

本文环境: org.springframework.cloud:spring-cloud-starter-oauth2:2.2.4.RELEASE本文场景: 希望实现类似 QQ 的登陆并授权功能,但是将 /oauth/authorize 路径加入 permitAll 没有生效,加入 web.ignoring() 后抛出了 User must be authenticated with Spring Security before authorizing an access token. 异常,在 Spri

2021-02-04 00:32:31 219

原创 Springboot修改默认异常处理

1. 继承BasicErrorController继承BasicErrorController可实现修改默认的全局异常处理,复写error方法修改Rest请求的修改,复写errorHtml实现修改错误处理视图。package com.nineya.user.controller;import com.nineya.tool.restful.ResponseResult;import org.springframework.boot.autoconfigure.web.ServerPropertie

2020-12-06 18:25:39 125

原创 Spring Security系列(三)——WebFlux配置方式以及多登陆入口实现

本文场景: 使用Spring Security做权限控制,系统包含普通用户和系统管理员两种类型,希望有不同的登录入口;并且在Spring Gateway上配置,Gateway使用的是WebFlux,无法兼容MVC,所以使用WebFlux配置Security。纯记录,目前项目还是小demo,贴的示例代码可以正常运行,但是业务逻辑还有点问题。1. SecurityWebFilterChain配置创建两个SecurityWebFilterChainbean,管理员配置限制范围为/manage/**,用户将

2020-12-06 17:03:53 480 2

原创 Spring Security系列(二)——过滤器链分析以及创建多个登陆入口

写在前面**本文场景:**希望在网关上实现security统一进行权限认证,后续的服务间交互不再进行权限认证。但是系统有两个类型的账号,一个是普通用户,一个是系统后台管理员,完全是两个类型,希望创建给两个不同的登陆入口分别给两个类型的账号登录使用。想到的解决方法有两个:网关上的security想办法创建多个登陆入口(本文描述的方法);网关上的security只对用户进行权限验证,对管理员的请求放行,管理员在自己的模块上进行权限验证。**本文思想:**security实现多登陆入口的方法是创建多

2020-12-06 12:35:05 138

原创 Spring Security系列(一)——登录认证基本配置

1. 开启Security@EnableWebSecurity@Configurationpublic class UserWebSecurityConfiguration extends WebSecurityConfigurerAdapter { @Resource private PasswordEncoder passwordEncoder; @Resource private LoginAuthenticationSuccessHandler successH

2020-11-28 20:48:39 117

原创 使用NPS搭建内网穿透

本文环境CentOS Linux release 7.8.2003Nps 0.26.91. NPS介绍Nps是一个内网穿透工具,开源。Github:https://github.com/ehang-io/nps特征:全面的协议支持,与几乎所有常用协议兼容,例如tcp,udp,http(s),socks5,p2p,http代理…全面的平台兼容性(Linux,Windows,MacOS,Synology等),仅支持将安装作为系统服务进行。全面控制,允许客户端和服务器控制。Https集

2020-11-19 23:58:50 2966 1

原创 分布式数据库系列(一)——强一致性

1. 什么是强/弱一致性?​对于分布式系统而言,一致性是探讨当前系统内的一份逻辑数据存在多个物理的数据副本时,对其执行读写操作会产生什么样的结果。在数据库领域,“一致性”与事务密切相关,又进一步细化到ACID(原子性、一致性、隔离性和持久性)四个方面。​在讨论分布式数据库的一直性时,实质上是在讨论数据一致性和事务一致性两个方面。1.1 数据一致性​分布式存储系统为了避免设备与网络的不可靠带来额的影响,通常会存储多个数据副本。逻辑上的一份数据同时存储在多个物理副本上,当同时存在读操作和写操作时就带来了

2020-09-21 18:33:19 440

原创 spring源码分析(一)——Spring整体架构以及环境搭建

1. Spring整体架构Spring是一个分层架构,它包含一系列的功能要素,并被分为大约20个模块,Spring整体架构图如下:1.1 核心容器(Core Container)核心容器(Core Container)部分包含有Core、Beans、Context和Expression Language模块,其中Core和Beans模块是框架的基础部分,提供IOC(控制反转)和依赖注入特性,基础概念是BeanFactory,它提供对Factory模式的经典实现来消除对程序单例模式的需要,并真正的允许

2020-09-20 15:02:03 65

原创 软考系统架构师-论软件可靠性设计与应用

摘要随着我国医疗技术水平的不断进步,以及医院规模的不断扩大,医疗信息系统已经成为现代医院管理和诊疗业务运营的基础设施和技术支撑。然而这些随着医院的发展逐步建立起来的信息系统往往具有异构性,严重制约了各个信息系统间信息的共享,“信息孤岛”现象严重。我在一个软件企业工作,2016年9月,我所在的公司承担了某医院的信息系统集成项目,有幸作为项目负责人参与该集成平台的开发工作,主要负责需求分析和系统架构设计。集成平台作为医院信息系统的基础设施之一,系统的可靠性直接影响到整个医疗信息系统的运行,在项目开发过程中,

2020-09-19 20:37:57 362

原创 软考系统架构师论文-论信息系统的架构设计

摘要随着我国医疗技术水平的不断进步,以及医院规模的不断扩大,医疗信息系统已经成为现代医院管理和诊疗业务运营的基础设施和技术支撑。然而这些随着医院的发展逐步建立起来的应用系统往往具有异构性,严重制约了各个信息系统间信息的共享,“信息孤岛”现象严重。我在一个软件企业工作,2016年9月,我所在的公司承担了某医院的信息系统集成项目,有幸作为项目负责人参与该集成平台的开发工作,主要负责需求分析和系统架构设计。在项目开发过程中,我们注重系统的可扩展性、标准化和安全性,经过对医院现实情况的认真分析,结合当今成熟的E

2020-09-19 20:34:28 411

原创 图算法之无权最短路径 - 基于Neo4j实现

1. 简介本文基于Neo4j 3.5版本,采用嵌入式的方法开发,neo4j本身其实已经实现了最短路径算法,本文虽然基于neo4j实现,但是更多的是做算法思想的记录,同时本文讲解的最短路径为无权最短路径。无权最短路径与带权最短路径不同,带权最短路径可能权重最小的路径并不是路径最短的路径。而无权最短路径,仅按路径长短来衡量,所以求最短路径最合适的方法为广度遍历。一般网上描述的找最短路径的方法为,从起始点开始广度遍历,找到终止点时停止,这个方法并不是性能最高的方法,本文要说明的是从起始点和终止点双向开始进

2020-09-13 00:04:05 159

原创 JVM原理(一)——JVM概述

1. 编程语言兼容性JVM最初的目标:开发者无须关注底层平台就能实现兼容性。实现编程语言兼容性大体分为两种方式:通过编译器实现兼容例如:C、C++等实现原理:针对不同的平台开发不同的编译器,编译器能将同样的代码段翻译成与目标平台匹配的机器指令。缺陷:如果涉及系统调用,大多都需要修改程序,调用特定的API。通过中间语言实现兼容例如:java、C#等实现原理:程序被编译后生成中间语言(ML),中间语言指令由虚拟机负责解释和执行。源代码编译生成的中间语言是相同的,

2020-09-12 19:14:24 83

原创 通过javadoc生成文档

一、pom.xml 添加插件<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> <version>3.1.1</version> <configuration> <show>private</show&

2020-08-09 20:10:54 288

原创 提交jar到Maven中央仓库

一、准备1.1 注册JIRA账号注册账号地址如下:https://issues.sonatype.org/secure/Signup!default.jspa1.2 将项目提交到Git仓库创建项目之前需要将项目提交到Git仓库,如GitHub、Gitlab等等,本文以GitHub为例。二、创建issue创建issue的地址如下:https://issues.sonatype.org/secure/CreateIssue.jspa?issuetype=21&pid=101342.1

2020-08-09 19:57:29 266

原创 linux下的计划任务crontab

一、计划任务基本命令# 设定某个用户的cron服务crontab -u# 列出cron服务的详细内容crontab -l# 删除cron服务crontab -r# 编辑cron服务crontab -e# 启动服务service crond start# 关闭服务service crond stop# 重启服务service crond restart# 重新载入配置service crond reload# 查看服务状态service crond stat

2020-07-14 18:27:53 52

原创 Springboot关闭默认的日志输出

本文环境springboot 2.2.6jdk 1.8.0_241一、配置application.yml在resources目录下新建application.yml文件(或:application.properties),添加如下内容:logging.level.[包名]: OFF# 例如,OFF可改成某个日志级别logging.level.org.apache.ignite: OFF二、添加日志配置文件添加log.xml文件,内容如下:<?xml version="1

2020-05-22 18:37:49 6685

原创 SpringBoot使用Java修改端口、项目打包

本文环境1.SpringBoot 2.2.62.jdk 1.8.0_241一、使用java修改端口通过实现WebServerFactoryCustomizer<ConfigurableWebServerFactory>接口实现,springboot2.X之前的版本会有所不同。@SpringBootApplicationpublic class SpringbootApplication implements WebServerFactoryCustomizer<Configur

2020-05-22 18:35:57 177

原创 java取得对象占用的内存大小

本文环境win 10jdk 1.8.0_241IntelliJ 2019.1.3一、通过Instrumentation获取内存在java工程中添加如下代理类:package com.nineya.memorymeasurs;import java.lang.instrument.Instrumentation;public class MemoryMeasurs { static Instrumentation inst; // 由jvm注入 publi

2020-05-19 14:34:51 409

原创 java操作Neo4j

pom.xml添加内容 <dependencies> <!-- 服务器开发需要的jar包 --> <groupId>org.neo4j.driver</groupId> <artifactId>neo4j-java-driver</artifactId> <version&g...

2020-04-08 16:20:38 1190

原创 使用LDBC SNB测试neo4j性能

用到的东西LDBC SNB datagen 0.3.2hadoop2.9.2maven3.6.3LDBC SNB implementations0.0.1neo4j-enterprise-3.5.41.安装ldbc_snb_datagenldbc_snb_datagen用来生成测试数据git地址是https://github.com/ldbc/ldbc_snb_datagen...

2020-04-08 16:18:27 626 1

原创 JVM系列(一)——类加载器以及双亲委托机制

写在前面本文主要介绍了四种类加载器,以及算清委托机制。文章可能还有很多不足,请大家谅解,欢迎大佬提意见。本文使用到的东西java文章目录写在前面本文使用到的东西1.类加载器2.双亲委托机制3.总结1.类加载器1.1 类加载器作用:类加载器负责从文件或者网络中加载Class信息,加载的类信息存放于方法区的内存空间。1.2 启动类加载器(BootStrap ClassLoader)...

2020-01-27 22:03:36 60

原创 SSH项目搭建,提供完整的SSH示例项目

写在前面本文采用ecplipse搭建了一个简单的SSH项目,并提供了示例项目,适合初学者入门。文章可能还有很多不足,请大家谅解,欢迎大佬提意见。本文使用到的东西struts 2.5.22spring 5.2.3hibernate 5.4.10java 12.0.2eclipse 2019-11win10文章目录写在前面本文使用到的东西1.前期准备1.1 导入jar包方式1.2...

2020-01-22 22:13:38 871

原创 常见排序算法冒泡排序、快速排序等java实现

写在前面本文描述了常见的几种排序算法,文章可能还有很多不足,请大家谅解,欢迎大佬提意见。本文使用到的东西java文章目录写在前面本文使用到的东西1.选择排序2.冒泡排序3.插入排序4.希尔排序5.归并排序6.快速排序7.堆排序8.总结1.选择排序1. 1 算法思想  从未排序的区间中找出最小的元素,将该元素与未排序区间中第一个元素交换,第一个元素即为排序好的元素,再继续比较余下未...

2020-01-21 23:03:49 112

原创 java多线程共享数据、线程同步与互斥

写在前面本文全文以售票系统为例,简诉了java多线程间共享数据的两种方式、线程同步。文章可能还有很多不足,请大家谅解,欢迎大佬提意见。本文使用到的东西javaeclipse 2019-11文章目录写在前面本文使用到的东西1.多线程共享数据1.1 共享Runnable1.2 封装数据为对象2.线程同步与互斥2.1 上述代码存在的问题2.2 同步与互斥2.3 synchronized实现...

2020-01-21 15:34:18 2034

原创 java实现多线程的四种方式及多线程源码分析

写在前面本文描述了java实现多线程的四种方式,文章可能还有很多不足,请大家谅解,欢迎大佬提意见。本文使用到的东西eclipse 2019-11java文章目录写在前面本文使用到的东西1.继承Thread类1.1实现代码1.2源码分析2.实现Runnable接口2.1实现代码2.2 源码分析3.实现Callable3.1实现代码3.2 Callable源码分析3.3 FutureTa...

2020-01-20 21:44:46 134

原创 windows下使用nexus3.x搭建maven私服

写在前面本文描述了在windows下如何使用nexus3.x搭建maven私服,文章可能还有很多不足,请大家谅解,欢迎大佬提意见。本文使用到的东西nexuswin10文章目录写在前面本文使用到的东西1.QA问答2.搭建3.总结1.QA问答Q: 什么是私服?A: 私服是一种私有服务器,是在局域网中搭建的一种特殊的远程仓库,目的是代理远程仓库及部署第三方构建,私服搭建成功之后,当...

2020-01-17 15:16:52 1768

原创 CentOS下Typecho的安装

写在前面文章可能还有很多不足,请大家谅解,欢迎大佬提意见。本文使用到的东西CentOS 7Nginx 1.16.1Mysql 5.6.46PHP 7.2.24文章目录写在前面本文使用到的东西1.安装前提2.Typecho简介2.1typecho与hexo比较2.1typecho与WordPress比较3.typecho下载解压4.配置nginx代理5.Access denied问...

2020-01-12 12:15:51 2105

原创 宝塔面板安装使用+第一个网站

写在前面文章可能还有很多不足,请大家谅解,欢迎大佬提意见。本文使用到的东西CentOS7宝塔1.宝塔功能引用官方原文:面板特色功能:一键配置服务器环境(LAMP/LNMP)一键安全重启一键创建管理网站、ftp、数据库一键配置(定期备份、数据导入、伪静态、301、SSL、子目录、反向代理、切换PHP版本)一键安装常用PHP扩展(fileinfo、intl、opcach...

2020-01-12 12:05:11 2945

原创 SpringBoot+Redis整合

写在前面本文记录了SpringBoot怎么整合Redis,在本文章之前你必须搭建一个SpringBoot项目,搭建教程《springboot+mybatis+mysql项目搭建,含示例Demo》,对于Redis安装和使用方面我这里也不再赘述。文章可能还有很多不足,请大家谅解,欢迎大佬提意见。本文使用到的东西IntelliJSpringBootRedis文章目录写在前面本文使用到的东...

2020-01-11 16:26:22 155

原创 Redis基础入门,Redis远程连接,java连接Redis

写在前面本文所有内容都基于Windows版的Redis,记录了Redis的基础入门,Redis远程连接,java连接Redis。文章可能还有很多不足,请大家谅解,欢迎大佬提意见。本文使用到的东西IntelliJRedisWin10、Win7电脑文章目录写在前面本文使用到的东西1.安装使用Redis2.配置远程连接3.java连接4.总结1.安装使用RedisRedis下载Re...

2020-01-11 14:04:42 181

原创 CentOS通过yum的LNMP环境搭建

写在前面本文主要描述了lnmp环境搭建,文章可能还有很多不足,请大家谅解,欢迎大佬提意见。本文使用到的东西CentOS 7Nginx 1.16.1Mysql 5.6.46PHP 7.2.24文章目录写在前面本文使用到的东西1.LNMP简介2.安装Nginx3.安装Mysql4.安装PHP5.Nginx代理PHP6.总结1.LNMP简介L: linux计算机操作系统N: ng...

2019-12-19 16:30:22 430

原创 yum安装提示没有可用软件包

写在前面对于刚接触linux系统的童鞋,在使用yum安装软件时可能会遇到提示“没有可用软件包”这种问题,本文主要讲述了该问题的解决。文章可能还有很多不足,请大家谅解,欢迎大佬提意见。本文使用到的东西CentOS 71.正文出现该问题的原因是该软件包在第三方的yum源里面,而不在官方yum源里面。解决的方法,就是安装epel源。安装命令如下://安装epel源sudo yum i...

2019-12-19 10:57:25 4111 3

原创 博客园添加live2D看板娘和樱花飘落背景

写在前面文章可能还有很多不足,请大家谅解,欢迎大佬提意见。本文使用的东西live2d(看板娘)樱花飘落博客园文章目录写在前面本文使用的东西1.前期准备2.添加看板娘3.添加樱花飘落4.总结1.前期准备1、注册一个博客园账号,并且申请开通博客,添加js权限2.添加看板娘看板娘的GitHub地址:https://github.com/xiazeyu/live2d-widget...

2019-12-15 14:09:50 1230 3

原创 hexo多终端同步和管理

写在前面hexo生成博客提交的是渲染之后的html文件,并不是源码,本文主要描述如何实现hexo多终端源码同步,使用到的工具是“git”,文章可能还有很多不足,请大家谅解,欢迎大佬提意见。本文使用的东西win10电脑hexo4.1.1git2.24.01.方法介绍多终端管理的原理:把博客源码提交到GitHub存储库,使用git进行不同终端的本地库同步。有两种不同的方法:创建...

2019-12-14 02:04:48 255

原创 MyBatis一级缓存和二级缓存

写在前面很久以前在有道云笔记上写的笔记,打算放弃它了,将笔记迁移到这里来。文章可能还有很多不足,请大家谅解,欢迎大佬提意见。本文使用到的东西MyBatisjava1.一级缓存默认是开启的,–不同SqlSession缓存不能共享​ MyBatis 默认开启了一级缓存,一级缓存是在SqlSession 层面进行缓存的。即,同一个SqlSession ,多次调用同一个Mapper和同一...

2019-12-13 23:17:52 99

原创 MyBatis通过注解实现Mapper映射器

写在前面很久以前在有道云笔记上写的笔记,打算放弃它了,将笔记迁移到这里来。文章可能还有很多不足,请大家谅解,欢迎大佬提意见。本文使用到的东西MyBatisjava文章目录写在前面本文使用到的东西1.注解与xml映射器的比较2.单表_没有返回的简单增、删、改增删改3.单表的查询4.多表关联查询5.总结1.注解与xml映射器的比较注解相比于xml配置的优点:a 灵活,代码提示好b...

2019-12-13 23:10:44 693

SSH示例项目.zip

搭建的一个完整的Struts+Spring+Hibernate项目,项目结构清晰,分层明确。业务功能比较简单,适合初学者入门。

2020-01-22

springboot.zip

一个采用springboot+mybatis+mysql搭建的简单项目示例Deom,结构清晰,帮助新手快速掌握springboot+mybatis整合。

2019-12-01

hexo-admin2.3.0补丁.zip

hexo-admin补丁修复了hexo-admin插入图片失败的bug,同时还添加了以下功能:1.对整个插件进行了汉化、2.添加了按文章分目录存储图片的功能,方便进行图片的管理和删除、3.修复了编辑界面预览链接错误bug、4.修复了新建“导航选项的分页”失败bug。

2019-12-04

spring aop简单示例.rar

aop的原理基于java动态代理模式,本资源是spring的aop运用简单示例,用于帮助初学者理解和运用aop技术

2019-12-13

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除