自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(54)
  • 问答 (1)
  • 收藏
  • 关注

原创 LVS负载均衡配置与keepalive服务配置

D-NAT负载均衡模型D-NAT模型的缺点在于网络上传与下载的不对称性DR负载均衡模型

2020-12-20 02:41:31 406 1

转载 java new一个对象的过程中发生了什么

java new一个对象的过程中发生了什么java在new一个对象的时候,会先查看对象所属的类有没有被加载到内存,如果没有的话,就会先通过类的全限定名来加载。加载并初始化类完成后,再进行对象的创建工作。我们先假设是第一次使用该类,这样的话new一个对象就可以分为两个过程:加载并初始化类和创建对象。一、类加载过程(第一次使用该类)java是使用双亲委派模型来进行类的加载的,所以在描述类加载过程前,我们先看一下它的工作过程: 双亲委托模型的工作过程是:如果一个类加载器(ClassLoader)收到了类

2020-12-06 17:34:25 147

原创 java如何实现动态代理

java如何实现动态代理1、jdk的动态代理2、cglib的动态代理1、Enhancer.create()2、Enhancer.createHelper()3、标识代理类1、KEY_FACTORY2、Keyfactory_create方法3、Generator的create方法4、AbstractClassGenerator的create(Key)方法5、data.get(this,getUseCache)6、generatedClasses.get(gen);7、AbstractClassGenerato

2020-11-18 21:03:06 194

原创 thymeleaf模板引擎的使用

thymeleaf模板引擎的使用1、thymeleaf的介绍2、thymeleaf使用模板3、thymeleaf的表达式语法4、thymeleaf实例演示1、th的常用属性值2、标准表达式语法5、国际化的配置​ 在早期开发的时候,完成的都是静态页面也就是html页面,随着时间轴的发展,慢慢的引入了jsp页面,当在后端服务查询到数据之后可以转发到jsp页面,可以轻松的使用jsp页面来实现数据的显示及交互,jsp有非常强大的功能,但是,在使用springboot的时候,整个项目是以jar包的方式运行而不是w

2020-11-03 17:20:50 177

原创 springboot配置数据源

springboot配置数据源1、JDBC2、自定义数据源DruidDataSource3、springboot配置多数据源并动态切换4、springboot整合mybatis​ Spring Framework 为 SQL 数据库提供了广泛的支持。从直接使用 JdbcTemplate 进行 JDBC 访问到完全的对象关系映射(object relational mapping)技术,比如 Hibernate。Spring Data 提供了更多级别的功能,直接从接口创建的 Repository 实现,并

2020-11-03 17:09:49 486

原创 springboot web开发

springboot web开发1、springboot整合servlet2、静态资源的配置3、springmvc的扩展​ springboot在开发web项目的时候具备天然的优势,现在的很多企业级开发都是依托于springboot的。​ 使用springboot的步骤:​ 1、创建一个SpringBoot应用,选择需要的模块,SpringBoot就会默认将需要的模块自动配置好​ 2、手动在配置文件中配置部分配置项目就可以运行起来了​ 3、专注编写业务代码,不需要考虑以前那样一大堆的配置

2020-11-03 16:56:55 102

原创 springboot配置文件详解

springboot配置文件详解1、Properties配置详解2、YAML3、@ConfigurationProperties 与 @Value 对比​ 在之前的项目开发中,可以使用xml,properties进行相关的配置,这种配置方式比较简单,但是在应对复杂的商业需求下,多环境和编程化的配置无法得到满足,因此springboot提供了YAML的配置方式丰富功能和简化开发。1、Properties配置详解​ 通常情况下,我们可以使用properties文件进行相关的配置。​ (1)在res

2020-11-03 16:42:40 72

原创 Mybatis-plus的使用

Mybatis-plus的使用1、mybatis-plus环境搭建2、简单的CRUD操作1、插入操作2、更新操作3、删除操作4、查询操作3、Mybatis-plus的相关配置4、条件构造器Wrapper5、代码生成器1、添加依赖2、编写生成类6、插件扩展1、分页插件2、乐观锁插件3、SQL执行分析插件,避免出现全表更新和删除4、非法sql检查插件7、SQL注入器8、公共字段填充前文:Mybatis的介绍和基本使用Mybatis SQL映射文件详解Mybatis与Spring SpringMVC框架整

2020-10-25 03:30:46 218

原创 Mybatis与Spring SpringMVC框架整合及逆向工程

Mybatis框架整合及逆向工程1、三大框架整合1、导入pom文件2、编写各个框架的配置文件3、创建测试类2、mybatis逆向工程3、分页插件 PageHelper1、添加PageHelper配置2、使用前文:Mybatis的介绍和基本使用Mybatis SQL映射文件详解1、三大框架整合​ 在老期的项目中,一般都是使用ssm(Spring、SpringMVC、Mybatis)项目做开发的,以下介绍框架的整合1、导入pom文件1、导入spring的pom依赖<?xml versio

2020-10-25 03:15:57 275

原创 Mybatis SQL映射文件详解

Mybatis SQL映射文件详解1、insert、update、delete元素2、select元素1、select的参数传递2、参数的取值方式3、处理集合返回结果—resultType4、自定义结果集---resultMap5、联合查询6、获取集合元素7、分步查询8、延迟查询3、动态sql1、if & trim2、foreach3、choose4、set4、缓存1、一级缓存的使用2、二级缓存1、缓存的使用2、缓存的属性3、整合第三方缓存​ 在Mybatis的介绍和基本使用学习了mybatis

2020-10-23 23:17:05 395

原创 Mybatis的介绍和基本使用

Mybatis的介绍和基本使用0、数据库操作框架的历程(1) JDBC(2) DBUtils(3)Hibernate(4) JDBCTemplate1、什么是Mybatis?2、第一个Mybatis项目3、增删改查的基本操作4、配置文件详解Mybatis的介绍和基本使用0、数据库操作框架的历程(1) JDBC​ JDBC(Java Data Base Connection,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的

2020-10-23 01:11:45 185

原创 SpringMVC的使用(3)

SpringMVC的使用1、SpringMVC的返回JSON数据2、发送ajax请求获取json数据3、使用@RequestBody获取请求体信息4、使用RespsonseEntity可以用来定制响应内容5、文件下载6、文件上传7、Springmvc拦截器1、自定义第一个拦截器2、定义多个拦截器8、拦截器跟过滤器的区别9、SpringMVC的国际化操作10、通过超链接来切换国际化11、SpringMVC异常处理机制1、SpringMVC的返回JSON数据​ 到目前为止我们编写的所有Controller

2020-10-12 22:35:04 135

原创 mysql的执行计划该怎么看

mysql的执行计划该怎么看1、执行计划中包含的信息​ 在企业的应用场景中,为了知道优化SQL语句的执行,需要查看SQL语句的具体执行过程,以加快SQL语句的执行效率。​ 可以使用explain+SQL语句来模拟优化器执行SQL查询语句,从而知道mysql是如何处理sql语句的。​ 官网地址: https://dev.mysql.com/doc/refman/5.5/en/explain-output.html1、执行计划中包含的信息ColumnMeanin

2020-10-10 18:25:00 107

原创 mysql如何配置读写分离

Mysql如何配置读写分离1、读写分离的介绍2、读写分离的配置1、硬件配置2、首先在master和slave上配置主从复制3、进行proxy的相关配置4、进行连接1、读写分离的介绍​ MySQL读写分离基本原理是让master数据库处理写操作,slave数据库处理读操作。master将写操作的变更同步到各个slave节点。​ MySQL读写分离能提高系统性能的原因在于:​ 1、物理服务器增加,机器处理能力提升。拿硬件换性能。​ 2、主从只负责各自的读和写,极大程度缓解X锁和

2020-10-10 18:15:12 592

原创 mysql主从复制的原理解析

Mysql主从复制原理0、为什么需要主从复制?1、什么是mysql的主从复制?2、mysql复制原理原理:也就是说:注意:具体步骤:3、mysql主从形式(一)一主一从(二)主主复制(三)一主多从(四)多主一从(五)联级复制4、mysql主从同步延时分析0、为什么需要主从复制?1、在业务复杂的系统中,有这么一个情景,有一句sql语句需要锁表,导致暂时不能使用读的服务,那么就很影响运行中的业务,使用主从复制,让主库负责写,从库负责读,这样,即使主库出现了锁表的情景,通过读从库也可以保证业务的正常运作。2

2020-10-10 18:11:19 222

原创 mysql如何配置主从复制

Mysql主从复制安装配置1、基础设置准备2、安装mysql数据库3、在两台数据库中分别创建数据库4、在主(node1)服务器进行如下配置:5、配置从服务器登录主服务器的账号授权6、从服务器的配置7、重启主服务器的mysqld服务8、重启从服务器并进行相关配置9、此时可以在主服务器进行相关的数据添加删除工作,在从服务器看相关的状态1、基础设置准备#操作系统:centos6.5#mysql版本:5.7#两台虚拟机:node1:192.168.85.111(主)node2:192.168.85.

2020-10-10 18:07:10 157

原创 mysql事务的隔离级别与测试

Mysql事务的隔离级别与测试1、打开mysql的命令行,将自动提交事务给关闭--查看是否是自动提交 1表示开启,0表示关闭select @@autocommit;--设置关闭set autocommit = 0;2、数据准备--创建数据库create database tran;--切换数据库 两个窗口都执行use tran;--准备数据 create table psn(id int primary key,name varchar(10)) engine=innodb;--

2020-10-10 16:10:49 254

原创 mysql锁机制的分析与测试

mysql的锁机制1、MySQL锁的基本介绍2、MyISAM表锁注意事项总结1、MySQL锁的基本介绍​ **锁是计算机协调多个进程或线程并发访问某一资源的机制。**在数据库中,除传统的 计算资源(如CPU、RAM、I/O等)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一 个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。从这个角度来说,锁对数据库而言显得尤其重要,也更加复杂。​ 相对其他数据库而言,MySQL的锁机制比较简单,其最

2020-10-10 15:58:25 139

原创 Linux下mysql的彻底卸载

Linux下mysql的彻底卸载1、查看mysql的安装情况2、删除上图安装的软件3、都删除成功之后,查找相关的mysql的文件4、删除全部文件5、再次执行命令1、查看mysql的安装情况rpm -qa | grep -i mysql2、删除上图安装的软件rpm -ev mysql-community-libs-5.7.27-1.el6.x86_64 --nodeps3、都删除成功之后,查找相关的mysql的文件find / -name mysql4、删除全部文件rm -rf /v

2020-10-10 15:52:18 117

原创 CentOS安装MYSQL5.7详细步骤

MYSQL5.7详细安装步骤:0、更换yum源1、打开 mirrors.aliyun.com,选择centos的系统,点击帮助2、执行命令:yum install wget -y3、改变某些文件的名称mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup4、执行更换yum源的命令wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.a

2020-10-10 15:48:41 374

原创 Java SPI机制详解

Java SPI机制详解1、什么是SPI?2、SPI的用途Driver实现Mysql DriverManager实现Java SPI机制详解1、什么是SPI?2、SPI的用途Driver实现Mysql DriverManager实现1、什么是SPI?SPI 全称为 (Service Provider Interface) ,是JDK内置的一种服务提供发现机制。SPI是一种动态替换发现的机制, 比如有个接口,想运行时动态的给它添加实现,你只需要添加一个实现。我们经常遇到的就是java.sql.Driver

2020-10-10 15:24:53 409

原创 SpringMVC的使用(2)

SpringMVC的使用1.SpringMVC的请求处理1、SpringMVC对请求参数的处理2、乱码问题的解决3、SpringMVC对原生API的支持4、使用Model,Map,ModelMap传输数据到页面5、使用ModelAndView对象传输数据到页面6、使用session传输数据到页面7、使用@ModelAttribute来获取请求中的数据8、使用forward实现页面转发9、使用redirect来实现重定向10、静态资源的访问2.自定义视图解析器3.自定义类型转换器4.自定义日期格式化转换器(5

2020-10-10 03:25:04 158

原创 SpringMVC简单介绍及使用(1)

SpringMVC简单介绍及使用1、什么是MVC?2、SpringMVC1、SpringMVC的介绍2、SpringMVC的优点3、SpringMVC的实现原理3、基于XML的Hello_SpringMVC4、基于注解的Hello_SpringMVC5、注意细节1、springmvc_helloworld运行流程:2、springmvc的配置文件3、DispatcherServlet的url-pattern4、@RequestMapping6、@PathVariable7、REST1、什么是MVC?​

2020-10-07 23:48:20 171 1

原创 Spring AOP声明式事务的使用

Spring AOP声明式事务的使用1、Spring JdbcTemplate1、配置并测试数据源2、给spring容器添加JdbcTemplate3、插入数据4、批量插入数据5、查询某个值,并以对象的方式返回6、查询返回集合对象7、返回组合函数的值8、使用具备具名函数的JdbcTemplate9、整合EmpDao2、声明式事务1、环境准备2、声明式事务的简单配置3、事务配置的属性4、测试超时属性5、设置事务只读6、设置哪些异常不回滚7、设置哪些异常回滚8、设置隔离级别9、事务的传播特性10、测试事务的传播

2020-09-22 00:54:29 194

原创 Spring AOP的基本介绍与使用

Spring AOP介绍与使用1.AOP的概念为什么要引入AOP?AOP的核心概念及术语AOP的通知类型AOP的应用场景2.Spring AOP的简单配置1.添加pom依赖2.编写配置3.测试4.通过cglib来创建代理对象注意:1.切入点表达式2.通知方法的执行顺序3.获取方法的详细信息4.spring对通知方法的要求5.表达式的抽取6.环绕通知的使用7.多切面运行的顺序3.基于配置的AOP配置AOP:Aspect Oriented Programming 面向切面编程OOP:Object Orie

2020-09-18 20:45:41 244

原创 idea maven项目不支持发行版本解决方法

遇到这个问题主要的解决方法是修改maven项目中的jdk版本和maven目录及maven本地仓库1.修改idea使用的java编译器版本左上角File>Settings>Build, Execution, Deployment>java Compiler里选择本地安装的jdk版本点Apply,OK2.更改项目使用的jdk版本左上角File>Project Structure>Project修改jdk版本File>Project Structure>Mo

2020-09-17 02:40:19 4300 2

原创 SpringIOC的注解应用

SpringIOC的注解应用1、使用注解的方式注册bean到IOC容器中2、定义扫描包时要包含的类和不要包含的类3、使用@AutoWired进行自动注入4、@AutoWired可以进行定义在方法上5、自动装配的注解@AutoWired,@Resource6、泛型依赖注入​ 在之前的项目中,我们都是通过xml文件进行bean或者某些属性的赋值,其实还有另外一种注解的方式,在企业开发中使用的很多,在bean上添加注解,可以快速的将bean注册到ioc容器。1、使用注解的方式注册bean到IOC容器中ap

2020-09-13 03:12:36 298

原创 spring 基本使用方法及用xml配置ioc

编写Bean对象**Person.java 四个属性及getter、setter + 构造方法package com.example.bean;public class Person { private int id; private String name; private int age; private String gender; public Person(){ } public Person(int id, String name, i..

2020-08-28 19:28:50 184

原创 Maven 构建第一个项目

1、maven的安装​ maven官网:https://maven.apache.org/​ maven仓库:https://mvnrepository.com/​ 安装步骤:1、安装jdk2、从官网中下载对应的版本3、解压安装,然后配置环境变量,需要配置MAVEN_HOME,并且将bin目录添加到path路径下4、在命令行中输入mvn -v,看到版本信息表示安装成功2、修改Maven镜像maven的常用仓库​ 由于网络访问的原因,在国内如果需要下载国外jar包的时候会受限,因此一般

2020-08-28 18:17:23 175

原创 在项目中引入spring及ioc功能的基本使用

1、spring_helloworld使用手动加载jar包的方式实现,分为三个步骤,虽然现在已很少使用这种方式,但也为最基本的方式导包:导入这五个包即可commons-logging-1.2.jarspring-beans-5.2.3.RELEASE.jarspring-context-5.2.3.RELEASE.jarspring-core-5.2.3.RELEASE.jarspring-expression-5.2.3.RELEASE.jar写bean对象Person.

2020-08-26 21:42:04 307

原创 使用Tomcat运行第一个servlet Java Web程序

1.在IDEA里创建一个项目这里取名为firstweb,名字随意,但后面需要用到该名字2.勾选Web Application则IDEA会为我们自动创建web>WEB-INF>web.xml文件3.引入servlet相关类的jar包点开File>Project Structure切换为Dependencies页签点击加号选择1 JARs or directories…选择Tomcat安装目录下的lib>servlet-api.jar 点击ok即可4.创

2020-08-21 02:47:33 273

原创 java 数据库连接池之Druid与HikariCP使用

Druid导入jar包在项目中导入druid-1.1.9.jar即可使用Druid,jar包在github上下载即可配置druid.properties#驱动名称#driverClassName=com.mysql.jdbc.Driver#urlurl=jdbc:mysql://localhost:3306/demo#用户名username=root#密码password=123456#配置初始化大小、最小、最大initialSize=5minIdle=10maxActive

2020-07-11 00:32:27 548

原创 java 数据库连接池之dbcp与c3p0使用

DBCP导入jar包使用dbcp需要导入以下jar包,版本可以不同,在Apache Commons官网下载即可commons-dbcp2-2.7.0.jarcommons-pool2-2.3.jarcommons-logging-1.2.jardbcp的使用设置DataSourcepackage com.mypackage.pool.dbcp;import org.apache.commons.dbcp2.BasicDataSource;import javax.sql.DataSo

2020-07-10 02:25:27 135

原创 Java 使用apacheDBUtil简化JDBC的数据表与数据封装对象的相互转化

Oracle的Apache软件基金会提供了commons.dbutils-1.7.jar等不同版本的jar包,封装了数据库的的存取操作,方便了我们对数据库数据和类对象的相互转换,在项目中导入该jar包即可简化数据库的增删改查操作获取连接的封装类package com.mypackage.util;import java.sql.*;public class MySQLDBUtil { public static final String URL = "jdbc:mysql://loca

2020-07-10 01:32:06 121

原创 Java 反射API的简介及使用

Java提供了反射技术,使我们可以通过类的全名创建对象,利用反射机制,我们可以在运行时再确定对象类型,从而对不同对象进行分别处理,多少无意,看代码Class对象的获取通常jvm在程序运行时会为每个类自动加载一个Class对象,通常我们创建对象和对对象里的函数进行使用或操作时都是JVM通过这个Class对象来完成我们对一个类或对象的相应操作,而一般有三种方式获取该Class对象public class CreateClassObject { public static void main(Str

2020-07-09 01:14:14 391

原创 java JDBC使用简易教程

java中提供了一套标准接口,数据库厂商来进行实现,包含实现子类的jar文件一般情况下存放在数据库的安装目录下,使用时需在工程中导入相应jar包以Oracle为例,数据库连接的代码如下import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.Statement;//如果需要建立连接,java中提供了一套标准,数据库厂商来进行实现,包含实现子类的jar文件一

2020-07-09 00:20:29 132 1

原创 sql怎么进行行转列

首先我们来Oracle看一个函数decode(条件,值1,翻译值1,值2,翻译值2…)和case 条件 when 值1 then 返回值1 when 值2 then 返回值2…语句Mysql的操作大同小异例子如下:select ename,sal,deptno,decode(deptno,10,sal*1.1,20,sal*1.2) from emp;上面decode相当于if(deptno == 10) sal *= 1.1;else if(deptno == 20) sal *= 1

2020-06-29 00:13:50 1031

原创 Java 注解与自定义注解

注解的定义Annontation是Java5开始引入的新特征,中文名称叨注解。它提供了一种安全的类似注释的机制,用来将任何的信息戒元数据(metadata)与程序元素(类、方法、成员变量等)进行关联。为程序的元素(类、方法、成员变量)加上更直观更明了的说明,这些说明信息是与程序的业务逻辑无关,并且供指定的工具戒框架使用。Annontation像一种修饰符一样,应用于包、类型、构造方法、方法、成员变量、参数及本地变量的声明语句中。Java注解是附加在代码中的一些元信息,用于一些工具在编译、运

2020-06-21 03:26:32 93

原创 Java jdk新特性:Stream API

什么是StreamStream是jdk提供的一个接口,在java.util.stream包下,该接口继承自BaseStream<T, Stream>BaseStream有出来Stream子接口还有DoubleStream,IntStream,LongStream子接口作为 Java8 API 的新成员,Stream API “允许以声明式的方式处理数据集合”。简单来说就是jdk提供的一种新的对集合进行操作的方式。可以简化for循环和简单编写更简便的编写并行程序Stream特性Strea

2020-06-21 01:55:13 96

原创 Java Lambda表达式的使用及内部实现

Lambda表达式介绍Lambda表达式是Java8中添加的新功能。使用Lambda表达式可以替代只有一个抽象函数接口实现,告别匿名内部类,代码看起来更简洁。Lambda表达式同时还提升了对集合、框架的迭代、遍历、过滤数据的操作。函数式接口只有一个抽象方法的接口称为函数式接口,在使用该类接口时可以用lambda表达式对该类接口的实现进行简化案例//注解,可自定义@FunctionalInterfacepublic interface InterfaceTest{ public void

2020-06-14 21:55:50 330

空空如也

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

TA关注的人

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