自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 资源 (1)
  • 收藏
  • 关注

原创 Spring IOC 容器创建流程

public void refresh() throws BeansException, IllegalStateException { synchronized (this.startupShutdownMonitor) { // 刷新前的预处理,包括设置启动时间,是否激活标识位,初始化属性源(property source)配置 prepareRefresh(); // 获取BeanFactory,默认实现是DefaultListableBeanFactory,在创建容器的时候创建的 .

2020-12-01 19:38:28 571

转载 SpringBoot 启动流程

1、编写一个SpringBoot启动类运行一个SpringBoot项目,引入相关Starters和相关依赖后,再编写一个启动类,然后在这个启动类标上@SpringBootApplication注解,然后就可以启动运行项目了,我们在MyApplication启动类上标注了@SpringBootApplication注解,然后在main函数中调用SpringApplication.run(MyApplication.class, args);这句代码就完成了SpringBoot的启动流程,非常简单。@

2020-12-01 14:08:57 381

原创 MyBatis中一、二级缓存机制的实现原理

一级缓存每个SqlSession中持有了Executor,每个Executor中持有一个PerpetualCache对象。PerpetualCache中维护了一个Map集合实例cache,当发起查询时,mybatis根据当前执行的语句对应的MappedStatement,如果命中缓存则直接返回结果,如果没有命中缓存则查询数据库,结果写入PerpetualCache,最后返回结果。具体实现类的类关系图如下图所示。@Overridepublic <E> List<E> que

2020-08-06 16:13:53 493

原创 MyBatis中SqlSession的运行原理

SqlSession是Mybatis最重要的构建之一,可以简单的认为Mybatis一系列的配置目的是生成类似JDBC生成的Connection对象的SqlSession对象,这样才能与数据库开启“沟通”,通过SqlSession可以实现增删改查(当然现在更加推荐是使用Mapper接口形式),那么它是如何执行实现的,这就是本篇博文所介绍的东西,其中会涉及到简单的源码讲解。从上文中我们学习到MapperMethod的execute方法封装了SqlSession的删除、更新、查询、选择方法,从底层实现来说:通

2020-08-03 19:33:05 741

原创 MyBatis中Mapper动态代理的实现原理

1、sqlSesseion.getMapper(UserMapper.class)获取UserMapper的代理对象。通过Debug方式发现这里使用SqlSesseion的实现类DefaultSqlSession。2、找到DeaultSqlSession中的getMapper方法,发现这里没有做其他的操作,只是将工作继续抛到了Configuration类中,直接进入该类的getMapper方法中。找到Configuration类的getMapper方法,这里也是将工作继续交到MapperRegistry

2020-08-03 15:40:27 535

原创 Spring使用WebSocket

一、WebSocket简介WebSocket 是 HTML5 一种新的协议。它实现了浏览器与服务器全双工通信,能更好的节省服务器资源和带宽并达到实时通讯,它建立在 TCP 之上,同 HTTP 一样通过 TCP 来传输数据。HTTP有1.1和1.0之说,也就是所谓的keep-alive,把多个HTTP请求合并为一个,但是WebSocket其实是一个新协议,跟HTTP协议基本没有关系,只是为了兼容...

2019-12-23 23:05:06 6634 1

原创 MyBatis实现mysql、oracle批量插入

一、mybatis insert标签属性                          1、parameterType:入参的全限定类名或类型别名。2、keyColumn:设置数据表自动生成的主键名。对特定数据库(如PostgreSQL),若自动生成的主键不是第一个字段则必须设置。3、keyProperty:默认值unset,用于设置getGeneratedKeys方法或selec...

2019-12-12 15:46:03 1298

原创 jquery ajax上传文件

一、jQuery ajax1、 dataType(xml、html、script、json、jsonp、text):预期服务器返回的数据类型。如果不指定,jQuery 将自动根据 HTTP 包 MIME 信息来智能判断。什么是MIME类型?把输出结果传送到浏览器上的时候,浏览器必须启动适当的应用程序来处理这个输出文档。默认值为contentType = "application/x-www-...

2019-12-09 09:22:29 375

原创 SQL Server 2008安装,设置远程登陆

一、下载SQL Server 2008安装包1、Microsoft SQL Server 2008 R2 RTM - Express(不包含连接数据库图形化软件Management Studio)。https://www.microsoft.com/zh-CN/download/details.aspx?id=37432、Microsoft SQL Server 2008 R2 RT...

2019-10-21 18:04:32 534

原创 sql连接查询基础概念

一、交叉连接交叉连接即笛卡尔积,是指两个关系中所有元祖的任意组合。一般情况下,交叉查询是没有实际意义的。SELECT* FROMStudentCROSS JOIN Course二、内连接(where)1、等值连接(列出被连接表中的所有列,包括其中的重复列。连接条件中的运算符为=。这种查询方式形成的中间表为两个表的笛卡尔积,有INNER JOIN的连接查询称为显示的内连接,形...

2019-10-12 11:19:28 375

原创 PLSQL Developer连接oracle配置

注意:使用plsql连接数据库需要安装oracle客户端!一、下载oracle客户端instantclient-basic-nt-12.1.0.2.0.zip(注意对应上oracle、plsql版本)https://www.oracle.com/database/technologies/instant-client/microsoft-windows-32-downloads.html...

2019-10-10 17:21:54 1917

原创 使用docker-maven-plugin插件部署springcloud项目到registry

一、在要部署的微服务pom.xml中添加docker-maven-plugin插件<properties> <dockerfile.maven.version>1.3.7</dockerfile.maven.version> <!--docker私服地址--> <docker.registry.repository>141.1...

2019-09-26 23:05:55 869

原创 docker+jenkins+rancher持续集成

一、安装 Docker1、安装需要的软件包,yum-util提供yum-config-manager功能,另外两个是devicemapper驱动依赖的。sudo yum install -y yum-utils device-mapper-persistent-data lvm22、添加软件源信息。sudo yum-config-manager --add-repo http:...

2019-09-21 14:48:25 1201

原创 idea使用mybatis逆向工程

1、在src/main/resources/generator/下新建逆向工程配置文件<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//...

2019-08-26 17:56:41 143

原创 mybatis中jdbcType与javaType、Oracle、MySQL对应类型

jdbcTypejavaTypemysqloracleCHARStringCHARCHARVARCHARStringVARCHARVARCHARLONGVARCHARStringVARCHARLONGNUMERICjava.math.BigDecimalNUMERICNUMERIC/NUMBERDECIMALjava.mat...

2019-08-26 13:46:58 534

转载 spring注解大全

@Controller 组合注解(组合了@Component注解),应用在MVC层(控制层),DispatcherServlet会自动扫描注解了此注解的类,然后将web请求映射到注解了@RequestMapping的方法上。 @Service 组合注解(组合了@Component注解),应用在service层(业务逻辑)。 @Reponsitory 组合注解(组合了@Co...

2019-07-25 09:34:27 161

原创 spring在多线程下如何进行事物管理

一、以下情况spring的事务管理会失效private方法,final方法,static方法、直接调用添加事务管理的方法时(new UserService().save(user))事务管理将无法生效。不能添加事务,由于java继承时,不能重写private、final、static修饰的方法。所以所有的private方法、final方法、static方法都无法直接添加spring的事务管理功...

2019-07-24 17:04:34 3685 5

转载 代理模式

一、代理模式给某一对象提供一个代理对象,并由代理对象控制对原对象的引用。为什么要用代理模式?1、中介隔离作用:在某些情况下,一个客户类不想或者不能直接引用一个目标对象,而代理类对象可以在客户类和目标对象之间起到中介的作用,其特征是代理类和目标类实现相同的接口。2、开闭原则:代理类除了是客户类和目标类的中介之外,我们还可以通过给代理类增加额外的功能来扩展目标类的功能,这样做我们只需要...

2019-07-15 00:17:20 157

转载 责任链模式

一、什么是责任链模式避免请求的发送者与接收者之间的耦合,让多个对象都有可能接收请求,将这些对象连成一条链,并且沿着这条链传递请求,直到有对象处理他为止。即将责任抽象,实现责任接口,以链式调用的方式对请求对象进行处理。特点1、链上的每个对象都有机会处理请求。2、链上的每个对象都持有下一个要处理请求对象的引用。3、链上的某个对象无法处理当前请求时,会将相同的请求传递给下一个...

2019-07-14 17:29:07 220

原创 PowerBI连接Oracle、MySQL数据库

一、连接Oracle1、你使用的Oracle客户端的版本需要与Power BI Desktop版本对应。2、第一种方式,直接填写数据库地址。3、第二种方式,服务器处填写的内容需要和你本地oracle安装目录下product\11.2.0\dbhome_1\NETWORK\ADMIN下的tnsnames.ora文件一致。二 、连接MySQL1、你的电脑需要先安装...

2019-07-07 18:25:16 9804 1

原创 如何在JS文件和外部JS文件中运用el表达式

1、直接在当前页面<script></script>标签中使用el表达式,需要加上单引号或双引号var str = '${str}';var str = '${obj.属性名}'; 2、外部js文件中使用el表达式a、将js文件类型改为jsp文件<scriptsrc="myJs.jsp"type="text/javascript&gt...

2019-06-28 15:04:01 719

原创 Linux服务器部署Java、MySQL、Redis、Node.js

一、Linux在线安装Java1、浏览线上所有的JDK版本:yum -y list java*2、安装JDKyum -y install java-1.8.0-openjdk*3、设置环境变量vi /etc/profileexport JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86...

2019-05-13 13:28:45 314

原创 MySQL-5.7.26解压版安装教程

1、MySQL-5.7.26解压版下载地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads2、在解压根目录下添加data文件夹、my.ini文件3、在my.ini文件中添加[client]port=3306default-character-set=utf8[mysqld]# 设置mysql的安装目录base...

2019-05-12 21:41:48 6982 1

原创 获取HttpServletRequest,将参数解析成Map

1、将URL中参数转换成Map,如客户端发送http://localhost/login?name=aa&amp;age=21&amp;address=bbb,用grequest.getQueryString()方法得到name=aa&amp;age=21&amp;address=bbb,然后再分割,注:request.getQueryString()方法只对GET请求有效。 publ...

2019-02-27 09:52:22 3565

原创 docker部署nginx并实现反向代理

1. 安装镜像docker pull nginx2. 创建并启动nginx容器docker run --name nginx-101 -p 80:80 -v /root/test/nginx/conf.d:/etc/nginx/conf.d -d nginx注意:/root/test/nginx/conf.d是你宿主机的文件夹,里面需要新建nginx的配置文件,用来实现自定义反...

2019-01-15 19:23:12 434

原创 解决tomcat启动成功,访问路径没错,但访问总是404

针对项目能跑起来,请求也能访问到后台,但就是找不到controller,我给出以下建议,但是以下建议是确保你访问地址没有填错,springmvc的配置文件中扫描了@controller。1、检查项目的Deployment Assembly属性,确保以下选项存在。 2、检查tomcat的配置,确保你的项目发布到tomcat的webapps中。 3、查看你的eclips...

2019-01-04 14:54:33 3857

原创 Java对海康威视SDK-javaDemo的实现

环境准备:1、 海康威视官网下载最新版本设备网络SDK:http://www.hikvision.com/Cn/download_more_401.html,注意有32位64位之分2、解压SDK文件,进入demo示例-&gt;Java 开发示例,将ClientDemo-NetBeansPro导入开发工具3、按照ClientDemo-NetBeans里的SDK库文件拷贝到该目录下.txt...

2018-12-10 14:23:26 3512 2

原创 JAVA实现坦克大战(八个方向移动,根据难度改变地图、玩家自定义地图,含源码)

心血来潮练练技术用Java编写了一个简单的坦克大战,实现单人攻关模式和双人对战模式。游戏操作实现的主要功能有:单人攻关模式:1.玩家坦克可以上下左右、左上、左下、右上、右下八个方向移动。2.击中坦克时,敌方坦克立即消失(玩家坦克掉血),显示爆炸效果,子弹击中鹰碉堡时,游戏结束,子弹击中墙壁时,子弹消失3.移动过程中坦克与坦克,坦克与草地、河流、墙壁会根据实际通过或停止。...

2018-05-24 19:52:20 6406 11

很丑的小坦克

坦克大战里最丑的坦克,非常非常丑非常非常丑而且很垃圾

2018-05-08

空空如也

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

TA关注的人

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