- 博客(65)
- 收藏
- 关注
原创 SpringMVC
文章目录1、SpringMVC2、HelloWorldweb.xml配置springMVC.xmlHelloController.javaindex.jsp3、 @ReuqestMapping 注解用于标识类或者方法@ReuqestMapping 属性值:ant风格,路径规则、匹配restful风格,路径占位符、传值派生注解4、获取请求数据原生ServletAPI获取请求参数控制器方法形参获取请求参数@RequestParam@RequesHeader@CookieValue通过POJO获取请求参数解决乱码
2022-05-09 16:51:16
585
原创 06-Spring-整合日志框架 log4j2
Spring5 整合日志框架Spring5 已经移除了Log4jConfigListener,官方建议使用Log4j2整合Log4j2第一步:引入jar包第二步:创建log4j2.xml (log4j2 默认加载classpath 下的 log4j2.xml 配置文件。)jar包<dependencies> <!-- slf4j 作为日志门面 --> <dependency> <groupId>org.sl
2022-04-15 14:10:26
709
原创 05-Spring-事务管理
文章目录1.事务管理2.声明式事务管理2.1 实现步骤(1)基于注解实现(2)基于xml配置文件实现2.2 Spring事务管理API :PlatformTransactionManager接口2.3 @Transactional 相关参数2.4 传播行为:propagation2.5 隔离级别:isolation2.6 其他参数3.编程式事务管理1.事务管理概念:事务是数据库操作最基本单元,逻辑上一组操作,要么都成功,要么都失败,如果有一个失败操作那么所有的操作都失败事务四个特性(ACI
2022-04-14 22:03:35
576
原创 04-Spring-JDBCTemplate
文章目录1.JdbcTemplate2.添加、修改、删除、查询3.批量操作1.JdbcTemplate什么是 JdbcTemplateSpring框架对JDBC进行封装,使用JdbcTemplate方便实现对数据库的操作准备工作引入jar包配置数据源配置JdbcTemplate后续可通过 JdbcTemplate 对象进行增删改操作1.jar包spring-core、spring-beans、spring-aop、spring-context、spring-jd
2022-04-14 17:54:18
1093
原创 03-Spring-AOP
文章目录1. SpringAOP2. 底层原理3. 操作术语4. 准备工作5. AspectJ注解使用6. AspectJ配置使用1. SpringAOP什么是 AOP面向切面编程利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高代码的可重用性,同时提高开发的效率。通俗表达:在不改变源代码的情况下,在原功能上添加新的功能主要的实现:日志记录、安全控制、事务处理、异常处理等等2. 底层原理AOP底层使用动态代理 实现第一种 有接口:使用J
2022-04-12 22:47:13
448
原创 02-Spring-IOC
文章目录1. IOC容器2. IOC操作bean管理1. 什么bean管理2. bean管理的实现方式1. 注解方式1. 对象创建2. 属性注入3. 完全注解开发2 .xml实现1.无参构造、有参构造、基本属性注入、特殊符号注入、NULL值注入2.外部bean、内部bean、级联bean3. 集合属性注入3. Spring中的两种Bean 普通bean 和 工厂bean(FactoryBean)4. bean的作用域5. bean的生命周期6. 自动装配7. 外部属性文件1. IOC容器什么是IO
2022-04-11 10:44:02
268
原创 Maven 入门使用
Maven的作用依赖管理 jar包下载构建管理 编译/打包/部署Maven 获取下载地址Maven 核心配置文件配置文件在解压目录下的conf文件中setting.xml文件解析<?xml version="1.0" encoding="UTF-8"?> <settings xmlns="http://maven.apache.org/SETTINGS/1.2.0" xmlns:xsi="http://
2022-03-30 18:20:29
701
原创 mybatis-plus-generator 代码生成工具快速使用
mybatis-plus-generator 代码生成工具快速使用导入依赖 <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.3.1.tmp</version> </dependency> &
2021-08-28 01:48:59
298
转载 JSP九大内置对象
1、request对象:request 对象是 javax.servlet.httpServletRequest类型的对象。 该对象代表了客户端的请求信息,主要用于接受通过HTTP协议传送到服务器的数据。(包括头信息、系统信息、请求方式以及请求参数等)。request对象的作用域为一次请求是客户端对服务器发出的请求。客户端的请求信息被封装在request对象中,通过它发送请求给服务器。它是HttpServletRequest类的实例。作用域为request(用户请求期)。常用方法:1. objec
2020-08-06 14:20:24
6003
原创 JDBC
什么是JDBCJava数据库连接,(Java Database Connectivity,简称 JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法连接数据库主要涉及到以下几个对象Connection 与数据库建立连接关系,通常为 DriverManager.getConnection(url, username, password)。这里可以很明显的感觉出来,每个元素所产生的作用。Statement / Prepar..
2020-08-06 14:16:17
96
原创 配置文件Nginx.conf解析
配置文件中的内容包含三部分内容全局块:配置服务器整体运行的配置指令比如 worker_processes 1;处理并发数的配置events 块:影响 Nginx 服务器与用户的网络连接比如 worker_connections 1024; 支持的最大连接数为 1024http块http全局块server 块更具体的解析...
2020-08-06 02:35:07
118
原创 动静分离
动静分离Nginx 动静分离简单来说就是把动态请求跟静态请求分开,不能理解成只是单纯的把动态页面和静态页面物理分离。严格意义上说应该是动态请求跟静态请求分开,可以理解成使用 Nginx 处理静态页面,Tomcat 处理动态页面。动静分离从目前实现角度来讲大致分为两种:一种是纯粹把静态文件独立成单独的域名,放在独立的服务器上,也是目前主流推崇的方案;另外一种方法就是动态跟静态文件混合在一起发布,通过 nginx 来分开。通过 location 匹配url实现不同的请求转发。ex
2020-08-06 02:28:28
634
原创 负载均衡
什么是负载均衡增加服务器的数量,然后将请求分发到各个服务器上,将原先请求集中到单个服务器上的情况改为将请求分发到多个服务器上,将负载分发到不同的服务器,也就是我们所说的负载均衡假设有15个请求,nginx默认会自动帮我们把这些请求平均分发给服务器分配方式(策略)分配方式在upstream块中配置,server块内容一致轮询(默认)每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器 down 掉,能自动剔除,不再去访问down掉的服务器。weightweight ..
2020-08-06 02:27:01
132
原创 反向代理
什么反向代理?反向代理,其实客户端对代理是无感知的,因为客户端不需要任何配置就可以访问,我们只需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,在返回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器地址,隐藏了真实服务器 IP 地址。简单理解:客户机访问到代理服务器,由代理服务器去选择目标服务器,这过程中,客户机显示出来的IP 地址是访问代理服务器访问地址,并非目标服务器的地址Nginx如何配置反向代理?假设现在我们的访问地址是ht
2020-08-06 02:21:43
176
原创 Redis 主从库
什么是主从库也就是我们所说的主从复制,主机数据更新后根据配置和策略,自动同步到备机的master/slaver机制,Master以写为主,Slave以读为主能干嘛读写分离容灾恢复如何使用配从不配主 配置时只需要配置从库从库配置:slaveof 主库IP 主库port每次与master断开之后,都需要重新连接,除非你配置从库的redis.conf文件Info replication 查看当前库的信息常用3招一主二仆切入点问题?slave1、sla
2020-08-05 03:01:22
292
1
原创 Redis 事务
是什么可以一次执行多个命令,本质是一组命令的集合。一个事务中的所有命令都会序列化,按顺序地串行化执行而不会被其它命令插入,不许加塞如何实现一个队列中,一次性、顺序性、排他性的执行一系列命令常用命令命令解析WATCH key [key…]监视一个(或多个) key ,如果在事务执行之前这个(或这些) key 被其他命令所改动,那么事务将被打断。UNWATCH取消 WATCH 命令对所有 key 的监视。MULTI标记一个事务块的开始。EXEC..
2020-08-05 03:00:46
75
原创 Redis 5+1
5+15大数据类型和key的操作String(字符串)string是redis最基本的类型string类型是Redis最基本的数据类型,一个redis中字符串value最多可以是512Mstring类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象 。Hash(哈希,类似java里的Map)Redis hash 是一个键值对集合。Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。
2020-08-05 02:58:11
109
原创 redis配置文件解析
参数说明redis.conf 配置项说明如下:Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程daemonize no当Redis以守护进程方式运行时,Redis默认会把pid写入/var/run/redis.pid文件,可以通过pidfile指定pidfile /var/run/redis.pid指定Redis监听端口,默认端口为6379,作者在自己的一篇博文中解释了为什么选用6379作为默认端口,因为6379在手机按键上MERZ对应的号码,而M
2020-08-04 21:01:11
96
原创 nginx安装
1.下载依赖库yum install gcc-c++yum install -y pcre pcre-develyum install -y zlib zlib-develyum install -y openssl openssl-devel2.nginx下载地址3.上传至linux并解压tar -zxvf nginx-1.8.1.tar.gz4.配置以及编译cd nginx-1.8.1./configure --prefix=/usr/local/nginxmake &&a
2020-08-04 12:51:33
100
原创 Redis持久化机制RDB和AOF
redis持久化RDB和AOFRedis 持久化:提供了多种不同级别的持久化方式:一种是RDB,另一种是AOF.RDB 持久化可以在指定的时间间隔内生成数据集的时间点快照(point-in-time snapshot)。AOF 持久化记录服务器执行的所有写操作命令,并在服务器启动时,通过重新执行这些命令来还原数据集。 AOF 文件中的命令全部以 Redis 协议的格式来保存,新命令会被追加到文件的末尾。 Redis 还可以在后台对 AOF 文件进行重写(rewrite),使得 AOF 文件的体积不
2020-08-03 19:16:32
105
原创 jedis和jedisPool
Jedis直接连接即可使用具体用法参照 public static void main(String[] args) { Jedis jedis = new Jedis("192.168.145.128", 6379); jedis.auth("123456"); jedis.set("1", "user1"); jedis.set("2", "user2"); jedis.set("3", "user3");
2020-08-03 19:15:14
379
原创 JedisDataException:NOAUTH Authentication required.
JedisDataException: NOAUTH Authentication required.Exception in thread "main" redis.clients.jedis.exceptions.JedisDataException: NOAUTH Authentication required. at redis.clients.jedis.Protocol.processError(Protocol.java:132) at redis.clients.jedis.Proto
2020-08-03 18:33:19
6088
2
原创 JedisDataException:DENIED Redis is running in protected mode because protected mode
JedisDataException: DENIED Redis is running in protected mode because protected modeException in thread "main" redis.clients.jedis.exceptions.JedisDataException: DENIED Redis is running in protected mode because protected mode is enabled, no bind address
2020-08-03 18:32:50
233
原创 JedisConnectionException:Failed connecting to host 192.168.145.128:6379
redis.clients.jedis.exceptions.JedisConnectionException:Failed connecting to host 192.168.145.128:6379Exception in thread "main" redis.clients.jedis.exceptions.JedisConnectionException: Failed connecting to host 192.168.145.128:6379 at redis.clients.jedi
2020-08-03 18:30:32
2398
原创 01-jdk安装
CentOS 7 安装JDK8JDK下载官方下载:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html网盘下载:链接:https://pan.baidu.com/s/1Qhp6OPByzE2riVXWLPbfNw提取码:zfei卸载默认安装在系统上的jdk查看默认的jdk的安装信息并删除查看jdk的安装信息rpm -qa | grep jdkrpm -qa | grep
2020-08-03 15:43:31
282
原创 03-Tomcat安装
tomcat安装以8.5为例下载apache-tomcat-8.5.57.tar.gz http://tomcat.apache.org/传送到linux的 /usr/local 目录下解压tar -xzvf apache-tomcat-9.0.0.M1.tar.gz如果需要修改端口或者其他配置信息可以进入apache-tomcat-8.5.57/conf目录修改server.xmlvim /usr/local/apache-tomcat-8.5.57/conf/s
2020-08-03 15:05:13
97
原创 项目部署
对于Jar包的项目部署把jar包 传到服务器上,使用命令启动项目java -jar xxx.jar 运行jar包nohup java -jar xxx.jar & 后台运行jar包如果想要结束结束运行,查看进程获取id退出运行界面 ctrl + cps -ef | grep java 查看进程,获取进程编号kill -9 ‘进程编号’ 杀死进程对于war包的项目部署把war包传到tomcat的webapp目录下
2020-08-03 09:48:56
108
原创 04-Redis安装
redis下载地址将Redis放入我们的Linux目录/opt目录下解压redistar -zxvf redis-5.0.5.tar.gz进入redis-5.0.5目录 执行make命令make如果运行make命令时没找到命令,则需要安装gccyum install gcc-c++二次make时 需要先运行make distclean之后再make,因为第一次make会产生一些文件make 成功完成执行后 执行make install拷贝一份re..
2020-08-02 23:41:37
86
原创 消费者Consumer
public class Consumer1 { public static void main(String[] args) throws IOException, TimeoutException { String queueName = "queue1"; // 1.连接rabbitmq //配置连接信息 ConnectionFactory connectionFactory = new ConnectionF
2020-07-31 14:29:27
217
原创 使用RabbitMQ
一、依赖导入<dependency> <groupId>com.rabbitmq</groupId> <artifactId>amqp-client</artifactId> <version>3.6.5</version></dependency>常用交换器RabbitMQ常用的交换器类型有direct、topic、fanout种。假设 有5个消息队列并且没有创建消费者 (方便结果演
2020-07-31 14:10:25
328
原创 认识rabbitmq
1.什么是rabbitmq采用AMQP高级消息队列协议的一种消息队列技术,最大的特点就是消费并不需要确保提供方存在,实现了服务之间的高度解耦2.为什么要使用rabbitmq在分布式系统下具备异步,削峰,负载均衡等一系列高级功能;拥有持久化的机制,进程消息,队列中的信息也可以保存下来。实现消费者和生产者之间的解耦。对于高并发场景下,利用消息队列可以使得同步访问变为串行访问达到一定量的限流,利于数据库的操作。可以使用消息队列达到异步下单的效果,排队中,后台进行逻辑下单。3.使用rabbitm
2020-07-31 12:24:00
121
原创 log4j配置解析
一、rootLogger的配置方式:log4j.rootLogger =[ level ],appenderName1,appenderName2, …Log4j建议只使用四个级别,优先级从高到低分别是ERROR、WARN、INFO、DEBUG。appenderName是日志信息输出位置,可以同时指定多个输出目的地二、配置日志信息输出目的地AppenderAppender的配置方式:log4j.appender.appenderName = Log4j提供的appender类log4j.a
2020-07-27 19:24:11
1125
原创 rabbitmq3.7.2安装
otp_src_20.1.tar.gz 下载链接:https://pan.baidu.com/s/1CtURiu-m9L_vEU2XPRZX3g提取码:b8c7RabbitMQ 3.7 下载链接:https://pan.baidu.com/s/1vJ5IgSUVWBJISDdTcoIU-g提取码:r612一、Erlang安装配置安装依赖包yum install -y gcc gcc-c++ unixODBC-devel openssl-devel ncurses-devel解压
2020-07-27 19:09:00
334
原创 Linux设置 防火墙 开放端口
查看防火墙状态[root@localhost ~]# systemctl status firewalld.service 查看开放的端口[root@localhost ~]# firewall-cmd --list-ports 永久开启xxxx端口[root@localhost ~]# firewall-cmd --zone=public --add-port=xxxx/tcp --permanent 更新防火墙规则[root@localhost ~]# firewall-cmd
2020-07-27 18:33:11
110
原创 1.spring boot 注解解析
一、spring boot 注解解析spring boot 常用配置讲解@SpringBootApplication 主配置注解(一般放在根类)@Bean 在spring 容器声明bean@ComponentScan 指定扫描包@Configuration 指定该类为配置类@ImportResource 引入外部xml(最好指定 classpath:)spring boot 配置文件spring boot 配置文件 支持 .properties
2020-07-26 22:51:03
108
原创 SpringMVC运行流程
SpringMVC流程用户发送请求至前端控制器DispatcherServlet。DispatcherServlet收到请求调用HandlerMapping处理器映射器。处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。DispatcherServlet调用HandlerAdapter处理器适配器。HandlerAdapter经过适配调用具体的处理器(Controller,也叫后端控制器)
2020-07-26 21:16:16
164
原创 02-mysql安装
CentOS7 安装 MySQL57在CentOS中默认安装有MariaDB,这个是MySQL的分支,但为了需要,还是要在系统中安装MySQL,而且安装完成之后可以直接覆盖掉MariaDB。下载MySQL yum源,然后可以根据这个源去下载mysql了。[root@localhost ~]# wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm开始安装MySQL服务器。[root
2020-07-26 10:33:19
96
原创 Git使用
1 版本控制工具应该具备的功能协同修改多人并行不悖的修改服务器端的同一个文件。数据备份不仅保存目录和文件的当前状态,还能够保存每一个提交过的历史状态版本管理在保存每一个版本的文件信息的时候要做到不保存重复数据,以节约存储空间,提高运行效率。这方面 SVN 采用的是增量式管理的方式,而 Git 采取了文 件系统快照的方式。权限控制对团队中参与开发的人员进行权限控制。对团队外开发者贡献的代码进行审核——Git 独有历史记录查看修改人、修改时间、修改内
2020-07-26 00:40:23
79
原创 19.多线程
1. 程序、进程、线程的概念程序: 概念:为完成特定任务,用某种语言编写的一组指令的集合,即指一段静态的代码,静态对象进程: 概念:是程序的一次执行过程,或是 正在运行的一个程序。是一个 动态的过程:产生、存在和消亡的过程。——生命周期如:运行中的QQ,运行中的MP3播放器程序是静态的,进程是动态的进程作为资源分配的单位,系统在运行时会为每个进程分配不同的内存区域线程: 概念:进程可进一步细化为线程,是 一个程序内部的一条执行路径1.若一个进程同一时间并
2020-07-26 00:28:18
120
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人