后端-java
文章平均质量分 92
java
掌握月
越努力越幸运。以多数人的努力程度之低,根本轮不到可以拼天赋。
展开
-
论使用svn的坑
idea使用svn采坑日记场景一SVN checkout时候会出现如下错误:Cannot load supported formats: Cannot run program “svn”: CreateProcess error=2原因SVN使用了命令行工具,如果本地没有SVN的命令行工具,则导致出错。解决办法1、安装客户端http://ncu.dl.sourceforge.net/project/tortoisesvn/1.8.7/Application/TortoiseSVN-1.8.7原创 2020-11-28 16:15:18 · 284 阅读 · 0 评论 -
netty基础知识
1.websocket 和netty的关系websocket是一个通信协议,而netty是一个Java网络编程框架。我们可以利用netty实现websocket通信,也可以用其他的。2.HTTP是单工的还是双工的还是半双工的先来区分三者的含义1.单工: 数据传输只允许在一个方向上的传输,只能一方来发送数据,另一方来接收数据并发送。例如:对讲机2.半双工:数据传输允许两个方向上的传输,但是同一时间内,只可以有一方发送或接受消息。例如:打电话3.全双工:同时可进行双向传输。例如:websocket原创 2020-11-24 16:35:42 · 6807 阅读 · 0 评论 -
文件系统-fastdfs初体验
FastDfs1.部署文件系统参考文章:https://blog.csdn.net/weixin_38066876/article/details/1053352102.引入依赖<dependency> <groupId>com.github.tobato</groupId> <artifactId>fastdfs-client</artifactId> </dependency>3.原创 2020-11-18 09:25:28 · 468 阅读 · 0 评论 -
redis超时解决方案
1.通过实现一个定时任务,来定时访问远程redis服务;2.通过设置一定的重试次数,来访问远程redis服务; private final int retryCount=3;//重试次数 for (int retry=0;retry<retryCount;retry++) { try { String obj = (String)redisTemplate.opsForValue().get(key); if (timeout>0) redisTe原创 2020-11-10 14:54:08 · 1385 阅读 · 0 评论 -
微服务学习笔记2
二、服务容错1.基础知识雪崩效应在微服务架构中,一个请求需要调用多个服务是非常常见的。如客户端访问A服务,而A服务需要调用B服务,B服务需要调用C服务,由于网络原因或者自身的原因,如果B服务或者C服务不能及时响应,A服务将处于阻塞状态,直到B服务C服务响应。此时若有大量的请求涌入,容器的线程资源会被消耗完毕,导致服务瘫痪。服务与服务之间的依赖性,故障会传播,造成连锁反应,会对整个微服务系统造成灾难性的严重后果,这就是服务故障的“雪崩”效应。雪崩的根本原因来源于服务之间的强依赖,所以我原创 2020-10-08 12:37:32 · 214 阅读 · 0 评论 -
微服务学习笔记1
springcloud初体验一、服务注册与发现总结1.组件的使用方式1.1 注册中心(1)Eureka搭建注册中心引入依赖 spring-cloud-starter-netflix-eureka-server<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server<原创 2020-10-08 12:33:53 · 121 阅读 · 0 评论 -
freemarker入门记忆点
入门举个例子<body> <h1>Welcome ${user}!</h1> <p>Our latest product: <a href="${latestProduct.url}">${latestProduct.name}</a>!</body>(root) | +- user = "Big Joe" | +- latestProduct | +- url原创 2020-09-05 11:21:38 · 179 阅读 · 0 评论 -
oracle入门注意点
Oracle入门1.连接字符串在Oracle中用**||** ,SqlServer中用+,MySQL中用concat(‘a’,‘b’,‘c’)在MySQL中from 后的表如果是(select…)这种,那么后面必须有别名Orcale的大字段用clob,图像用blob,clob字段在Hibernate的映射文件中用String就可以2.mysql,orcale,sqlserver 语句执行顺序开始->FROM子句->WHERE子句->GROUP BY子句->HAVING子句-原创 2020-09-05 11:20:32 · 176 阅读 · 0 评论 -
springboot多环节配置即部署
1、多profiles的形式分别新增application-dev.properties和application-prod.properties配置文件,其中application-dev.properties中配置端口为:server.port=8081其中application-prod.properties中配置端口为:server.port=8082而原application.properties中配置的端口为:server.port=8080;测试:启动引导类,发现启动的端口为8080;原创 2020-07-07 19:10:12 · 551 阅读 · 0 评论 -
springboot结课总结
1.springboot入门简介•Spring Boot是基于Spring框架开发的全新框架,其设计目的是简化新Spring应用的初始化搭建和开发过程。•Spring Boot整合了许多框架和第三方库配置,几乎可以达到“开箱即用”。入门程序@SpringBootApplication 标记该类为主程序启动类**SpringApplication.run()**方法启动主程序类@RestController :该注解为组合注解,等同于Spring中**@Controller**+@原创 2020-06-30 02:14:08 · 2444 阅读 · 0 评论 -
springboot+后端校验+实体类映射工具+全局异常捕获+返回值封装
一.Java 实体映射工具 MapStruct声明:1、DO(业务实体对象),DTO(数据传输对象)。2、我的代码中用到了 Lombok ,不了解的可以自行了解一下,了解的忽略这条就好。在一个成熟的工程中,尤其是现在的分布式系统中,应用与应用之间,还有单独的应用细分模块之后,DO 一般不会让外部依赖,这时候需要在提供对外接口的模块里放 DTO 用于对象传输,也即是 DO 对象对内,DTO对象对外,DTO 可以根据业务需要变更,并不需要映射 DO 的全部属性。这种 对象与对象之间的互相转换,就需要原创 2020-06-29 22:47:39 · 902 阅读 · 0 评论 -
springboot之jar包文件上传
一.文件上传配置spring: servlet: ###多文件上传配置 multipart: file-size-threshold: 100MB max-file-size: 10MB max-request-size: 100MB或者###文件上传配置# 单个上传文件大小限制(默认1MB)spring.servlet.multipart.max-file-size=10MB# 总上传文件大小限制(默认10MB)spring.serv原创 2020-06-29 21:46:27 · 1945 阅读 · 0 评论 -
docker之spriingbooti部署篇
一.****下载 idea支持的dock插件包****地址为https://plugins.jetbrains.com/plugin/7724-docker-integration注意不是越高越好要看自己的idea版本,与自己版本发布时间接近靠后点就行1.打开ideafile–>setting–>Plugins–>install plugin from disk(在下面)–>选着你下下来的压缩包(红色说明不行,换个版本试试)或者按ctrl+alt+s进入设置-》Plugin原创 2020-06-29 21:23:41 · 202 阅读 · 0 评论 -
docker之基础命令部署篇
镜像与容器的关系镜像和容器的关系,类似于面向对象程序设计中的类和实例一样,镜像是静态的定义,而容器是镜像运行时的实体,可以看成是一个具备某个运行环境的非常轻量的虚拟机。容器可以被创建、启动、停止和删除等。在创建容器时,需要**显示地为容器指定镜像。**指定镜像之后,容器就具备了镜像中保存的运行环境了。例如,可以为容器指定Ubuntu14.04的镜像,然后该容器就具备Ubuntu14.04的运行环境了。Docker使用的基本过程容器需要基于一个镜像来创建和使用。因此,Docker容器的使用一般有以下三原创 2020-05-30 10:27:13 · 247 阅读 · 0 评论 -
软件工程课程设计总结之部署篇
选择以阿里云ecs服务器部署注意:以下的安装路径及版本以实际的位置为准,且涉及的端口需要在阿里云控制台安全组开发相应的端口号1.软件下载jdk1.8mysql5.7tomcat9nginx2.部署平台Linux 发行版centos/ubuntu3.Mysql部署下载与安装MySQL:这里采用Yum管理好了各种rpm包的依赖,能够从指定的服务器自动下载RPM包并且安装,所以在安装完成后必须要卸掉,否则会自动更新。1.安装MySQL官方的yum repository[root@loca原创 2020-05-29 21:55:57 · 944 阅读 · 1 评论 -
mybatis-plus学习总结-第二天
实体作为条件构造器构造方法的参数修改实体加condition:别的地方如果想用等于也是可以的,就是写法要不一样。在实体中加的这个condition。只是实体作为条件构造器的构造函数的参数的时候才会生效,其他地方你可以把name等于直接用条件构造器构造,通过构造函数创建条件构造器时不传实体。多表联查,使用自定义的sql语句即可,sql后面可以加${ew.customSqlSegment}这...原创 2020-04-21 08:32:17 · 633 阅读 · 0 评论 -
mybatis-plus学习总结-第一天
Mybatis优势Mybatis劣势JPA优势ssm传统开发模式日志的配置entity中的常用注解@TableId 注解到实体类的表id字段 可以取代表中id主键不叫id的别名的对应驼峰写法 如 实体类 memberId, 表中 member_id@TableName 在实体类执行表名 别@TableName 表名映射@TableId 主键映射@TableFiel...原创 2020-04-21 08:31:18 · 188 阅读 · 0 评论 -
mybatis-plus之四种lambda方式
lambda四种表达形式前言使用了lambda表达式 可以通过方法引用的方式来使用实体字段名的操作,避免直接写数据库表字段名时的错写名字;一、LambdaQueryWrapper<>二、QueryWrapper<实体>().lambda()三、Wrappers.<实体>lambdaQuery()/** * 名字为王姓并且(年龄小于40并且邮箱不为...原创 2020-04-21 08:20:49 · 46960 阅读 · 3 评论 -
jvm学习总结1
一、java类的加载机制一、什么是类的加载类的加载指的是将类的**.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个 java.lang.Class对象,用来封装类在方法区内的数据结构。类的加载的最终产品是位于堆区中的 Class对象**, Class对象封装了类在方法区内的数据结构,并且向Java程序员提供了访问方法区内的数据结构的接口。类加载器...原创 2020-04-16 23:03:28 · 1129 阅读 · 0 评论 -
java代码规范总结
一、编程规约(一)命名风格代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式。纯拼音命名方式也要避免采用类名使用UpperCamelCase风格(首字母大写),但DO / BO / DTO / VO / AO / PO等除外。方法名、参数名、成员变量、局部变量都统一使用lowerCamelCase风格,必须遵从驼峰形式。常量命名全部大写异常类命名使用Exceptio...原创 2020-04-15 09:17:44 · 270 阅读 · 0 评论 -
多线程学习总结
多线程的作用线程或者说多线程,是我们处理多任务的强大工具。线程和进程是不同的,每个进程都是一个独立运行的程序,拥有自己的变量,且不同进程间的变量不能共享;而线程是运行在进程内部的,每个正在运行的进程至少有一个线程,而且不同的线程之间可以在进程范围内共享数据。也就是说进程有自己独立的存储空间,而线程是和它所属的进程内的其他线程共享一个存储空间。线程的使用可以使我们能够并行地处理一些事情。线程通过并...原创 2020-04-15 00:43:51 · 225 阅读 · 0 评论 -
ThreadPoolExecutor、Executors、ThreadPoolTaskExecutor线程池相关总结
1.ThreadPoolExecutor这个类是JDK中的线程池类,继承自Executor, Executor 顾名思义是专门用来处理多线程相关的一个接口,所有县城相关的类都实现了这个接口,里面有一个execute()方法,用来执行线程,线程池主要提供一个线程队列,队列中保存着所有等待状态的线程。避免了创建与销毁的额外开销,提高了响应的速度。相关的继承实现类图如下。一、线程池接口:Execu...原创 2020-04-15 00:11:49 · 745 阅读 · 0 评论 -
mybatisplus入门学习总结1
Mybatis优势Mybatis劣势JPA优势ssm传统开发模式日志的配置entity中的常用注解@TableId 注解到实体类的表id字段 可以取代表中id主键不叫id的别名的对应驼峰写法 如 实体类 memberId, 表中 member_id@TableName 在实体类执行表名 别@TableName 表名映射@TableId 主键映射@TableFiel...原创 2020-04-13 10:15:53 · 193 阅读 · 0 评论 -
jdk8新特性学习总结
Lambda表达式lambda表达式本质上是一段匿名内部类,也可以是一段可以传递的代码public void test4(){ List<Product> products = filterProductByPredicate(proList, (p) -> p.getPrice() < 8000); for (Product pro : pro...原创 2020-04-13 10:13:12 · 157 阅读 · 0 评论 -
设计模式学习初识
总共23种,分为三大类:创建型,结构型,行为型我只记得其中常用的6、7种,分别是:创建型(工厂、工厂方法、抽象工厂、单例)结构型(包装、适配器,组合,代理)行为(观察者,模版,策略)然后再针对你熟悉的模式谈谈你的理解即可。Java中的23种设计模式:Factory(工厂模式), Builder(建造模式), Factory Method(工厂方法模式),Prototype...原创 2020-04-13 10:11:30 · 88 阅读 · 0 评论 -
j2ee学习总结5-springmvc
Spring MVC 概述Spring MVC是Spring框架的一部分主要用于支持WEB应用程序的开发。MVC是Model(模型,也称为数据模型)、View(视图)、Controll(控制器)三个英文单词首字母的缩写。MVC是一种设计模型 ( 使用控制器将数据模型和视图进行分离 )优点后端处理的数据模型和前端视图显示的数据格式无关,实现一个数据模型可以对应多个视图以不同的方式来...原创 2020-04-13 10:05:45 · 309 阅读 · 0 评论 -
j2ee学习总结4-mybatis
Mybatis前言JDBC技术COnnectionPreparedStatementResultSetSpring的JdbcTemplate:Spring中对jdbc的简单封装Apache的DBUtils:它和Spring的JdbcTemplate很像,也是对jdbc的简单封装以上这些都不是框架JDBC是规范Spring 的JdbcTemplate和...原创 2020-04-13 10:04:54 · 280 阅读 · 0 评论 -
j2ee学习总结3
AOP[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NSziWTKO-1586743320638)(…/image/item1.PNG)]连接点:指类中的方法切入点:指被抽取了共性功能的方法切入点一定是连接点,连接点不一定是切入点。通知:被抽取的共性功能的代码逻辑,通知有位置区分,从切入点方法中被抽取的前面还是后面抽象出来的代码,叫通知类型...原创 2020-04-13 10:03:29 · 157 阅读 · 0 评论 -
j2ee学习总结2
j2ee第二章快捷键soutpsvmbean :alt+insertctrl+o:创建无参的构造函数iter :生成增强for循环ctrl+alt+t:选中要执行异常处理的代码段,执行快捷键弹出选项[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dEc2E6TH-1586743224653)(…/image/捕获.PNG)]使用配置类组件扫...原创 2020-04-13 10:01:50 · 192 阅读 · 0 评论 -
j2EE学习初识总结
J2EEJava webServletJava Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。使用 Servlet,您可以收集来自网页表单的用户输入,呈现来自数据库或者其他源的记录,还可以动态创建网页。Java Servlet 通常情况下与使用 CGI(Com...原创 2020-04-13 10:00:07 · 246 阅读 · 0 评论 -
使用maven构建web项目
不使用骨架创建MAVEN工程1)添加依赖2)单元测试2.创建MAVEN的web工程1)设置文件夹属性2)添加MAVEN插件3)修改MAVEN配置<build> <plugins> <plugin> <groupId>org.apache.tomcat.maven</groupId&g...原创 2020-04-13 09:55:39 · 63 阅读 · 0 评论 -
自动化装配的Spring IOC容器发现Bean的流程
① 创建能被spring发现的bean② 在需要被发现的类上添加注解@Component使用@Component注解表明该类会作为组件类,并告知spring要为此类创建bean③ 启用组件扫描@ComponentScan④ 为组件扫描的bean命名⑤ spring应用上下文中所有的bean都会给定一个ID,上述案例中尽管没有明确为bean命名,但是spring会根据类名为其指定一个ID...原创 2020-04-13 09:54:36 · 212 阅读 · 0 评论 -
四大服务器的区别
tomcat:使用场景及优点: 1.Tomcat是开源的Web、java应用服务器(动态解析,如JSP) 2.与Apache相比,Tomcat能够动态的生成资源并返回到客户端。 3.Tomcat也可以认为是HTTP服务器,但通常它仍然会和Nginx配合在一起使用缺点: 在静态页面处理能力上,Tomcat不如Apache...原创 2020-04-13 09:54:03 · 915 阅读 · 0 评论 -
请求转发和请求重定向的区别
RequestDispatcher接口在开发中访问到一个web资源后,需要服务器跳转到另一个资源去处理请求,可以通过sendRedirect重定向方法来实现,也可以RequestDispatcher转发对象的forward方法来实现。得到转发对象:Requestoispatcher forwardobj=request.getRequestDispatcher("另一个资源的路径”);常用...原创 2020-04-13 09:53:26 · 114 阅读 · 0 评论 -
IOC和AOP的作用
IOC:控制反转,是一种设计模式。一层含义是控制权的转移:由传统的在程序中控制依赖转移到由容器来控制;第二层是依赖注入:将相互依赖的对象分离,在spring配置文件中描述他们的依赖关系。他们的依赖关系只在使用的时候才建立。简单来说就是不需要NEW一个对象了。AOP:面向切面,是一种编程思想,OOP的延续。将系统中非核心的业务提取出来,进行单独处理。比如事务、日志和安全等。这个简单来说就是可以...原创 2020-04-13 09:51:28 · 258 阅读 · 0 评论 -
mybatisplus入门学习总结2
实体作为条件构造器构造方法的参数修改实体加condition:别的地方如果想用等于也是可以的,就是写法要不一样。在实体中加的这个condition。只是实体作为条件构造器的构造函数的参数的时候才会生效,其他地方你可以把name等于直接用条件构造器构造,通过构造函数创建条件构造器时不传实体。多表联查,使用自定义的sql语句即可,sql后面可以加${ew.customSqlSegment}这...原创 2020-04-13 10:17:14 · 500 阅读 · 0 评论