自定义博客皮肤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)
  • 收藏
  • 关注

原创 单例设计模式

本代码主要演示通过懒汉式如何设计一个单例的最佳实践,验证创造出来的对象是否是唯一,人狠话不多,直接上代码/** * @Author lierenbiji * @Description 懒汉式双重判断实现单例已经验证 * @Date 2021-12-07 14:29 * @Param * @return **/public class LeazySigle { /** * @return void * @Description main方法验证单例是否真的只创建一个

2022-01-10 14:25:03 228

原创 多线程-生产消费者模式

package com.thread.cusproform;```java/** * @Author yg_wu * @Description //生产消费者模式,生产一个商品消费一个商品 * @Date 2021/8/6 10:40 **/public class CPFTTest { public static void main(String[] args) { MessageObject messageObject = new MessageObject(tr

2021-08-06 13:55:10 130

原创 Idea工具整合Git进行版本控制 —添加到本地仓库,Push到GitHub远程仓库。

idea整合Git,进行版本控制第一步:git创建账号,并创建远程仓库,获取远程地址往下拉,点击Create repository此时会跳转到创建成功界面:复制上传路径地址,此时github操作完成。第二步:打开idea,配置本地仓库,配置git远程仓库地址,remote到本地仓库,push到远程仓库以上配置完成之后,我们开始配置本地仓库注意:如果提交失败,以下的情况,记得把提交的名字改成以下格式:author<github注册的邮箱地址>本地仓库已经上

2020-09-12 20:20:18 236

原创 七牛云工具类

七牛云是国内领先的企业级公有云服务商,致力于打造以数据为核心的场景化PaaS服务以下工具类采用了两种方式进行文件上传(图片)以及根据文件名称删除文件import com.google.gson.Gson;import com.qiniu.common.QiniuException;import com.qiniu.common.Zone;import com.qiniu.http.Response;import com.qiniu.storage.BucketManager;import co

2020-09-11 19:51:36 214

原创 Redis+Quartz+Spring,实战解决实时监控通知任务

需求描述一个容量为5L的池子,会有不同渠道给池子注水,如果动态监控当池子的水到达峰值时,发出警报提示步骤分析:第一步:导入定时任务框架,用来模拟外界渠道给池子注水的动作。第二步:导入Redis数据库,用来存储池子水的状态第三步:设置定时任务,每隔一段时间就去redis中取出当前池子水量,判断是否达到峰值,如果达到,及时报警。代码实现第一步:常见mavew-web工程,导入maven依赖 <!--quartz的基础包--> <dependency>

2020-09-11 19:26:03 339

原创 Redis-NoSql数据库的代表产品介绍

Redis简介Redis是非关系型数据库的代表产品之一,NoSql非关系型数据库优势:1,易扩展​ NoSQL数据库种类繁多,但是一个共同的特点都是去掉关系数据库的关系型特性。数据之间无关系,这样就非常容易扩展。也无形之间,在架构的层面上带来了可扩展的能力。2,大数据量,高性能NoSQL数据库都具有非常高的读写性能,尤其在大数据量下,同样表现优秀。这得益于它的无关系性,数据库的结构简单。3,灵活的数据模型NoSQL无需事先为要存储的数据建立字段,随时可以存储自定义的数据格式。4,高可用

2020-09-11 18:02:12 272

原创 Quartz定时任务与spring框架整合案例

Quartz简介Quartz是Job scheduling(作业调度)领域的一个开源项目,Quartz既可以单独使用也可以跟spring框架整合使用,在实际开发中一般会使用后者。使用Quartz可以开发一个或者多个定时任务,每个定时任务可以单独指定执行的时间。实现步骤第一步:导入依赖<!--quartz的基础包--><dependency> <groupId>org.quartz-scheduler</groupId> <artifac

2020-09-11 13:56:31 188

原创 SMM - Spring,SpringMVC,MyBatis 三大框架整合

开发环境真实项目开发最流行的开发结构体系是SMM整合web层用 -> SpringMVCservice层 -> Springdao层用 ->MyBatis项目结构项目源码下载地址:链接:https://pan.baidu.com/s/1Sic4xcxjjQsUgdPrj2vaLA提取码:o3hp整合流程第一步:pox.xml中导入maven依赖<properties> <!-- 版本锁定 --> <spring.ver

2020-08-31 23:41:27 897

原创 Spring-IOC方式引入事务,实现银行转账业务

业务描述模拟银行两个用户转账业务,张三向李四转账,当双方转收状态均正常是,返回客户端转账成功,如果出现异常,回滚事务,返回转账失败,并说明失败的原因。代码实现第一步,maven构建工程,导入依赖 <dependencies> <!--MySql驱动--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-

2020-08-29 23:29:08 171

原创 SpringMVC中的DispatcherServlet在web.xml中配置的时候,路径用 “ / “ 和“ /* “有什么区别?

相同点:两种配置都表示拦截所有请求不同点:对JSP的处理不同分析第一: 优先级分析完全路径匹配 > 目录匹配 /* > 拓展名匹配 (/index.jsp)> 缺省匹配(/)但客户端请求的是 XXX.jsp 时情况一:如果DispactherServlet 配置的路径是目录匹配 /,那么他的优先级会高于拓展名匹配,因此他会拦截所有 .jsp的请求,而DispactherServlet 不具备查找或者处理jsp的能力,因此会报404错误情况二:如果Disp

2020-08-28 18:51:05 355

原创 Spring-简单三步配置第三方连接池-C3P0/Druid/SpringDB

问题引出在进行数据库的增删改查操作的时候,我们都会用到第三方连接池,当设计到事务的时候,我们要获取单个连接,下面我们简单配置一下第三方连接池到Spring中。简单三步配置开源连接池到Sprting中第一步:导入Maven坐标依赖<dependencies> <!--MySql驱动--> <dependency> <groupId>mysql</groupId> <artifactId>m

2020-08-28 01:33:57 199

原创 Spring-基于注解的AOP快速入门案例

问题引出Spring 的AOP纯注解配置是官方主推的模式,它不仅简化了配置流程,而且用起来也特别的方便,下面我们在xml配置的基础上修改一下纯注解配置方式实现步骤第一步:maven坐标需要增加AOP的实现包:aspectjweaver <!--Spring上下文核心包--> <dependency> <groupId>org.springframework</groupId> <artifactId&gt

2020-08-28 01:15:08 252

原创 Spring-基于xml的AOP快速入门案例

问题引出AOP:Aspect Oriented Programming,面向切面编程。是通过预编译方式(aspectj)或者运行期动态代理(Spring)实现程序功能的统一维护的技术。在实际项目中,我们都会遇到对原有功能的迭代与增强,修改源码是一件很痛苦的事情,往往会牵一发而动全身。怎样做到在不修改源码的情况下对原有功能进行增强呢?aop思想就是在这种需求中产生的。AOP作为Spring最大特征之一,它的作用:不修改源码的情况下,进行功能增强,通过动态代理实现的优势:减少重复代码,提高开发效率

2020-08-28 00:52:20 97

原创 Spring纯注解配置,实现数据库的CRUD操作

问题引出纯注解配置是相对注解+xml文件练习中,仍然有部分配置需要使用applicationContext.xml,那么能不能使用注解替换掉所有的xml呢?Spring提供了一些新注解,可以达到这个目标。请注意:Spring提供的这部分新注解,并非为了完全代替掉XML,只是提供了另外一种配置方案环境跟上文xml+注解方式配置环境相同修改的地方之一:xml配置文件被核心控制类取代import com.mchange.v2.c3p0.ComboPooledDataSource;import

2020-08-26 23:37:10 617

原创 Spring注解+xml配置文件实现数据库的CRUD操作

问题引出Spring为轻量级开源框架,以IOC(Inversion of Controll控制反转,用于解耦)和AOP(Aspect oriented Programming,面向切面编程,本质是动态代理,不修改源码的情况下进行功能增强)为内核。下面我们简单实现一下通过IOC思想实现数据库的增删改查操作实现步骤:第一步:环境准备1,maven中pox.xml需要导入的jar依赖<dependencies> <dependency> <group

2020-08-26 21:31:10 318

原创 Spring-模拟SpringFactory实现原理

问题引出Spring思想是通过配置文件把对象配置好,当我们需要使用的时候不需要再去new创建对象,直接从已经创建好的工程里面拿就好了。实现思路第一步:配置文件中配置好类名跟类的全限定类名UserDao=com.gg.dao.UserDaoImplCourseDao=com.gg.dao.CourseDaoImpl第二步:BeansFactory中读取该配置文件,获取全限定类名,通过反射创建对象,存入map集合中import java.io.InputStream;import java.

2020-08-25 18:53:54 318

原创 MD5加密工具

问题引出MD5算法加密用户项目操作中我们对一些敏感信息进行加密,需要注意的是,md5加密是不可逆的。工具类代码/** * 写一个MD5算法,运行结果与MySQL的md5()函数相同 * 将明文密码转成MD5密码 * 123456->e10adc3949ba59abbe56e057f20f883e */public class Md5Util { private Md5Util(){} /** * 将明文密码转成MD5密码 */ public static String

2020-08-25 17:09:38 215

原创 连接池工具类---C3P0连接池 vs Druid连接池

问题引出当我们java提供的最原始的链接数据库的时候,其中的步骤会比较繁琐,而且每次用到链接我们都需要重新创建,使用完之后关闭连接,这样不仅效率极低,而且耗时也会非常的长。如果成千上万的用户过来连接,这样我们就需要创建成千上万个连接,估计一般的服务器扛不住。解决方案创建连接池,当项目初始化的时候,我们新建立连接池,每次用户来访问的时候,我们从连接池中拿连接,用户用完之后,不要关闭连接,直接把连接归还到连接池中,这样就能解决以上问题。实现步骤...

2020-08-25 16:57:14 204

原创 自定义MethodMVC

问题引出在实际项目开发的时候,我们没发起一次请求都会调用一个写一个对应servlet来接收数据,而每一个servlet都需要我们到web.xml中进行配置,这样的工作量会很大。解决方案我们设想有这样一种模式:就是当前端发起servlet请求的时候,我们可以在请求的末尾添加一个后缀,(例如: .do),我们统一配置携带这种格式的servlet请求都请求到同一个servlet上,在有这个servlet分发给对于的servlet干活就可以了。代码步骤第一步:web.xml配置<?xml ve

2020-08-25 16:12:17 149

原创 MyBatisUtils工具类创建与使用

问题引出在使用MyBatis的时候,我们可以把他的创建以及流程都封装起来,这样在使用的时候我们很方便去使用,需要每次都创建了。流程第一步:导入MaBatis的jar包,同时创建MyBatis的配置文件,这里我们就叫SqlMapConfig.xmlMyBatis的jar包下载地址:同时我们需要jdbc的jar以及dp.properties:log4j日志文件jar以及配置文件:链接:https://pan.baidu.com/s/1JhpeV921R_ILb866iv2kaw提取码:7njt

2020-08-25 11:43:17 6108

原创 java利用高德地图解析经纬度字符串所在的城市

问题引出根据一个经纬度字符串,如果获得该位置所在的城市解决方案注册高德地图开发者账号,获取api_key,然后利用他们提供的工具类就可以获取对于的城市代码public class LocationUtil { /** * 通过地址位置信息,解析城市信息 * @param location 地理信息,格式 经度,纬度 * 114.05,22.55 * @return */ public static String parseLocation(String locatio

2020-08-25 11:10:42 1364

原创 FastJson工具-对前端json数据的接收与响应

问题引出在servlet中我们需要对前端发送过来的json数据进行解析,以及把查询到的数据转化为json数据进行响应,这是我们需要用到json解析解决方案把json封装成工具类,我们不需要考虑json转化的过程,只需要把对象传递给工具就可以了。思路解析对于解析request带过来的数据,我们可以自定义pojo用来接收前端传递过来的数据,当然如果参数不多的话,我们可以用HashMap接收getParameterMap(),或者直接request.getParameter(“参数名”)获得。而对于

2020-08-25 10:53:13 1415

原创 Date-时间工具类

问题引出:我们每次用到Date时间这个类的时候,时间对象转化为指定的字符串,或者把字符串转化为时间对象,等等相对来说会比较麻烦,下面这个时间工具类提供了各种转化方法,调用相应方法就能得到你想要的答案代码public class DateUtils { /** * 日期转换- String -> Date * * @param dateString 字符串时间 * @return Date类型信息 * @throws Exception

2020-08-25 10:03:20 193

原创 一步解决整个项目请求和响应中文乱码问题

问题引出无论是get请求还是post请求,当请求或者响应的编码与项目编码格式不一致时,会导致中文乱码。如果每个Servlet都设置请求和响应格式的话,那会变得很麻烦。解决方案使用全局过滤器,对于每一次请求我们都可以捕捉到,到Fileter过滤器中设置请求和响应编码格式即可。代码:/** * 解决全站乱码问题,处理所有的请求 */public class CharchaterFilter implements Filter { @Override public void ini

2020-08-25 09:53:44 222

原创 Tomcat-idea集成tomcat,在idea中找不到tomcat服务

需求:我们用idea做开发的时候,在run->Edit configurations 配置编辑中‘ + ’中找不到tomcat service配置该项目我已经添加tomcat配置:如果点击+ 或者在Templats模板中找不到tomcat 服务,那是以为你安装的idea中没有安装tomcat插件,需要到如下地方去下载:file->setting ->plugins->smart tomcat->install我的idea版本是2019.3,可能老一点的版本不是s

2020-05-25 11:42:00 1696

原创 JDBC-DBUtils之批处理以及开启事务的综合使用方法。

import org.apache.commons.dbutils.QueryRunner;import java.sql.Connection;import java.sql.SQLException;public class DBUtils_batch { public static void main(String[] args) { Connection conn = null; int n = 10; int m = 2;

2020-05-22 21:07:01 334

原创 JDBC-使用DBUtils去增删改查MySQL数据库,以及进行批量操作方法。

这里我们使用开源的c3p0连接池进行操作:import org.apache.commons.dbutils.QueryRunner;import org.apache.commons.dbutils.handlers.BeanListHandler;import java.sql.SQLException;import java.util.List;public class DBUtils { public static void main(String[] args) {

2020-05-22 17:22:32 371

原创 JDBC-DBUtils的jar包下载与使用

直达连接DBUtils下载地址DBUtils使用详解 How to use?

2020-05-22 14:04:17 1760

原创 JDBC-C3P0连接池的使用-转化成工具类

c3p0连接池是开源的使用较为广泛的连接池之一,它的使用相对而言比Druid更加灵活一点。jar的下载路径:https://sourceforge.net/projects/c3p0/下载下来之后是一个项目,找到lib目录下的该文件就可以了。使用起来很简单:下面是我封装好的c3p0的工具类,供大家参考下。public class JDBCUtils2_c3p0 { //一个项目只需要一个连接池即可,这样就没必要每个用户来访问都需要创建连接池。 // private s

2020-05-20 18:18:06 199

原创 JDBC-java连接Mysql数据库,自定义连接池防止内存不足,提高效率。

思路:第一步:创建类A实现DataSource,重写getConnection方法。第二步:在A类中,构造函数初始化连接池,用list<Connection》集合存储第三步:在重写getConnection方法中,用list.remove(0)的方法返回一个Connection连接给调用者。第四步:由于remove方法是把连接从集合中移除,所以我们要想办法回收资源,接下来面向接口的方法,采用装饰者模式,重写connection接口的close方法,使close方法不是关闭资源而是回收资源进入l

2020-05-20 10:14:00 440

原创 JDBC在Java代码中批量往Mysql数据库中插入数据

直接上代码,代码中注释很详细。/** 要求:* Java中批量插入数据到MySQL数据库。* */import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;public class mysqlBathedTest { public static void main(String[] args) { Connection conn = null;

2020-05-19 11:14:10 776

原创 JDBC连接MySQL数据库,防止注册漏洞,进行用户登录判断。

要求:用户用户名密码登录判断,这是每个项目必须要处理的问题,为了防止sql语句注入漏洞,我们采用sql语句预处理方法,给它固定格式,然后设置参数部分,下面我们直接看代码:import java.sql.*;public class loginDemotest { public static void main(String[] args) { //连接对象 Connection con = null; //sql语句预声明对象 P

2020-05-19 00:38:20 327

原创 JDBC java连接数据库执行增删改查操作(二)

要求:这是Java连接数据库最常用的方法,对注入的sql语句进行提前预设,固定格式,可以防止注入漏洞。直接上代码:执行增删改操作:/** 防止sql注入漏洞(or/--等sql关键字带来的漏洞),* 最常用的jdbc接口Java连接数据库的方法。* */import java.sql.Connection;import java.sql.PreparedStatement;public class preparedStatementInsert { public static v

2020-05-18 16:23:31 452

原创 JDBC java连接数据库执行增删改查操作(一)

代码中注释很详细,直接上代码:执行增删改操作/* * 用createStatement执行sql语句,获取数据库中的数据。 * 更新 增删改 executeUpdate(),查询语句需要用executeQuery(); * */import java.sql.Connection;import java.sql.Statement;public class createStatementdelete { public static void main(String[] args)

2020-05-18 16:05:18 286

原创 JDBC,Java连接数据库的工具

要求:java连接数据库的工具集import java.io.FileInputStream;import java.io.IOException;import java.sql.*;import java.util.Properties;/** JDBCUtiles工具,专门用来连接数据库的工具,以此来提高代码的复用性。* 包含:驱动加载,获得连接,资源释放等功能* */public class JDBCUtils { //属性文件变量。 //加载驱动需要利用反射机制获

2020-05-18 15:06:02 227

原创 Properties配置属性文件步骤

要求:在平时的代码编写中,我们有一些常量是不需要改变并且会经常使用到的,我们可以把它配置到属性文件中,这样就方便后面的修改与维护。方法:第一步:可以选择在工程目录的src路径下,创建 .properties 文件,以键值对的形式存入键与值。第二步:代码中创建属性对象,加载属性文件进入对象,获取属性值import java.io.FileInputStream;import java.io.IOException;import java.util.Properties;public cla

2020-05-18 14:07:38 585

原创 idea连接MySQL数据库,你可能遇到的坑全到这里。

第一步,使用并操作数据库必须需要jdbc接口官方接口下载地址:https://mvnrepository.com/artifact/mysql/mysql-connector-java第二步:添加jar到idea中。第三步:idea中添加连接数据库的驱动file -> setting ->plugins->database navigator第四步:安装完成之后,这里会显示DB Navigator,设置完成之后,点击ok即可注意:如果连接的时候出现Syste

2020-05-16 14:02:05 4377

原创 MySQL数据库-正常使用安装->环境变量配置

下载路径:https://dev.mysql.com/downloads/windows/installer/8.0.html

2020-05-11 15:45:20 766 1

原创 Java进阶基础-Stream流操作

在这里插入代码片 ArrayList<Integer> arrayList1 = new ArrayList(); ArrayList<Integer> arrayList2 = new ArrayList(); arrayList1.add(3); arrayList1.add(9); arrayList1...

2020-04-28 18:54:10 134

原创 Java进阶基础—正则表达式,邮箱判定!

import java.util.Scanner;public class EmalMatch { public static void main(String[] args) { //创建键盘录入对象 Scanner sc= new Scanner(System.in); //正则表达式,规定邮箱格式,eg:lierenbiji21@16...

2020-04-28 17:04:47 259

空空如也

空空如也

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

TA关注的人

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