自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 使用拦截器调用服务出现空指针异常解决

使用拦截器调用服务出现空指针异常解决在使用拦截器的时候,发现调用Service会出现空指针异常,查看原因,原来是使用new关键字导致无法注入@Configurationpublic class WebConfiguer implements WebMvcConfigurer { @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(n

2022-03-03 10:31:34 603

原创 方法中for循环以及相关代码规范

代码规范—方法中for循环以及相关代码规范1.按照单个方法最好不要超过30行.2.单个方法循环嵌套不要超过两层.(可以用一些方式去回避循环嵌套).

2021-11-22 09:27:54 427

原创 java实现邮件发送html页面

java实现邮件发送html页面1.创建Maven工程,导入相关依赖 <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> <version&g

2021-10-19 14:20:51 932

原创 mapstruct的学习

mapstruct的学习前提:在实习过程中师兄建议我学习一下mapstruct这个插件,在学习这个插件前我们先了解一下在企业开发时候需要的一些名词的概念PO:持久对象,一个PO对应一条记录,不包含任何对于数据库的操作POJO:无规则简单对象,一个中间对象可以转化为PO,DTO,VO注意:POJO持久化变为PO,POJO传输过程为DTO,POJO用作表示层为VOBO:业务逻辑对象,可以接受多个对象DTO(TO):Data Transfer Object 数据传输对象VO:value object

2021-10-14 17:37:26 346

原创 ActiveMQ

Linux环境下安装ActiveMQ在官网下载tar包https://activemq.apache.org/上传到Linux系统当中使用tar -zxvf解压包进入到bin目录下使用命令./activemq start 启动出现以下内容,启动成功INFO: Loading '/opt/apache-activemq-5.16.3//bin/env'INFO: Using java '/usr/bin/java'INFO: Starting - inspect logfiles spec

2021-09-05 09:31:19 316

原创 Mysql优化分析

Mysql执行计划关键参数分析首先我们应该先了解一个关键字为explain,这个关键字对于sql语句能进行分析,后面直接跟随sql语句,那么查询出来的是什么呢?[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uge6kEfM-1630409728423)(C:/Users/user/AppData/Roaming/Typora/typora-user-images/image-20210827203801851.png)]接下来对于字段具体分析id这个字段一定程度上决

2021-08-31 19:35:51 95

原创 设计模式-----工厂模式

设计模式-----工厂模式工厂模式,顾名思义是类似生产产品的一种设计模式,而它是根据传递进来的引用来创建相对应产品的简单工厂模式//手机生产标准接口public interface Phone(){ void make();}//生产华为public class HuaWei() interface Phone{public HuaWei(){this.make();}@Overridepublic void make ( System.out.println("生产华为

2021-08-15 21:28:20 87

原创 Nginx常用命令

nginx的学习注意:使用的时候需要进入nginx目录下/usr/sbin/nginx如何确定nginx的目录在哪里呢使用whereis nginx查看查看版本号nginx -v启动nginxnginx关闭nginxnginx -s stop重新加载nginxnginx -s reloadnginx配置文件...

2021-08-12 12:37:36 72

原创 搭建反向代理遇见的问题

今天试了一下搭建三台tomcat在同一台服务器中,进行反向代理的时候处理404错误起因:我部署了三台tomcat分别监听8080,8081,9000端口,然后想通过nginx进行反向代理,具体配置如下 server{ listen 8080; server_name localhost; location ~ /edu/ { proxy_pass http://localhost:8081; } location ~ /vod/{ proxy_pas

2021-08-12 12:36:59 108

原创 nginx安装出现的问题

1.Nginx安装ubuntu 安装nginx, 出现 Unable to locate package今天在初始化一台新的ubuntu 服务器时,敲上了 sudo apt-get install nginx 来安装nginx, 却发现提示:Reading package lists… DoneBuilding dependency treeReading state information… DoneE: Unable to locate package nginx然后敲上: sudo a

2021-08-12 12:34:33 1177

原创 Nginx反向代理

Nginx反向代理环境准备:1.JDK2.TomCat服务器3.Nginx服务器具体配置1.在windows系统的host文件中配置域名和ip对应关系得配置2.nginx中进行请求转发的配置(反向代理)1.修改nginx配置文件在htpp块中,修改监听位置以及要跳转的地方 server { listen 80; server_name 112.74.183.130; location / { root html; proxy_pass http://112.

2021-08-12 12:33:51 78

原创 Nginx负载均衡

Nginx负载均衡增加服务器的数量,然后将请求分发到各个服务器上,将负载分发到不同服务器。就是我们说的负载均衡配置1.效果:浏览器输入地址后,将请求平均到8080和8081端口中环境1.两台tomcat服务器,一台9000,一台80812.在两台tomcat里面创建edu文件夹,在edu文件夹中创建测试页面a.html配置文件修改在http块中加入upstream myserver{ server locolhost :端口 server localhost:端口}server

2021-08-12 12:33:18 127

原创 nginx安装

1.Nginx安装ubuntu 安装nginx, 出现 Unable to locate package今天在初始化一台新的ubuntu 服务器时,敲上了 sudo apt-get install nginx 来安装nginx, 却发现提示:Reading package lists… DoneBuilding dependency treeReading state information… DoneE: Unable to locate package nginx然后敲上: sudo a

2021-08-10 21:41:50 96

原创 Linxu的帮助指令

Linxu的指令使用场景对于某个指令不熟悉的时候man获得帮助信息基本语法man[命令或配置文件]NAME ls - list directory contentsSYNOPSIS ls [OPTION]... [FILE]...DESCRIPTION List information about the FILEs (the current directory by default). Sort entries

2021-08-10 19:10:47 121

原创 Redis应用实际问题

缓存穿透1.应用服务器压力变大2.redis命中率降低了3.一直查询数据库key对应的数据在数据源并不存在,每次针对此key的请求从缓存获取不到,请求都会到数据源,从而可能压垮数据源。比如用一个不存在的用户id获取用户信息,不论缓存还是数据库都没有,若黑客利用此漏洞进行攻击可能压垮数据库。出现原因1.redis查询不到数据库2.出现很多非正常url访问解决方案1.对空值进行缓存,过期时间很短2.设置可访问白名单,用bitmap定义访问名单,效率可能会低3.采用布隆过滤器,命中率无保障

2021-08-08 19:03:06 183

原创 Redis的主从复制

Redis的主从复制可实现功能1.读写分离2.容灾实现1.搭建一主多从因为没有多个服务器,所以我们选择创建不同的redis服务来监听不同的端口创建过程1.引入redis配置文件include /myredis/redis.conf2.分配进程号pidfile /var/run/redis_6379.pid3.分配端口号port 63794.持久化dbfilename dump6379.rdb启动多台服务器redis-server /myredis/redis6380.con

2021-08-08 15:51:49 204 1

原创 Redis的持久化操作

Redis的持久化操作Redis提供了两种持久化操作RDB,AOFRDB是什么在指定的时间间隔中将内存的数据集快照写入磁盘,它恢复是将快照文件直接读取到内存中如何利用RDB进行恢复在我们使用RDB持久化策略的时候,注意有可能会丢失最后一份数据,因为在执行完一次rdb操作后,rdb执行策略时间会开始重新计算,因为没有达到时间所以会丢失具体操作:1.关闭Redis后2.启动redis后,备份数据会直接被加载优势1.适合大规模的数据恢复2.对数据完整性和一致性要求不高的更适合3.节省磁盘

2021-08-08 14:17:18 92

原创 Redis的事务

Redis的事务什么是Redis的事务是一个单独的隔离操作:事务中所有命令会序列化,按顺序执行,事务在执行的时候,不会被打断作用:串联多个命令防止别的命令插队Multi,Exec,discardMulti:开启事务,接下来输入的命令会进入队列中,但不会执行,这叫做组队阶段,直到输入Exec组队过程中通过discard放弃组队实例OK127.0.0.1:6379> multiOK127.0.0.1:6379(TX)> set k1 v1QUEUED127.0.0.1:63

2021-08-08 10:16:04 88

原创 Redis的使用

Redis的相关知识常用知识1.单线程+多路IO复用2.常用数据结构:字符串,数组,哈希表,Set,Zet ,布隆过滤器,位图,位置安装完线上Redis后,备份配置文件再etc目录下,然后修改配置文件将其设置为可以以守护线程启动,重启服务,kill-9端口号杀死进程,然后启动服务,使用语句 redis-server /etc/redis.confg如何远程连接云服务器的redis1.打开配置文件redis.conf修改修改redis配置文件127.0.0.1改成0.0.0.02.关闭服务,然

2021-08-07 22:09:46 92

原创 初识Mybatis

初识MybatisMybatis是什么Mybatis是一个优秀的持久层框架,它对JDBC操作数据库的过程进行封装,使开发者只需要关注sql本身。我们原来使用JDBC操作数据库,需要手动的写代码去注册驱动、获取connection、获取statement等等,现在Mybaits帮助我们把这些事情做了,我们只需要关注我们的业务sql即可,这样可以提高我们的开发效率。MyBatis属于半自动的ORM框架Mybatis架构MybatisConfig.xmlMybatisConfig.xml文件

2021-08-02 14:28:28 80

原创 文件上传问题及注意事项

文件上传问题及注意事项form表单要使用 enctype="multipart/form-data" 提交方式必须为post 文件上传代码import java.io.*;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import java.io.File;import java.io.FileOutputStream;import java.io.IOExcep

2021-07-31 19:19:18 158

原创 Java的四种引用类型

Java的四种引用类型强引用Java的垃圾回收机制永远不会进行回收,如果jvm中都存在强引用对象,而内存不足的时候,只会直接抛出OutOfMemoryError错误弱引用这是当jvm内存不足的时候,需要内存的时候会自动将其释放,如果释放完所有的弱引用对象还是内存不足,才会爆出OutOfMemoryError软引用jvm只要开始垃圾回收,就会将其回收调虚引用引用关系最弱,必须与引用队列一起来使用...

2021-07-31 19:18:33 67

原创 Thymeleaf的简单使用以及自动配置解析

Thymeleaf以及Springboot自动配置解析Thymeleaf是一个现代服务器端Java模板引擎,适用于Web和独立环境,能够处理HTML,XML,JavaScript,CSS甚至纯文本。Thymeleaf的主要目标是提供一种优雅且高度可维护的模板创建方式。为实现这一目标,它以自然模板的概念为基础,将其逻辑注入模板文件,其方式不会影响模板被用作设计原型。这改善了设计沟通,缩小了设计和开发团队之间的差距。官方地址https://www.thymeleaf.org/如何使用1.引用Thym

2021-07-31 19:16:41 685

原创 死锁的相关知识

死锁的相关知识什么是死锁死锁是指多个进程之间因为资源竞争或者相互通信而造成的一种堵塞状态,若无外力作用,则进程没法推进,这种状态称为死锁死锁产生的四个条件1.互斥条件一个资源每次只能被一个进程使用2.请求且等待条件一个进程因为请求资源而堵塞的时候,不释放已获得资源3.不剥夺状态进程获得的资源,在没用使用完毕之前,不可强制剥夺4.循环等待状态若干个进程形成一种头尾详解的循环等待资源关系如何预防死锁只需要破坏任意死锁条件即可1.破坏互斥条件一次性分配所有的资源2.破坏请求且等待条

2021-07-31 14:42:39 52

原创 多线程学习

什么是进程每一个程序有一个独立的进程什么是线程进程要执行任务必须要通过线程,线程就是进程的最小执行单元什么是线程安全我们要确保在多个线程进行访问的情况下,确保程序正确执行创建线程的两种方法//第一种通过继承类来实现public MyThread extends Thread{ @Override public void run(){ //执行的任务 } } //2.通过实现Runnable接口来实现public MyThre

2021-07-30 19:13:59 53

原创 整合Spring,Mybatis,SpringMvc框架整合

ssm框架所需要的jar包<dependencies> <!--Junit--> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency> <!--

2021-07-04 17:11:19 176 1

原创 Maven踩坑

注意:maven打包丢失非java1文件当我们在使用Maven的时候,常常会因为Maven会导致一些文件编译后没有放进相应的包中,这时候我们应该去找下在pom文件中有没有这几句代码 src/main/java **/*.xml false

2021-07-01 14:14:09 90

原创 SpringMVC工作原理详解

SpringMVC工作原理详解在学习之前,先来两张神图镇楼什么是MVC经典MVC模式中,M是指业务模型,V是指用户界面,C则是控制器,使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。其中,View的定义比较清晰,就是用户界面。什么是SpringMVCSpring MVC是Spring Framework的一部分,是基于Java实现MVC的轻量级Web框架。官方文档:https://docs.spring.io/spring/docs/5.2.0.RELEAS

2021-07-01 14:03:12 157

原创 静态代理和动态代理详解

静态代理和动态代理详解1.动态代理我们实现动态代理需要Proxy类以及 InvocationHandler接口如何创建代理类class ProxyinvocationHandler implements inocationHandler{ //先获取到被代理对象 Object target; //设置被代理类 public void setTarget(Object target){ this.target=target; } //获取

2021-07-01 14:02:41 76

原创 Spring中的AOP

Spring中的AOPAOP(Aspect Oriented Programming)意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。有两种实现方法,一是JDK(Proxy类 和inovokeHandler接口),二是ciglibAO

2021-07-01 14:02:09 48

原创 SpringMVC工作原理详解

SpringMVC工作原理详解在学习之前,先来两张神图镇楼什么是MVC经典MVC模式中,M是指业务模型,V是指用户界面,C则是控制器,使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。其中,View的定义比较清晰,就是用户界面。什么是SpringMVCSpring MVC是Spring Framework的一部分,是基于Java实现MVC的轻量级Web框架。官方文档:https://docs.spring.io/spring/docs/5.2.0.RELEAS

2021-07-01 13:54:02 660 1

原创 分页查询的分析

当我们想要进行分页查询的时候,sql语句为:select*from 表 名 limit 起始索引,最终索引在业务实现过程中,可以分为物理查询和逻辑查询,通常物理查询需要创建一个具体实现类来进行操作,而逻辑查询一般是在前端页面来进行查询分页的具体公式为:开始页:(开始的索引-1)*一页有多少...

2021-06-27 10:16:05 42

转载 初认spring--三种注入方式

Spring整理笔记(狂神说Spring整理笔记)1.Spring1.1简介1.2 优点1.3 组成2.IOC2.1 IOC组成理论推导2.2 IOC本质2.3 IOC创建对象的方式3.Spring的基础配置3.1 别名3.2 Bean的配置3.3 import4.DI依赖注入4.1 构造器注入4.2 set方式注入 【重点】4.3 p、c 标签注入4.4 Bean的作用域5 Bean的自动装配5.1 byName与byType自动装配5.2 使用注解实现自动装配5

2021-06-26 14:06:53 710

原创 初识Spring----IOC创建对象方式

有三种创建IOC对象的方式1.使用下标构建<bean id="user" classs="com.kuang.dao.User"> <constructor-arg index="0" value="胡天豪说java"></constructor-arg></bean>2.使用类型构建,但有一个问题,参数类型有可能会冲突重复 <bean id="user" class="com.kuang.dao.User"> &

2021-06-25 22:33:47 79

原创 初认spring之第一次使用spring

Spring特点Spring是一个开源免费的框架 (容器)!Spring是一个轻量级的框架 , 非侵入式的控制反转 IoC , 面向切面 Aop对事务的支持 , 对框架整合的支持Ioc控制反转个人理解为以往创建对象的权力在程序员手中,而现在将这个权力给于用户,用户根据不同需要创建不同对象IOC本质控制反转IoC(Inversion of Control),是一种设计思想,DI(依赖注入)是实现IoC的一种方法,也有人认为DI只是IoC的另一种说法。没有IoC的程序中 , 我们使用面向对象编程

2021-06-25 21:25:33 165 1

原创 初识Mybatis----缓存

1.缓存是什么?当我们每次对数据库中的数据进行查询的时候,会消耗很多资源,为了避免重复查已经查过的数据与,我们使用了内存进行存数据,每次进行查询的时候,优先看内存中是否存在此数据,以减少对数据库的查询2.为什么使用缓存?1.减少和数据库的交互次数,减少系统开销,提高系统效率3.什么样的数据可以使用缓存?1.经常查询并且不经常改变的数据 【可以使用缓存】Mybatis缓存一级缓存是Session级别的缓存,默认开启,当我们使用Session对数据库进行查询,然后将查询到的内容放置进入

2021-06-25 12:36:59 64

原创 初认Mybatis---一对多查询

在我们使用Mybatis进行查询的时候会使用到如何对多对一的处理1.什么叫做多对一呢我们来举个例子来说明,我们创建两张表,一张学生表,和一张老师表学生中的tid对应着teacher表中的编号,这就意味着多个学生有可能为一个老师,这样就是联表查询,我们这时候提出需求,查询出所有学生的信息以及对应的老师是谁sql语句为:select *from student s left join teacher t on s.tid=t.id;这时候发现,使用注解以及xml无法准确的写出s.

2021-06-24 14:46:37 69

原创 最简单的log4j配置文件

log4j.rootLogger=DEBUG, CONSOLE, FILE## for consolelog4j.appender.CONSOLE=org.apache.log4j.ConsoleAppenderlog4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayoutlog4j.appender.CONSOLE.layout.ConversionPattern=%d{MM-dd-HH:mm:ss}[%c-%L][%t][%-4r] -

2021-06-23 09:37:20 119

原创 Mybaits学习

先认识一下Mybaits是什么?MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。我们如何使用Mybaits框架呢?1.首先我们先创建一个Maven项目,将src文件夹删除,构建子模块mybaits-012.首先创建Maven项目。通过Maven获取到Mybaits包,在pom中放置如下语句,来获取依赖 <dependency> <gro

2021-06-22 14:59:22 140

原创 Servlet----请求分发

近期学习了Javaweb中的Servlet,根据所学可以知道,我们在每创建一个页面请求的时候都需要创建一个servlet与之对应来处理他,但是因为未来方便起见,我们将其包装成为一个个方法,再将页面的请求不同类型的名称作为参数上传,根据参数选择与之对应的方法来处理,这就叫做请求分发...

2021-06-08 21:18:07 126

空空如也

空空如也

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

TA关注的人

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