自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 FreeMarker笔记整理

FreeMarkerFreeMarker环境搭建FreeMarker数据类型布尔型日期型数值型字符串类型字符串空值处理sequence类型(序列类型)hash类型FreeMarKer常用指令自定义变量的指令 assign逻辑判断指令 if elseif elselist指令自定义指令 macro占位置零nested导入指令import包含指令include案例FreeMarker页面静态化FreeMarker运算符FreeMarker学习资源FreeMarker环境搭建新建一个maven项目在pom

2021-04-12 16:48:17 356

原创 springboot学习——实现页面国际化(使用thymeleaf模板引擎)

实现页面国际化简介准备工作主要实现只是个学习笔记,大致记录了一下过程简介页面国际化页面国际化,就是让网页的文字信息,根据用户的选择,显示中文、英文、等等不同国家语言。简单示例图如下:准备工作创建springboot项目引入依赖(pom.xml)<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://w

2021-02-03 20:06:14 205 1

原创 笔记——Spring AOP

Spring AOP概念实现方式术语概念AOP是一种思想,而Spring AOP是对这种思想的具体实现,他只是将jdk动态代理和cglib代理整合到一块简单来说:将程序中重复的代码抽取出来,在程序执行的时候,利用动态代理技术,在不修改源码的基础上,对现有的功能进行增强。实现方式JDK动态代理+cglib代理术语Joinpoint(连接点)目标对象中有可能被增强的方法(final修饰的方法可以被jdk动态代理)Pointcut(切入点)目标对象中已经被增强的方法Advice(通知/增强

2021-01-26 11:14:05 121

原创 jvm内存模型

jvm内存模型类加载器: 只负责加载class文件,至于该类是否被执行则由执行引擎所决定,每个class文件都有特定的标识,称为魔数。魔数:class文件以十六进制方式进行查看,第一行字母:CA FE BA BE该魔数表示当前class是java语言编译而成的,不同的语言编译得到的class文件的魔数都不一样在魔数之后20 20 20 34表示当前class文件是那个版本的JDK所编译的。这里的34等于十进制的52,52则代表JDK1.8版本。 加载类的信息存放于一块方法区的空间方

2021-01-19 11:07:41 83

原创 Sentinel笔记——本地搭建

本地搭建Sentinel构建springboot项目引入sentinel-core依赖编写代码测试启动Sentinel控制台本地应用接入到本地控制台引入依赖配置本地应用的JVM参数测试构建springboot项目引入sentinel-core依赖在pom.xml中引入sentinel-core的依赖<dependency> <groupId>com.alibaba.csp</groupId> <artifactId>sentin

2021-01-14 15:02:10 680

原创 IDEA笔记

IDEAdownload sources 下载项目依赖的jar包的源码generate sources 用于将代码生成到target目录下参考:https://segmentfault.com/q/1010000017779069

2021-01-14 09:37:19 56

原创 hibernate中的Query接口方法

hibernate中的Query接口方法Query的获取Query的方法参数绑定方法setXxx(int var1, Xxx var2)setXxx(String var1, Xxx var2)setParameterxxx()获取查询结果方法list()iterate()uniqueResult()语句执行方法executeUpdate()分页方法setFirstResult(int var1)setMaxResults(int var1)Query的获取Query q = session.creat

2021-01-08 15:12:46 515 1

原创 实现登录验证——token&redis

基于token的登录验证基于token的登录验证实现1. Redis数据库 存储token2. `JWT` 产生token3. 实现登录验证基于Session的登录验证基于token的登录验证token(令牌)原理:登录流程:访问流程:实现下述代码的实现基于springboot用户数据主要存储在mysql数据库的user表中dao层使用了springdata jpa1. Redis数据库 存储token登录的信息仅需一个key-value,如果直接

2020-11-19 20:23:40 4422 6

原创 Docker学习——常用指令

常用指令1. 镜像常用指令2. 容器常用指令文件拷贝目录挂载查看容器IP1. 镜像常用指令查看镜像docker images搜索镜像docker search 镜像名拉取镜像docker pull 镜像名:版本docker pull 镜像名------不写版本则默认拉取最新版本latest删除镜像docker rmi 镜像id删除所有镜像docker rmi `docker images -q`注意:删除镜像时只能删除没有创建容器的镜像2. 容器常用指

2020-11-13 13:31:32 69

原创 SpringBoot——整合mybatis

引入mybatis启动器:mybatis-spring-boot-starter,这个启动器时mybatis自己实现springboot提供的starter都是spring-boot-starter-xxx格式使用了mybatis启动器之后只需要定义一个DataSource即可,它会自动创建使用该DataSource的SqlSessionFactoryBean以及SqlSessionTemplate。并且会自动扫描Mappers,并关联到SqlSessionTemplate,然后之策到Spring.

2020-11-12 00:01:10 1567

原创 SpringBoot——整合jdbc

新建springboot项目application.properties配置数据库信息spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driverspring.datasource.url=jdbc:mysql://ip地址:3306/数据库名spring.datasource.username=用户名spring.datasource.password=密码使用自动建表则需要将student.sql 数据库建表语..

2020-11-11 20:10:04 93

原创 SpringBoot——jsp的使用

SpringBoot——jsp的使用创建springboot项目创建好的目录结构:因为springboot对jsp的支持并不友好,springboot中并没有提供jsp的启动器所以当前项目先导入web启动器然后手动添加jsp的依赖导入jsp依赖 (在pom.xml)<!--jstl的依賴--><dependency> <groupId>javax.servlet</groupId> <artifactId>js

2020-11-11 17:51:25 1399

原创 Spring学习——Spring整合JDBC&mybaties

整合JDBC简介案例介绍1. 全注解方式1.1 事务管理---基于注解方式2. 基于xml方式简介Spring框架中提供了一个类JdbcTemplate,是对原始jdbc API的简单封装。除了这个模板类,spring框架提供了很多的操作模板类:操作关系型数据库:JdbcTemplate,HibernateTemplate操作redis数据库:RedisTemplate操作消息队列:JmsTemplate案例介绍以银行账户管理为例,创建一个账户表Account(id,name,mone

2020-11-03 00:47:30 236

原创 数据库事务--事务特征、事物产生的三大问题

数据库事务1. 概述2. 特征3. 回滚4. 隔离脏读不可重复读幻读1. 概述事务(Transaction),是由一系列对数据库表中数据进行访问和更新的操作,所组成的一个执行逻辑单元。只有DML语句才会产生事务,其他语句不会产生事务DML语句执行的时候,如果当前有事务,那么就是用这个事务。如果没有,则产生一个新事物commit、rollback、DDL语句都可以把当前事务给结束掉commit和DDL语句结束事务的方式就是把这个事务给提交了,然后DML操作将永久生效rollback结束事务的方

2020-11-02 17:22:12 612

原创 笔记——Spring IoC

Spring IoCSpring模块IoC简介Spring开发1. 基于xml配置1.1 创建配置文件1.2 Bean标签1.3 Spring DI1.3.1 Set方法注入1.3.2 构造函数注入1.3.3 p命名空间注入1.3.4 注入集合属性2. 基于注解方式2.1 环境搭建2.2 常用注解2.3 全注解方式2.3.1 环境搭建2.3.2 新注解介绍Spring模块Spring是一个具有容器性质的框架,由大约20个模块组成IoC简介IoC(Inverse of Control)控制反转,将对

2020-11-02 00:13:05 74

原创 笔记——VisualSVN的使用

VisualSVN的使用1 VisualSVN界面2 新建用户3 新建仓库4 文件提交到仓库5 当前文件夹下的文件提交到SVN仓库6 修改了文档中的内容,提交给仓库7 还原原来的版本/修改为先前的版本8 查看日志9 查看版本库10 在sts中将项目提交到仓库中11 从SVN中将项目导入到sts中12 还原最新版本13 查看日志14 项目和SVN断开15 冲突解决冲突16 分支17 标记1 VisualSVN界面2 新建用户3 新建仓库当前创建的仓库不进行用户自定义,直接设置所有用户

2020-09-22 23:36:57 685

原创 corejava-笔记——集合

集合1.1 概述集合是JavaAPI中提供的一种容器工具,可以用来存储多个数据。集合和数组之间的区别:数组的长度是固定的,集合的长度是可变的数组中存储的是同一类型的对象,集合中存储的数据可以是不同类型的数组中可以存放基本类型数据或对象,集合中只能存放对象(list.add(1);这里存进去的1不是int类型的1,而是Integer类型的,此处会自动装箱)数组是由JVM中现有的 类型+[] 组合而成的,出了一个length属性,还有从Object中继承过来的方法之外,数组对象就掉用不到其他属性

2020-09-13 21:46:50 113

原创 作业:解析XML文件,通过反射创建对象并将XML里对应信息赋值给对象对应的属性

解析:解析XML文件获取XML中各个元素节点的文本信息,将信息保存到Map集合中反射创建对象通过反射获取类中的属性,对属性赋值通过对象调用类中的show方法源码:XML文件:(person.xml,文件和Person类在同一文件夹下)<?xml version="1.0" encoding="UTF-8"?><person class="com.xml.ex1.Person"> <id>111</id> <name>lis

2020-09-09 21:14:51 594 1

原创 java学习笔记——JDK1.8的特性

JDK1.8特性1. 接口方法1.1 默认方法1.2 静态方法2. lambda表达式2.1 Lambda表达式语法2.2 常用的函数式接口2.2.1 Predicate2.2.2 Consumer2.2.3 Function2.2.4 Supplier1. 接口方法JDK1.8之前:接口中的方法必须是抽象方法,其实现类必须实现接口中定义的所有抽象方法。JDK1.8:引入了一种新的机制——接口可以支持声明方法的同时,提供方法的实现。主要通过两种方式可以完成这种操作:默认方法静态方法1

2020-09-06 23:47:05 148

原创 corejava-笔记——方法的重载&重写

方法的重载和重写1. 方法的重载(同一个类中)2. 方法的重写(子父类中)1. 方法的重载(同一个类中)必须在同一个类中,要求如下:方法名必须相同方法参数列表必须不同① 参数类型不同② 参数的个数不同③ 参数的类型顺序不同方法的修饰符、返回类型、抛出异常无限制,可以相同也可以不同,一般情况下都是相同的。注:方法重载中,当参数无法完全精确匹配到方法的时候,参数会尝试做自动转换,然后再去尝试匹配方法。2. 方法的重写(子父类中)必须是子类和父类之间,要求如下:(子类

2020-09-06 15:58:50 115

原创 corejava-笔记——进程&线程(2)线程池

线程池1. 简介传统多线程带来的问题:多线程运行期间,线程不断的启动和关闭新线程,会过度消耗系统资源。过度切换线程的危险,从而可能导致系统资源的崩溃。(不推荐使用直接创建线程)池化技术:不直接创建具体的资源,而是创建一个池,在池里面创建具体的资源。以前是直接把任务交给具体的资源,而现在把资源交给池,池就会让空闲的资源去执行任务,任务执行完了以后,资源并不会销毁,而是停留在池里面,等待下一个任务来执行。线程池好处:降低系统资源消耗,通过重用已存在的线程,降低线程创建和销毁造成的

2020-09-01 19:59:39 243

原创 corejava-笔记——异常

1 异常1. 1 概述程序在运行过程中,由于意外情况导致程序发生异常事件,默认情况下发生的异常会中断程序的运行。1.2 异常体系1.3 异常种类1.4 异常传播2 异常抛出2.1 自动抛出异常2.2 手动抛出异常3 异常捕获3.1 概述3.2 try-catch3.3 捕获多种异常3.4 finally语句4 自定义异常4.1 自定义异常的原因4.2 如何自定义异常5 断言assert...

2020-08-31 14:17:01 123

原创 corejava-笔记——进程&线程(1)

1 进程&线程1.1 进程在计算机中,进程代表了内存中正在运行的应用程序,计算机中的资源(cpu、内存、磁盘、网络等),会按照需求,分配给每个进程,从而这个进程对应的应用程序就可以使用这些资源了。在操作系统中,启动一个应用程序的的时候,会有一个或多个进程同时被创建,这些进程其实就表示了当前这个应用程序在系统中的资源使用情况以及程序运行的情况。如果关闭这个进程,那么对应的应用程序也就关闭了。所以,进程就是系统中,运行一个应用程序的基本单位。1.2 线程线程是进程中的一个代码执行单元,负责当

2020-08-27 20:08:43 128

原创 corejava-笔记——反射

反射1.1 概述反射是Java中提供的一种机制,它允许我们在程序运行的时候,动态获取一个类中的基本信息,并且可以调用类中的属性、方法、构造器。类的基本信息:类的全限定类名(例:java.lang.System)类的直接父类的全限定类名类的直接实现接口类的修饰符例:Student类型package com.test.demo1;public class Student { private String name; int age; public static int num;

2020-08-25 19:26:01 130

原创 corejava-笔记——变量&基本数据类型&引用类型变量

变量变量的作用是用来接收、保存、传递、操作对应数据的语法:[修饰符] 数据类型 变量名 = 具体数据其中数据类型分为基本数据类型和引用数据类型。变量名需要符合标识符规则=为赋值符号,把右边具体的数据,赋值给左边的变量,不同的数据类型对应不同的数据基本数据类型Java中有八种基本数据类型,是Java语言中,可以表示出来的最基本的数据的结构类型字节byte1字节(8bit)short2字节(16bit)int4字节(32bit)

2020-08-23 14:16:14 171

原创 corejava-笔记——类加载器&双亲委托机制

类加载器Java中的类,想要运行就必须把类对应的class文件加载到内存,JVM中真正负责加载class文件内容的是类加载器javaSE-API中,有一个类:java.lang.ClassLoader,他就是JVM中的类加载器JVM启动后,默认会有的四种类加载器:启动类加载器(bootstrapClassLoader,非java语言实现,c++实现的)作用:加载指定路径中jar里面的class文件路径1:C:\Program Files\Java\jdk1.8.0_74\jre\lib\

2020-08-22 16:29:41 122

原创 corejava-笔记——jar

jar1. 简介java中有jar命令,可以将一个或多个class文件,打包到一个指定的jar文件中(xxx.jar)例如jre中的rt.jar,就是将src.zip中的Java文代码编译成class文件后,又将这些class文件打包到jar中jar包可以被解压,解压后可以看到所有被打包进去的class文件。class文件打开会是乱码,可以使用十六进制的方式进行打开得到类似下图的文件上图中第一行的CA FE BA BE 表示当前class文件是java语言编译而成的,这玩意叫魔数,jav

2020-08-22 15:45:04 151

原创 corejava-笔记——Java程序编译&运行

Java程序编译&运行编译编译是将开发人员编写的Java源程序翻译成class文件,在这个过程中,javac编译器会检查我们编写的程序是否有错误,有错误就会提示出来如果没有错误,代表编译成功,并产生字节码文件(.class)运行将编译的class文件交给JVM去执行,此时JVM就会执行我们编写的程序。如下图所示注:当编写好的Java代码,编译成class文件后,再被JVM加载到内存中的时候是需要做字节码验证的。一个class文件被加载到JVM内存之后,首先要经过字节码

2020-08-22 14:59:35 131

原创 corejava-笔记——Java环境

Java虚拟机(JVM)JVM(Java Virtual Machine)Java虚拟机,简称JVM,是运行所有Java程序的假想计算机,是Java程序的运行环境,是Java最具吸引力的特性之一。我么所写的java代码,都运行在JVM之上。跨平台任何软件的运行,都必须运行在操作系统之上,而我们用Java编写的软件可以运行在任何的操作系统上,这个特性称为JAVA语言的跨平台性。该特性是由JVM实现的,我们编写的程序运行在JVM上,而JVM运行在操作系统上注意,JVM不存在跨平台,不同

2020-08-22 14:09:25 113

原创 corejava-笔记——package(包)

package(包)简介在程序中要区分一些东西,一般会采用命名空间的设计方式。在java中利用package(包)来进行区分两个名字一样的类。例如:package com.test.demo1;public class Hello {...}package com.test.demo2;public class Hello {...}类的名字有两种:简单类名:就是直接的类名,如Hello全限定名:包名加类名,如com.test.demo1.Hello因此上述两个Hell

2020-08-18 17:13:40 385

原创 corejava-笔记——java源码相关问题解释

Java源码解释public class Hello { public static void main(String[] args) { System.out.println("hello world"); }}问题一Hello是我们自己定义的一个类,为什么写java代码的时候要写一个类?因为,在Java中,类是组织代码的基本单元,在类中可以编写方法,在方法里面,才是真正需要JVM去执行的一行行的代码,而平时我们所说的代码执行,就是执行这些方法中的代码Java语言中规定,在大多数情

2020-08-18 13:18:30 114

原创 corejava-笔记——内部类

内部类内部类共有四种:成员内部类、静态内部类、局部内部类、匿名内部类*public class Outer { //外部类 class Inner { //Outer的内部类 }}1 成员内部类在类中,可以定义成员方法、成员变量,还可以定义成员内部类注:在成员内部类中,不能编写静态的属性和方法//外部类public class MenberOuterClass{ //外部类的属性 private String name; private static int age

2020-08-17 22:17:35 119

原创 corejava-笔记——访问控制(四种修饰符)

访问控制对象中的属性和方法,是可以根据指定修饰符来进行访问控制的。具体控制的就是这些属性和方法可以在什么地方被访问,以及在什么地方不能被访问。概述类中的属性和方法,可以使用以下四种修饰符进行访问控制:public > protected > default > privatepublic公共的,在所有地方都可以访问protected受保护的,当前类中、子类中,同一个包中其它类中可以访问default默认的,当前类中、同一个包中的子类中可以访问注意:default

2020-08-17 12:54:18 178

原创 corejava-笔记——interface

接口interface接口是除了类和数组之外,另外一种引用数据类型接口内部主要是封装了方法和静态常量接口需要使用interface关键字来定义接口最终也会被编译成**.class文件**,但接口不是类,而是另外一种引用数据类型!接口定义public interface A { //接口中的静态常量 public static final String HELLO = "Hello"; String HI = "Hi";//public static final可以省略 //接口中

2020-08-16 19:23:06 145

空空如也

空空如也

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

TA关注的人

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