自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Spring Boot中SpringMVC的自动配置

一. SpringMVC自动配置  spring boot自动配置好了springmvc,以下是springboot对springmvc的自动配置(WebMvcAutoConfiguration.class)  1. Inclusion ofContentNegotiatingViewResolverandBeanNameViewResolverbeans.    1...

2019-10-13 11:29:00 199

原创 Thymeleaf语法

一. th属性  html有的属性,Thymeleaf基本都有,而常用的属性大概有七八个。其中th属性执行的优先级从1~8,数字越低优先级越高。  1. th:text:设置当前元素的文本内容,相同功能的还有th:utext,两者的区别在于前者不会转义html标签,后者会。优先级不高:order=7  2.th:value:设置当前元素的value值,类似修改指定属性的还有...

2019-10-09 21:25:00 463

原创 Spring Boot模板引擎之Thymeleaf

一. 模板引擎  1.引入thymeleaf <properties> <java.version>1.8</java.version> <thymeleaf.version>3.0.9.RELEASE</thymeleaf.version> &...

2019-10-07 22:52:00 191

原创 Spring Boot对静态资源的映射规则

  1.所有/webjars/**,都去classpath:/META-INF/resources/webjars/找资源  webjars:以jar包方式引入静态资源。<!‐‐引入jquery‐webjar,在访问的时候只需要写webjars下面资源的名称即可‐‐><dependency> <groupId>org.web...

2019-10-07 16:48:00 178

原创 Spring Boot日志使用

一. 默认配置  SpringBoot默认给我们使用的是info级别的,没有指定级别的就用SpringBoot默认规定的级别;root级别日志输出格式:%d表示日期时间,%thread表示线程名,%‐5level:级别从左显示5个字符宽度%logger{50} 表示logger名字最长50个字符,否则按照句点分割。%msg:日志消息,%n是换行符...

2019-10-07 12:33:00 106

原创 Spring Boot自动配置原理

一. 自动配置原理  1. 自动配置原理    1)Spring Boot启动的时候加载主配置类,开启了自动配置功能,@EnableAutoConfiguration。    2)@EnableAutoConfiguration作用:      ①利用AutoConfigurationImportSelector给容器中导入一些组件      ②可以查看selectI...

2019-09-28 20:57:00 99

原创 Spring Boot配置文件加载位置的优先级

一. 配置文件加载位置:  1. springboot 启动会扫描以下位置的application.properties或者application.yml文件作为Spring boot的默认配置文件    –file:./config/    –file:./    –classpath:/config/    –classpath:/  优先级由高到底,高优先级的配置会覆盖低优...

2019-09-28 17:58:00 266

原创 Spring Boot配置Profile多环境支持

一. 多profile文件   我们在主配置文件编写的时候,文件名可以是application-{profile}.properties/yml。   1. properties多配置文件:    我们可以以多个application-{profile}.properties文件来进行不同的环境。    eg:主配置文件application.properties  ...

2019-09-28 16:17:00 123

原创 Spring Boot中获取配置文件的注解

一. @Value与@ConfigurationProperties@ConfigurationProperties@Value功能批量注入配置文件中的属性 一个个指定松散绑定(松散语法)支持不支持SPEL不支持支持JSR303数据校验支持不支持复杂类型封装支持不...

2019-09-28 11:45:00 783

原创 Spring Boot快速入门(3)YAML语法与应用

一. 语法  k:(空格)v:表示一对键值对(空格必须有);  以空格的缩进来控制层级关系;只要是左对齐的一列数据,都是同一个层级的,例如:server: port: 8080 path: /hello二. 值的写法  1.字面量:普通值(数字,字符串,布尔)    k: v:字面直接来写;    字符串默认不用加上...

2019-09-25 22:45:00 99

原创 Spring Boot快速入门(2)Spring Boot的启动类相关注解

一. pom.xml项目jar包<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaL...

2019-09-24 22:46:00 747

原创 Spring Boot快速入门(1)IDEA下构建Spring Boot项目

基于IDEA下快速构建Spring Boot项目    1.New Project:    2.点击next    3.点击web,勾选Spring Web    4.点击finish    5.此时构建好一个Spring Boot项目的结构了,已经包括spring boot启动类    6.构建一个HelloCont...

2019-09-24 22:19:00 99

原创 docker下安装mysql5.7

一. 从github上拉取MySQL5.7    docker pull mysql:5.7    查看是否拉取MySQL镜像:    二. 启动MySQL镜像    docker run -p 3306:3306 --name mysql -v /xuy/mysql/conf:/etc/mysql/conf.d -v /xuy/mysql/logs:/logs...

2019-09-21 17:27:00 134

原创 dockerfile,image,container关系

2019-09-21 16:11:00 248

原创 docker资源限制

  在默认的情况下,docker没有对容器进行硬件资源的限制,当容器负载过高时会尽肯能第占用宿主机资源。在这基础上,docker提供了针对容器的内存,CPU,IO资源的控制方式。(真正可以控制的只有内存和cpu)  Docker内存控制OOME在linxu系统上,如果内核探测到当前宿主机已经没有可用内存使用,那么会抛出一个OOME(Out Of Memory Exception:内存异常...

2019-09-12 19:59:00 170

原创 docker之register搭建私有镜像仓库

一. 介绍  一般docker提供了Docker Hub来维护管理所有的镜像,但是一般出于安全和网络原因,我们不可能把商业项目上传到docker上,我们会在本地局域网搭建私有镜像仓库。  所谓私有仓库,也就是在本地(局域网)搭建的一个类似公共仓库的东西,搭建好之后,我们可以将镜像提交到私有仓库中。这样我们既能使用 Docker 来运行我们的项目镜像,也避免了商业项目暴露出去的风...

2019-09-12 19:04:00 1037

原创 dockerfile编写镜像

一. 介绍  Dockerfile是一个包含用于组合镜像的命令的文本文档。可以在命令行中调用任何命令。docker可以通过Dockerfile文件来自动生成镜像。我们可以用docker build 命令来构建镜像。  Dockerfile 一般分为四部分:基础镜像信息、维护者信息、镜像操作指令和容器启动时执行指令,’#’ 为 Dockerfile 中的注释。  Dock...

2019-09-09 23:00:00 217

原创 docker存储卷

一. 介绍  Docker的存储卷称之为volume,本质上容器上的一个或者多个目录,而这些目录绕过了联合文件系统,与宿主机中的目录或者其他容器目录进行了绑定关系,这种绑定关系可以看作Linux的mount操作,当容器中的程序对这些目录写入数据时,其实写入到的是与之绑定的宿主机目录上,这样就实现了数据的存储功能。  默认情况下,容器不使用任何 volume时,容器的数据被保存在容...

2019-09-08 22:56:00 145

原创 docker网络

一. docker网络模式:    docker安装时,会自动创建三个网络模式:bridge(创建容器默认连接到此网络)、 none 、host。  1)bridge模式:此模式会为每一个容器分配、设置IP等,并将容器连接到一个docker0虚拟网桥,通过docker0网桥以及Iptables nat表配置与宿主机通信。  2)none:该模式关闭了容器的网络功能。  3...

2019-09-08 21:53:00 124

原创 docker常用指令

一般来说,docker指令分为以下几类:  1. Docker环境信息:docker [info|version]  2. 容器生命周期: docker [create|exec|run|start|stop|restart|kill|rm|pause|unpause]  3. docker操作运维: docker [ps|inspect|top|attach|wait|...

2019-09-04 23:43:00 174

原创 docker安装

安装步骤:  1)去清华大学开源镜像站下载docker-ce.repo(https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/)  2) 执行wget https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo  3...

2019-08-27 21:59:00 96

原创 Timer与TimerTask

一. Timer  在Java中,经常使用Timer来定时调度任务。  Timer 调度任务有一次性调度和循环调度,循环调度有分为固定速率调度(fixRate)和固定时延调度(fixDelay)。固定速率就好比你今天加班到很晚,但是到了第二天还必须准点到公司上班,如果你一不小心加班到了第二天早上 9 点,你就连休息的时间都没有了。而固定时延的意思是你必须睡够 8 个小时再过来上班...

2019-05-25 16:39:00 154

原创 Java集合类(1)------List接口及其实现类

一. List接口简介  List集合代表一个有序集合,集合中的每个元素都有其对应的顺序索引,List集合允许重复的元素,可以通过索引来获取指定位置的元素。List集合以插入顺序来维护元素的顺序。List接口的主要实现类:ArrayList,LinkedList,Vector,Stack。二. 主要方法      1)add(int index, E obj)方法可以将元...

2019-04-22 22:34:00 223

原创 Java集合类(1)------Collection接口综述

一. 对于上述图,说明如下:  1)Java集合类主要由两个接口派生而出:Collection与Map接口。Collection与Map是Java集合框架的根接口,其他集合类均是这两个接口的子接口或者实现类。  2)Set接口继承Collection,集合元素不允许重复。  3)List接口继承Collection,集合元素允许重复,维护元素的插入顺序。  4)Map...

2019-04-22 21:52:00 165

原创 排序算法之选择排序

一. 原理  每一趟从待排序的记录中选出最小的元素,顺序放在已排好序的序列最后,直到全部记录排序完毕。也就是:每一趟在n-i+1(i=1,2,…n-1)个记录中选取关键字最小的记录作为有序序列中第i个记录。给定数组:int[]arr={里面n个数据};第1趟排序,在待排序数据arr[1]~arr[n]中选出最小的数据,将它与arrr[1]交换;第2趟,在待排序数据arr[2]~...

2019-04-18 19:45:00 115

原创 mybatis源码系列十二-----四大对象

  实际上SqlSession的执行过程就是通过Executor、StatementHandler、ParameterHandler、ResultSetHandler这四个对象来完成对数据库的操作和返回结果的。一. Executor对象Executor对象是一个执行器,用于完成与数据库的交互。它是一个接口,它有一个实现的抽象类BaseExecutor(执行器基类)和...

2019-04-16 20:22:00 272

原创 Mybatis六----延迟加载

一. 延迟加载  Mybatis中延迟加载又称为懒加载,是指在进行关联查询时,按照设置延迟规则推迟对关联对象的select查询,延迟加载可以有效的减少数据库的压力。延迟加载仅仅是对关联对象的查询有延迟设置,对于主加载对象都是直接执行查询。  Mybatis根据关联对象查询的select语句的执行时机,分为以下三种:直接加载,侵入式延迟加载,深度延迟加载。  ...

2019-04-12 22:37:00 144

原创 Mybatis五----关联查询(4)多对多查询

多对多关系,例如学生跟课程之间,就是多对多关系。实体类:package com.mybatisdemo.beans;import java.util.LinkedHashSet;import java.util.Set;public class Student { private Integer id; private String...

2019-04-08 20:10:00 85

原创 Mybatis四----关联查询(3)自关联查询

所谓自关联,是指,自己既充当一的一方,又充当多的一方,是1:n或n:1的变型。实体类:package com.mybatisdemo.beans;import java.util.ArrayList;import java.util.List;public class News { private Integer id; priva...

2019-04-07 23:06:00 143

原创 Mybatis三----关联查询(2)多对一关联查询

实体类:package com.mybatisdemo.beans;public class Student { private Integer id; private String name; private Integer age; private Teacher teacher; public Student...

2019-04-07 22:41:00 91

原创 Mybatis二----关联查询(1)一对一关联查询

关联查询包括以下四种方式:  1)一对一关联查询  2)一对多关联查询  3)多对一关联查询  4)多对多关联查询接下来了解下一对一关联查询实体类:package com.mybatisdemo.beans;public class Clazz { private Integer id; private String cla...

2019-04-07 22:36:00 81

原创 Mybatis一----foreach标签遍历list,map,array

<!-- 参数为数组 --> <select id="queryStudentArrayParam" parameterType="int" resultMap="studentMap"> select id,name,age,teacher from student <where> ...

2019-04-07 17:24:00 287

原创 排序算法之冒泡排序

原理:比较两个相邻的元素,将值大的元素交换至右端。思路:依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。重复第一趟步骤,直至全部排序完成。第一趟比较完成后,最后一个数一定是数组中最大的一个数,所以第二趟比较的时候最后...

2019-04-04 16:34:00 135

原创 mybatis源码系列十一-----映射文件子标签解析

private void configurationElement(XNode context) { try { String namespace = context.getStringAttribute("namespace"); if (namespace == null || namespace.equals("")) { ...

2019-03-29 17:37:00 143

原创 mybatis源码系列十---SQL语句的执行流程

在上一节,根据sqlSession对象的getMapper()方法获取代理对象,那么获取到的代理对象在执行持久化操作时,mybatis内部是如何实现的呢? //根据command的类型来执行不同的操作 public Object execute(SqlSession sqlSession, Object[] args) { Object result; ...

2019-03-28 19:37:00 129

原创 mybatis源码系列九---映射代理类Mapper

首先看下这张图的断点打印,我们发现通过SqlSession对象调用getMapper()方法后返回的是一个代理对象。下面我们跟进源码,来看看mybatis内部实现原理。 //SqlSession对象中的getMapper()方法,其实是获取configuration对象的getMapper()方法,以及何时执行configuration对象的addMapper()方法...

2019-03-28 19:13:00 126

原创 mybatis源码系列八----SqlSession接口与Executor接口

 一. SqlSession对象SqlSession对象是mybatis中执行持久化操作的关键对象,有点类似JDBC中的Connector对象。是应用程序与持久层之间执行交互操作的一个单线程对象。SqlSession对象完全包含以数据库为背景的所有执行SQL操作的方法,它的底层封装了JDBC连接,可以用SqlSession实例来直接执行被映射的SQL语句。每个线程都应该有它自己的Sq...

2019-03-27 20:18:00 227

原创 mybatis源码系列七-----sqlsession的开启

  前面已经介绍了初始化sqlsessionFactory对象时是如何加载mybatis配置文件的各个节点的。在初始化sqlsessionFactory对象后,我们可以通过该对象创建sqlSession对象,主要是两种创建方式:  1)sqlSessionFactory.openSession(boolean autoCommit)  2)sqlSessionFactory.op...

2019-03-27 19:11:00 383

原创 mybatis源码系列六----plugins节点解析

  mybatis中的plugin其实就是个interceptor, 它可以拦截Executor 、ParameterHandler 、ResultSetHandler 、StatementHandler 的部分方法,处理我们自己的逻辑。Executor就是真正执行sql语句的东西,ParameterHandler 是处理我们传入参数的,还记得前面讲TypeHandler的时候提到过,...

2019-03-27 18:39:00 97

原创 mybatis源码系列五-----加载mapper映射文件

mybatis是通过mapperElement()这个方法来加载mapper映射文件的。private void mapperElement(XNode parent) throws Exception { if (parent != null) { for (XNode child : parent.getChildren()) { /...

2019-03-26 20:02:00 161

空空如也

空空如也

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

TA关注的人

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