- 博客(53)
- 资源 (1)
- 收藏
- 关注
原创 学习笔记:JAVA新特性(lambda表达式,函数式接口,Stream API,Optional)
一、函数式接口和Lambda表达式简单的说,在Java8中,Lambda表达式就是一个函数式接口的实例**(可以理解为:函数式接口的实现类对象)**。这就是Lambda表达式和函数式接口的关系。也就是说,只要一个对象是函数式接口的实例,那么该对象就可以用Lambda表达式来表示。1.定义函数式接口// TODO: 2021/8/18 判断一个接口是否为函数式接口,可以在接口之前添加注解@FunctionalInterface @FunctionalInterfacepublic interface
2021-08-18 17:04:26
479
原创 MyBatis学习笔记(系统学习)
文章目录一、简介1.MyBatis是什么2.持久层3.ORM4.回顾JDBC二、正式使用MyBatis的准备工作1. 需要在项目中添加JAR包2. 相关的配置文件的准备工作三、第一个MyBatis程序1. 数据库的设计2. 创建主配置文件3.创建映射文件4.MyBatis中数据库日志:log4j5.如何在IDEA中快速的使用数据库中的字段等信息来确定SQL语句四、基于接口的MyBatis映射文件五、MyBatis工具类六、MyBatis主配置文件的扩展:配置别名,引用属性文件七、MyBatis对数据库表的基
2021-08-18 00:06:49
416
翻译 JAVA代理技术:JDK技术动态代理和CGLIB技术动态代理代码示例
文章目录JDK技术动态代理和CGLIB技术动态代理代码示例一、JDK技术动态代理代码示例二、CGLIB技术动态代理代码示例三、了解代理模式四、JDK动态代理技术分析五、CGLIB动态代理技术分析JDK技术动态代理和CGLIB技术动态代理代码示例一、JDK技术动态代理代码示例创建接口public interface DreamCgOne { void sing(String name);}创建接口实现类public class DreamCgOneImpl implements
2021-08-08 11:42:11
493
转载 第二章:MySql数据库
文章目录2.1 MySql安装2.2 登录MySQL数据库2.3 SQLyog(MySQL图形化开发工具,我个人用的Navicat)2.4 MySQL配置文件2.1 MySql安装安装:自行百度安装后,MySQL会以windows服务的方式为我们提供数据存储功能。开启和关闭服务的操作:右键点击我的电脑→管理→服务→可以找到MySQL服务开启或停止。也可以在DOS窗口,通过命令完成MySQL服务的启动和停止(必须以管理运行cmd命令窗口)2.2 登录MySQL数据库MySQL是一个
2021-08-02 18:20:30
181
转载 第一章:数据库概述
文章目录1.1 数据库概述1.2 数据库表1.3 表数据1.1 数据库概述什么是数据库数据库就是存储数据的仓库,其本质是一个文件系统,数据按照特定的格式将数据存储起来,用户可以对数据库中的数据进行增加,修改,删除及查询操作。什么是数据库管理系统数据库管理系统(DataBase Management System,DBMS):指一种操作和管理数据库的大型软件,用于建立、使用和维护数据库,对数据库进行统一管理和控制,以保证数据库的安全性和完整性。用户通过数据库管理系统访问数据库中表内的数据。
2021-08-02 18:16:41
94
原创 SpringBoot中自动配置的原理及制作能自动装配的JAR包
文章目录1.自动装配的原理及几种自动装配的方式:(1)通过调用外部jar包装配Bean(2)通过@Import注解导入外部jar包类2.自定义类采取SPI机制打包成自动装配JAR包(1)什么是SPI机制(2)spring.factories的具体写法:3.自定义配置类的条件限制在SpringBoot中,具有一定条件的类都会在容器中自动装配成容器中的一个Bean。在这里,需要了解一下配置类:由下面三个注解包装的类都是配置类:@SpringBootApplication@SpringBootConfig
2021-07-23 11:06:20
1618
1
原创 如何使用SpringBoot中外部使用外部Tomcat容器
文章目录1.创建一个关于war包的工程2.构建完成web应用目录结构使用内置Servlet容器,需要将应用打包成jar包,Jar包通过java激活内置的Servlet容器,其特点为:优点:简单、方便缺点:不支持Jsp、可定制性比较差,想做一些性能优化可配置性差使用自定义的Servlet容器,需要将应用打包成war包,然后通过外部的Servlet容器进行加载优点:可支持JSP。可配置性强!具体创建步骤如下:1.创建一个关于war包的工程创建的war包,和之前的的jar有如下几点区别
2021-07-22 11:24:56
381
原创 关于在Gradle项目管理工具下,创建SpringBoot外置Tomcat项目流程
关于在Gradle项目管理工具下,创建SpringBoot外置Tomcat项目流程当我们用Gradle做为项目管理工具时,创建一个SpringBoot外置TomCat项目,往往不能够正确启动Tomcat服务器,易出现以下几个问题:找不到web模板Tomcat找不到web模块,就会导致开启服务器时候报类似 XXXX.war not found for the web module 的错误!出现这种情况的主要原因是:在Gradle项目管理工具下,Gradle编译器不会自动创建exploded目录,所以
2021-07-21 22:34:19
494
2
原创 学习笔记:SpringBoot中的WEB开发
文章目录一、关于静态资源的映射 :1. 静态资源的默认位置2. 欢迎页:3. IOC图标二、模板引擎(Thymeleaf)1.简介2.Thymeleaf使用步骤使用SpringBoot开发web应用的步骤:1. 创建SpringBoot应用,选择需要的starter(启动器)2. 在SpringBoot中,可以直接写业务逻辑代码,只有很小的配置在配置文件web开发的自动配置类:WebMvcAutoConfiguration。自动配置类,会在项目启动的时候直接配置到容器中。一、关于静态资源的映射 :
2021-07-19 16:36:08
452
原创 Gradle项目管理工具在SpringBoot项目中的build.gradle文件,方便直接生成项目
运用Gradle项目管理工具管理SpringBoot项目,为了更方便创建和管理项目,预先建立build.gradle文件,通过IDEA可直接创建SpringBoot项目。apply plugin: 'java'apply plugin: 'maven'apply plugin: 'idea'apply plugin: 'java-library'apply plugin: 'maven-publish'apply plugin: 'org.springframework.boot'apply
2021-07-17 19:43:28
406
原创 SpringBoot:SpirngBoot的配置文件及多环境配置
文章目录一、SpringBoot简介1. SpringBoot配置文件简介2. YAML配置文件3. 基本用法4. 为类中的配置文件注入值并绑定类代码示例:5. 使用application.properties配置文件易出现的几类问题二、多环境配置1.基于properties的多环境配置2.基于YAML的多环境配置一、SpringBoot简介在SpringBoot中,此文所说的配置文件是在IDEA上resource项目文件夹下面的属性文件1. SpringBoot配置文件简介SrpingBoot默认
2021-07-17 10:26:57
646
原创 SpringBoot:简介、简单的SpringBoot示例及快速创建SpringBoot项目
文章目录一、SpringBoot简介1.SpringBoot是什么?2.为什么使用SpringBoot二、第一个SpringBoot程序1.SpringBoot对运行环境的要求2.操作步骤3.分析工程(HelloWorld)3.1依赖包管理3.2 主配置类注解、配置类注解及三、快速创建SpringBoot项目1.简介2.基本操作3.创建流程(图示例)一、SpringBoot简介1.SpringBoot是什么?生产背景:Spring开发变得越来越笨重,大量的xml文件,繁琐的配置,复杂的部署流程,整合
2021-07-17 09:43:19
370
原创 Maven:自定义父类POM,可用于子父类继承
<?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:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0
2021-07-15 13:10:41
522
原创 MySQL:Spring容器下的数据库事务操作
Spring容器下的数据库事务操作文章目录Spring容器下的数据库事务操作(一)什么情况下需要使用事务操作(二)在IOC容器中定义事务管理器(三)执行事务的方式有两种:(四)事务属性1. 传播属性:propagtion2. 隔离级别属性:isolation3. 回滚条件属性:rollback4. 只读优化:readOnly5. 超时处理(五)四个事务特性:(一)什么情况下需要使用事务操作当执行数据库操作的时候,第一个SQL语句执行正确,第二个语句错误的时候,需要把第一条执行的语句进行回滚操作!这个
2021-07-14 19:31:46
113
原创 各个版本的JDK注册表信息配置
我们在安装JDK的时候,一般都是自带安装程序的JDK版本,安装完成后,都会在注册表(regedit)中生成一个注册文件,默认在( HKEY_LOCAL_MACHINE—>SOFTWARE---->JavaSoft)下面,JDK版本不一样,注册表的信息内容也就不一样,下面就各版本的注册表信息展示如下,手动注册纯静版的JDK,只需要修改注册表的版本号和安装路径即可:(一)JDK 11版本Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHI
2021-07-13 19:01:51
2018
原创 Maven项目管理工具中settings配置文件(可直接调用)
把maven项目管理工具中的settings文件进行了完善,引入了阿里云镜像仓库、本地nexus仓库,且在阿里云平台开通了Maven仓库服务(可将开发的JAR包上传到阿里云个人Maven仓库),下面是完善好的settings.xml文件全部代码,可以直接复制粘贴到现有的settings文件中。settings.xml文件一般在两个位置:C:\Users\FWJWORK.m2 (这个位置为maven项目管理工具默认的本地仓库localRepository位置,此位置可以在setting.xml文件中进行修
2021-07-12 15:26:42
1109
转载 MySQL:Spring-JDBC的配置与使用详解
文章目录一、SpringJdbc模块的作用(一)JdbcTemplate的解析1.DataSource接口2.SQLExceptionTranslator接口3.JdbcOperations接口二、SpringJdbc模块的组成三、SpringJdbc的配置四、Spring JdbcTemplate的常用方法(一)创建IOC容器xml配置文件(一)创建IOC容器,取得窗口中的JdbcTemplate对象,并执行数据库操作方法一、SpringJdbc模块的作用Spring-jdbc负责数据库资源管理和错
2021-07-12 09:57:38
3969
原创 MySQL:定义数据库连接池(C3P0,DBCP)工具类,可用于IOC容器
自定义了一个数据库连接池工具类,此类主要有以下功能:管理C3p0 、DBCP两种类型的数据库连接池;分别把C3p0 、DBCP两个数据库连接池封装到JdbcTemplate包装类中,并返回;可分别从C3p0 、DBCP两个数据库连接池中得到数据库连接对象Connection;可用于在IOC容器中,采了静态工厂的方式,创建C3p0 、DBCP两个数据库连接池的Bean,且都为单例;一、具体实现代码: // TODO: 2021/7/10 采取c3p0的数据连接池 private
2021-07-11 16:35:34
164
原创 MySQL:Java中Statement使用详解
仅做为学习笔记用,部份内容摘自:https://blog.csdn.net/xingchenhy/article/details/83826149https://blog.csdn.net/wudingan/article/details/99714780文章目录一.Statement用法(一)创建 Statement 对象(二)使用 Statement 对象执行SQL语句1.执行方法介绍2.需要注意的几点二.PreparedStatement与Statement的区别(一)创建方式的区别(二)SQL
2021-07-11 12:46:19
1651
转载 MySQL:开源框架中DBUtils使用详解
此文仅为学习笔记,参考原文链接为:https文章目录一.DBUtils工具类包1. org.apache.commons.dbutils2. org.apache.commons.dbutils.handlers3. org.apache.commons.dbutils.wrappers二.使用DBUtils工具类包1.DbUtils工具类2.ResultSetHandler3.QureryRunner三.具体代码示例DBUtils是一个数据库操作类库,简化了JDBC的操作,使得我们可以用更少量的代码实
2021-07-10 23:02:03
284
转载 MySQL:JDBC基础及连接数据库的方式
文章目录一、JDBC基础(一)ODBC到JDBC的发展历程1.ODBC的结构模型2.JDBC的诞生(二)JDBC技术概述(三)JDBC技术及使用详解1.何谓驱动?2.JDBC驱动程序的分类二、JDBC连接MySQL数据库的基础方式(一)通过JDBC操作数据库的基本步骤1.使用JDBC第一步:加载驱动2.使用JDBC第二步:建立连接3.使用JDBC第三步:创建执行对象4.使用JDBC第四步:执行SQL语句5.使用JDBC第五步:处理执行结果6.使用JDBC 第六步——释放资源(二)JDBC连接数据库具体代码示
2021-07-10 13:59:05
452
原创 Spring学习:Spring整合web详解(用户登陆校验案例)
文章目录一、总体思路总结二、DAO层、Service层和Controller层的区别三、用户登陆校验示例基本流程(一)添加web所需要的依赖包(二)初始Spring容器(三)定义DAO层类1. 定义用户信息类2. 定义DAO层数据库操作类(四)定义Service层类(五)将DAO层和Service层定义的类加载到IOC容器中1.创建IOC管理工具类2.配置IOC容器的核心文件3.创建IOC容器并加载配置文件(六)创建Controller层中Servlet(七)解决post请求中文乱码一、总体思路总结Sp
2021-07-06 18:29:36
325
转载 Spring学习:Spring基础,IOC、AOP基本概念
文章目录一、Spring简介(一) Spring是什么?(二)为什么使用Spring(三) Spring体系结构二、核心概念(一) IOC (Inversion of Control 控制反转)(二) DI (dependency injection 依赖注入)三、创建SpringIOC流程(一) 添加jar依赖包(二) 核心配置文件(三) 创建IOC容器,将xml配置文件加载到容器四、通过配置文件给Bean装配数据(一)基本数据类型的装配(共19种)1.基本数据类型的装配2.自定义Bean、集合等其他数据
2021-07-05 18:04:00
69
原创 SpringMVC学习:控制层(Controller)基于注解详解
文章目录一、方法的返回值二、SpringMVC各类注解详解(一) @Controller(二) @RequestMapping1.基本用法2.URL的多种写法2.1 Ant风格(较少使用)2.2 Rest风格2.3 固定格式在SpringMVC中, 基于注解的控制层(Controller),客户端发送来的请求Request中的URL就映射到Controller层的一个方法,因此,在Controller层中,大多数注解都是基于这个方法的。下面就从应用于方法的各种注解进行学习。一、方法的返回值方法
2021-07-02 17:34:57
13087
原创 SpringMVC学习:SpringMVC静态资源的加载
文章目录一、SpringMVC静态资料加载(一) 使用Tomcat提供的静态资料处理(二) 使用SpringMVC提供的处理方式二、直接访问JSP页面一、SpringMVC静态资料加载当配置核心处理器置DispatcherServlet时,客户端请求的所有链接都会被拦截和分发,一些特殊的资源如:图片,js文件,css文件等也按照正常进行映射处理,从而找不到资源。所以在这个时候,我们就需要对静态资源进行相关的处理。在这里有两种处理方式。使用tomcat提供的默认Servlet使用SpringMVC提
2021-07-02 10:17:25
1006
原创 SpringMVC学习:SpringMVC框架的简介、实现原理及架构流程
文章目录一、SpringMVC简介(一)什么MVC(二)常见MVC框架1.使用原生Servlet实现MVC:2.使用Struts1、Struts2、SpringMVC等(三)为什么要使用SpringMVC二、SpringMVC实现原理(一)流程图(二)执行过程三、第一个SpringMVC程序(一)添加JAR包(二)配置核心控制器(三)核心配置文件1.两种定义方式2.核心配置文件xml的两种配置方式2.1 实现接口的Controller的xml的配置方式一、SpringMVC简介(一)什么MVCMod
2021-07-01 23:18:13
388
原创 Spring学习:Spring的AOP注解
文章目录一、简介二、增强类(Advice)加载到AOP文件中三、增强类的增强方法切入点及在切入点位置的定义四、在xml文件中,动态创建代理对象五、理解后置处理器是如何动态创建代理类一、简介Spring Aop的注解是在IOC注解基础上,重点突出增强类(Advice)的注解,一个增强类可以看成是一个切面(Aspect),因此,Aop注解的学习,基本上可以是看成增强类所用到的注解的学习。重点需要掌握了解以下几个知识点:增强类定义为组件Bean的同时,还需要定义为增强类(切面)的Bean,因此,他需要在@
2021-07-01 00:25:13
431
原创 Spring学习:Spring的IOC注解
文章目录一、简介二、IOC注解(一)常用的注解(二)扫描包(三)数据装配(四)其他情况三、生命周期四、Bean实例化的时机一、简介Spring提供了一系列的注解来替代 xml 中的配置,而在实际开发中,建议使用:注解+配置 的形式。二、IOC注解(一)常用的注解注解名称说明@Component定义Bean组件,添加到IoC容器中,不区分组件类型@Repository表示Dao组件(区分组件)@Service表示Service组件(区分组件)@Contro
2021-06-29 23:06:50
248
原创 Spring学习:Spring AOP 2.X增强类织入,动态代理类的实现
一、简介SpringAop 2.X 中的增强类,创是基于命名空间(方法空间中,给方法的参数配置指定的参数)的配置,原理是使用后处理器(即:是通过后置处理器直接来修改目标对象,例如:BeanPosProcessor),更简单,具有以下特点:简化配置非侵入性:编写通知时不需要实现任何接口使用AspectJ表达式定义切点二、基本用法(一) 配置Advice定义增强类,不需要实现任何接口,但有多种写法:写法说明public void 方法名(JoinPoint)前置增强
2021-06-28 21:22:02
184
原创 Spring学习:通过环绕增强类缓存目标对象执行结果
简介:通过环绕增强类缓存目标对象执行结果,所表达的意思是:通过代理类代理执行目标对象的方法时,将执行结果存储到定义的缓存中(这里用HashMap来定义缓存对象),当再次执行相同的方法时(即方法名、方法参数、和目标对象都相同),不会再从目标对象(被代理对象)中过行代码,而是直接从缓存中(HashMap)取出,这样,加快了代码整体的运行速度。以缓存计算结果为例,具体实现代码示例如下:一、定义接口及实现接口(一) 定义接口,这里定义的接口用于最基本的计算public interface CalcServic
2021-06-28 15:04:44
116
原创 SpringAOP 1.X中增强类的实现及织入创建动态代理的对象过程
SpringAOP 1.X中增强类的实现及织入创建动态代理的对象过程一、增强实现类织入动态代理类的结构图二、创建目标对象(被代理对象)接口及实现目标对象接口(一) 创建目标对象接口(二) 实现目标对象接口三、实现不同切入点增强类接口(一) 实现前置增强接口(二) 实现后置增强接口(三) 实现环绕增强接口(四) 实现异常增强接口四、配置xml文件,实现动态代理(一) 在xml中配置目标对象(被代理对象)(二) 在xml中配置增强类对象(三)配置增强类对象Bean映射到方法(四) 动态创建代理类及增强代码的织入
2021-06-28 00:42:45
201
原创 Maven项目管理软件pom.xml依赖包管理(通过此文件直接生成项目)
<?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:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0
2021-06-26 22:22:44
405
1
原创 JSTL:JSP自定义标签库学习总结
JSP自定义标签学习总结一、自定义标签的概念二、自定义标签常用的需继承的类、需实现的接口三、SimpleTag:简单标签机制(一)SimpleTag接口内容(二)SimpleTag标签的生命周期(三)SimpleTag接口具体实现类(四)TLD(标签库描述文件)(五)在web.xml中部署标签库文件(六)在JSP中使用自定义的标签四、SimpleTagSupport(一)定义继承于SimpleTagSupport的标签处理类(二)JSP中标签体几个选项(三)如何获得JSP页面中标签体的内容(四)在TLD文件
2021-06-26 12:44:21
602
原创 IDEA中如何快捷查看类的层次结构、类图及类的方法列表
我们在IDEA中想查看Java类的层次结构,可以按快捷键 ctrl + h,想查看该类所包含的所有方法,可以按快捷键 alt + 7 具体图示如下:一、查看Java类层次结构1. 在选中所需要查看层次结构类的前提下,按快捷键: CTRL+H,可以进行查看。二、查看类图1. 在选中所需要查看层次结构类的前提下,按快捷键: CTRL+ALT+U 或 CTRL+ALT+SHIFT+U,可以进行查看。或者:三、查看类中所有的方法列表...
2021-06-26 08:23:56
24706
原创 IDEA通过Maven创建项目generate太慢问题的解决办法
IDEA通过Maven创建项目,往往容易卡住在generate这地方,出现这个问题的主要原因是:IDEA通过指定的Maven(可以是IDEA自带的Maven,也可以是自己下载的Maven)在创建项目时会下载名为archetype-catalog.xml文件到本地仓库,这个文件比较大,有10M多,而且是从默认的中央仓库下载,所以往往比较慢,因此,只要将archetype-catalog.xml这个文件手动放入到本地仓库,就可以解决此问题。具体步骤如下:一、从指定网络下载archetype-catalog.x
2021-06-26 00:30:01
1566
原创 Spring学习:通过实现FactoryBean接口来创建配置比较复杂的IOC容器对象(Bean)
一、简介:在Spring IOC容器中有两种类型的Bean,一种是普通的Bean,即自定义创建的Bean类;另一种是工厂Bean,即通过工厂产生返回给IOC容器的Bean。在这里重点学习通过工厂创建返回给IOC容器的Bean,即工厂Bean。二、工厂Bean应用的主要场合如果普通bean的配置比较复杂,在配置文件中定义时步骤比较多,此时可以使用 FactoryBean,即实现于接口FactoryBean的类,加载到xml配置文件中所产生的Bean。三、定义FactoryBean的步骤定义一个类,
2021-06-25 19:19:29
219
原创 Spring学习:在Spring AOP 1.0中,增强类织入目标对象(被代理对象)的基本用法与步骤
在Spring AOP 1.0中,将增强类要增强的业务逻辑代码织入到被代理对象(目标对象)中,被织入增强代码的目标对象是不能够直接修改原有的目标对象,而是会生成一个被代理对象(通过字节码操作工具产生新的字节码,通过加载形成代理对象),在了解SpringAop1.0是如何实现增强类织入目标对象前,首先得了解增强类可以实现的几个接口:一、 Advice类型(增强类型)Spring AOP支持5种类型的通知(增强)二、 SpringAOP 1.0中动态代理的基本用法在SpringAOP 1.0中,实现动
2021-06-25 19:05:20
320
原创 Spring学习:动态代理的两种技术
一、JDK动态代理JDK动态代理,被代理对象(目标对象)和代理对象都必须实现于同一个接口,被代理对象(目标对象)一般都是实现接口,而代理对象则是通过JDK技术动态生成的。可以这样理解:Proxy(代理类操作工作,可以理解为字节码操作工作类)将传递进行的接口结构信息进行重构字节码,再通过类加载器加载字节码文件形成类及对应的实例,而这个实便(数据空间)则是代理对象。对于交叉业务逻辑代码,可以通过实现Involicaton来进行增强业务逻辑处理。具体代码如下:...
2021-06-25 09:29:07
108
原创 Spring学习:AOP简介及代理模式
一、AOP简介1.1概念:AOP:Aspect Oriented Programming面向切面编程,是OOP面向对象编程的一种补充。将程序中交叉业务逻辑(事务、日志)代码提取出来,封装成切面,由AOP容器在适当时机(位置)将封装的切面动态的织入到具体业务逻辑中。但需要注意的是:AOP不是Spring特有的。1.2 应用场合适用于具有横切逻辑的场合,如事务管理、日志记录、性能监测、异常通知、访问控制等1.3 作用1.不改变原有代码的基础上动态添加新的功能2.模块化1.3 术语连接点 Joi
2021-06-24 13:24:16
128
原创 Spring学习:IOC后置处理器BeanPosProcessor
一、Spring:BeanPosPrecessor简介:Bean后处理器用来对bean的功能进行扩展增强,对IoC容器中的所有bean都有效。BeanPosProcessor后置处理器执行的时机为:在Bean实例化且装配数据后,在执行初始化前后,生命周期如图所示:二、实现步骤定义一个类,实现BeanPostProcessor接口将该后处理器添加到IoC容器中三、代码实现:此实例为:自定义一个用户类,用户的属性为字符串数据类型,在IOC容器实例化后,给此Bean装配数据,装配数据后的Bean
2021-06-22 11:52:32
217
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人