自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 java项目部署Linux虚拟机,提供图片上传显示功能

简介:springboot项目作为后台入口,打成jar包后部署到linux服务器,通过url的方式访问服务器本地图片。实现思路:显示:后台用配置文件的方式建立url和本地图片的映射关系上传:用流的方式上传核心代码:核心配置类:重点的baseImagePath,linux用绝对路径,路径最后一个文件夹后一定要加’/’,下面的baseImagePath写在了.yml配置文件里了,例:/home/nixinyan/apps/local/graduate/pic/linux里的图片路径:import

2021-03-13 13:12:11 894 1

原创 PostMan传数组参数,以及java后台接受参数接口

postman用json格式后台先定义好接收对象实体controller层接口用RequestBody接

2021-02-07 08:54:24 1126 1

原创 记录一次由classloader引发的坑

问题描述:简单来说就是如果父类和子类的classloader不一样,isAssignableFrom方法就会失效(明明classA实现了interfaceB,但是B.isAssignableFrom(A.class)一直为false)解决方法:保证A,B用同一个classloaderClassLoader classLoader = B.class.getClassLoader();Class<?> AClass = ClassUtils.forName(AName,classLoader

2021-01-17 13:19:53 740 3

原创 2020Java开发工程师面试知识储备(四)WEB

功利性得去找了下面试题库,发现一个讲面试题的教程,觉得讲得不错,教程地址在这里总结一下学到的知识,打一下Java基础,算是挖一个新坑。代码地址:源码地址第六章 Web1. ServletServlet生命周期1)Web容器加载Servlet类并实例化(默认延迟,一次)2)运行init方法进行初始化(一次)3)用户请求该Servlet,请求到达服务器时,运行其service方法(每次)4)service方法运行与请求对应的doXXX(每次)5)销毁实例时调用destroy方法(一次)2.

2020-07-31 19:32:49 222

原创 2020Java开发工程师面试知识储备(三)java常用类(待补充),多线程

功利性得去找了下面试题库,发现一个讲面试题的教程,觉得讲得不错,教程地址在这里总结一下学到的知识,打一下Java基础,算是挖一个新坑。代码地址:源码地址第四章 Java常用类解析1. String,StringBuffer,StringBuilderString是一个final修饰的类,所有属性也是final的,所以String具有不可变性,也就是对字符串的操作,如拼接、剪切都会产生新的String对象。StringBuffer本质是一个线程安全(用synchronize修饰一些方法)的可修改字

2020-07-30 08:49:27 160

原创 2020Java开发工程师面试知识储备(二)数组+数据库相关

功利性得去找了下面试题库,发现一个讲面试题的教程,觉得讲得不错,教程地址在这里总结一下学到的知识,打一下Java基础,算是挖一个新坑。代码地址:源码地址第二章 算法3. 数组相关3.1 给出一个数组(可能包含负数),求 和最大的子序列例:[1,-3,9,2,-3,5,-7,-1]9+2+(-3)+5最大,子序列就是{9,2,-3,5}。方法一:暴力穷举,三层循环,第一层遍历子序列的元素个数,第二层循环遍历子序列开始位置,第三层遍历子序列,求和。在第二层中把求和的结果与全局变量比较,更新最大的

2020-07-28 10:38:02 175 1

原创 2020Java开发工程师面试知识储备(一)JVM+数据结构+算法

功利性得去找了下面试题库,发现一个讲面试题的教程,觉得讲得不错,教程地址在这里总结一下学到的知识,打一下Java基础,算是挖一个新坑。代码地址:源码地址第一章 单例模式1. 饿汉式实现方式:私有化构造方法,类中有初始化过的静态实例,有个静态接口方法返回该实例。线程安全,对反序列化,反射不安全。2. 登记式实现方式:私有化改造方法,私有静态内部类拥有实例,静态接口方法可以获取私有内部类的实例,只有当静态接口方法被调用时实例才会被初始化,另外在私有化构造方法里做一下判断实例有没有被创建,即可对反

2020-07-26 21:34:15 316

原创 SpringCloudAlibaba技术栈学习(八)Seata分布式事务解决方案

第八章 Seata-分布式事务代码地址:源码地址1. 事务简介事务特性:A:原子性(Atomicity),一个事务中的所有操作,要么全部完成,要么全部不完成B:一致性(Consistency),在一个事务执行之前和执行之后数据库都必须处于一致性状态C:隔离性(Isolation),在并发环境中,当不同的事务同时操作相同的数据时,事务之间互不影响D:持久性(Durability),指的是只要事务成功结束,它对数据库所做的更新就必须永久的保存下来分布式架构下的事务问题:一个大事务下可能涉及到多个

2020-07-25 14:39:53 958

原创 SpringCloudAlibaba技术栈学习(七)Nacos服务配置

第七章 Nacos-服务配置代码地址:源码地址1. 简介问题背景:微服务数量太多,配置不好统一管理,很多微服务的配置都重复了;生产环境,测试环境,发布环境替换时,需要反复更改各个微服务的配置文件;配置文件无法实时更新。配置中心的思路是:首先把项目中各种配置全部都放到一个集中的地方进行统一管理,并提供一套标准的接口。当各个服务需要获取配置的时候,就来配置中心的接口拉取自己的配置。当配置中心中的各种参数有更新的时候,也能通知到各个服务实时的过来同步最新的信息,使之动态更新。相关技术栈:Apo

2020-07-25 08:03:41 227

原创 SpringCloudAlibaba技术栈学习(六)Rocketmq

第六章 Rocketmq-消息驱动代码地址:源码地址1. MQ简介MQ(Message Queue)是一种跨进程的通信机制,用于传递消息。通俗点说,就是一个先进先出的数据结构。本来在一个微服务中需要调用另一个微服务,使用MQ之后第一个微服务只需要在自己的逻辑处理完之后,发送消息到MQ,即可完成任务,被调用的微服务接到消息后执行任务。应用场景有:异步解耦:微服务间不必调用,继而联系变少。流量削峰:将庞大请求放到消息队列中,避免下游系统崩溃导致上游调用系统崩溃。相关的技术栈:ZeroMQ,Rabb

2020-07-24 16:26:25 426

原创 SpringCloudAlibaba技术栈学习(五)Zipkin+Sleuth

第五章 Zipkin+Sleuth链路追踪技术代码地址:源码地址1 链路追踪简介问题背景:一个请求涉及到多个服务。互联网应用构建在不同的软件模块集上,这些软件模块,有可能是由不同的团队开发、可能使用不同的编程语言来实现、有可能布在了几千台服务器,横跨多个不同的数据中心……如何快速发现问题?如何判断故障影响范围?如何梳理服务依赖以及依赖的合理性?如何分析链路性能问题以及实时容量规划?链路追踪功能:分布式链路追踪(Distributed Tracing),就是将一次分布式请求还原成调用链路,进行

2020-07-23 16:18:09 371

原创 SpringCloudAlibaba技术栈学习(四)Gateway

第四章 Gateway服务网关1. 网关简介网关也是一个微服务注册在nacos上,作为客户端和其他微服务的中转点,为客户端提供统一服务,一些与业务本身功能无关的公共逻辑可以在这里实现,诸如认证、鉴权、监控、路由转发等等。相关技术栈有:Nginx+lua;Kong;Zuul;Spring Cloud Gateway2....

2020-07-23 12:36:47 570

原创 SpringCloudAlibaba技术栈学习(三)Sentinel

第三章 Sentinel组件使用1. 服务雪崩效应以及服务容错由于tomcat等服务器支持的最大线程数有限,如果一个服务出现了问题,调用这个服务的服务器就会出现线程阻塞的情况,此时如果有大量请求进入,就会导致服务瘫痪,这个服务器上的其他接口也不能调用,继而导致其他服务也会阻塞,瘫痪。这种传播就是服务雪崩效应。我们无法完全杜绝雪崩源头的发生,只有做好足够的容错,保证在一个服务发生问题,不会影响到其它服务的正常运行。也就是"雪落而不雪崩"。服务容错:常见的容错思路有隔离、超时、限流、熔断、降级这几种。

2020-07-21 11:57:35 412

原创 SpringCloudAlibaba技术栈学习(二)Nacos服务治理

第二章 Nacos服务治理1. 模块设计与实现代码地址①首先创建maven项目,此项目作为父工程。把src文件夹删掉,修改pom文件,添加依赖版本控制,控制子模块依赖的版本。②实体类模块创建(在微服务中,实体类单独作为一个模块,供其他微服务一起使用,不在每个单独的微服务中设置domain):添加子模块,右击项目,new module,创建maven项目,创建domain包,在包下创建数据库中表对应的各种实体,以及封装controller return数据的实体CommonResult@Data@

2020-07-20 11:17:59 830

原创 SpringCloudAlibaba技术栈学习(一)微服务

暑假开始在b站看黑马的教程视频:视频地址目前正在二刷,并且总结记录一下学习时的收获,加深理解。第一章 微服务总览1. 软件系统架构的历史软件系统架构大致经历了:单体应用架构—>垂直应用架构—>分布式架构—>SOA架构—>微服务架构的演变单体应用架构:一个项目一个tomcat。优点:简单维护简单。缺点:紧密耦合容错低,扩展性差,不适合大项目。垂直应用架构:对单体应用架构拆分,多个项目多个tomcat。分布式架构:对垂直应用架构拆分,把整个系统分为展现层和服务层SOA架构

2020-07-19 19:21:55 2974

原创 vue+springboot前后端分离小结(后端篇)

学习前后端分离有一阵子了,到了疲倦期,是时候整理整理这两个月学到的东西了。这是后端篇,这几天期末考试,看情况再整理前端篇。前后端分离,顾名思义就是前端一套,后端一套,只用http请求,连接两端,前端负责显示渲染数据,后端负责操作数据。后端开发:开发工具:idea,技术栈:springboot,jpa,shiro。后端接口开发一、创建Spring Initializr项目在web里选spring web,在SQL里选Spring Data JPA二、把各个包建好(pojo,dao,service…

2020-06-10 11:09:47 944

原创 vue+springboot实现动态加载菜单栏

实现思路:数据库中有菜单表,角色表,用户表,角色和用户映射的表,菜单和角色映射的表五个表,springboot利用jpa操作数据库,提供vue前端获取这些表中的数据,vue前端利用懒加载,对当前登录的用户的角色所拥有的菜单栏进行显示和渲染。本文参考Evan-Nightly写的"Vue + Spring Boot 项目实战"系列的文章,他那个系列教程写得很棒,我吹爆。后期进阶的部分详细步骤这位老哥没放出来,我这里稍微总结一下,方便基础不好的老哥,也算是给自己查漏补缺。具体实现:首先来看菜单表的内容:

2020-05-24 08:37:10 4636 8

原创 LL(1)语法分析c++实现

文法:E->TDD->+TD|εT->FCC->*FC|εF->iLL(1)分析表:测试示例:#define _CRT_SECURE_NO_WARNINGS#include<iostream>#include<stdlib.h>#include<string.h>using namespace std;typedef struct{ char data[10]; int top; in

2020-05-09 23:11:39 3889 8

原创 关于idea创建maven项目,依赖引入失败问题,jar包存在但不能导入

项目中有jar包,编写java代码时也能正常import这些jar包中的类,但是build的时候报:程序包不存在,找不到符号等错误。如下图:解决方案(一种测试成功的思路,可能不能完美解决):1.先找找看项目文件下的target目录下,有没有lib文件夹,里面有没有所要依赖的包(由于创建的项目不同,所以lib的路径不确定,基本都是在WEB-INF/lib下,建议一个一个文件夹点开找)...

2020-05-08 11:46:33 2340

空空如也

空空如也

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

TA关注的人

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