
Java基础
文章平均质量分 74
Java基础
Forrest Gump plus
这个作者很懒,什么都没留下…
展开
-
微信支付准备工作
目录1、创建二维码2、准备工作2.1 名词介绍1) 注册公众号(类型:服务号)2) 认证公众号3) 提交材料申请微信支付4) 开户成功,登录商户平台进行验证5) 在线签署协议3、支付流程4、工具介绍4.1 SDK4.2 JFinal 框架1、创建二维码1、安装 qrcodejs2 (注意:安装的是qrcodejs2,不要安装qrcode ---> 会报错) 2、页面中引入 2、准备工作2.1 名词介绍如果获得这原创 2021-08-01 12:32:27 · 287 阅读 · 0 评论 -
微信登录---OAuth2.0
微信开放平台(针对开发者和公司)https://developers.weixin.qq.com/doc/oplatform/Website_App/WeChat_Login/Wechat_Login.html1、准备工作 网站应用微信登录是基于OAuth2.0协议标准构建的微信OAuth2.0授权登录系统。 在进行微信OAuth2.0授权登录接入之前,在微信开放平台注册开发者帐号,并拥有一个已审核通 过的网站应用,并获得相应的AppID和AppSecret,申请微信登录且通过审核后,可开始接入原创 2021-08-01 12:29:54 · 1051 阅读 · 0 评论 -
用户权限控制(Token登录)
1.用户权限控制1.1 用户登录1.1.1 流程分析1) 用户登录界面,需要输入手机号密码2) 登录组件 login.vue登录按钮 type="primary" :loading="loading" @click="submit('login-form')">{{ loading ? 'Loading...' : '登录' }} 提交表的方法 //提交登录表单submit(ref) { //校验...原创 2021-06-25 22:35:51 · 2281 阅读 · 1 评论 -
权限模块相关概念介绍
一、权限概念的介绍权限:权力和限制(不能做的)认证:验证用户名密码是否正确的过程授权:对用户所能访问的资源进行控制(动态显示菜单,url级别的权限控制)为什么要实现权限系统首先系统需要进行登陆才能访问 其次不同登陆用户要有不同的权利,而且要有不同的菜单(例如财务经理针对系统中财务相关模块进行 操作,人事经理针对系统中人事模块进行操作)。权限控制基本原理1.ACL(Access Control Lists,缩写ACL) ACL是最早也是最基本的一种访问控制机制...原创 2021-06-17 23:48:05 · 751 阅读 · 0 评论 -
maven工程分析
一. Maven进阶使用1.1 maven基础知识回顾 1.1.1 maven介绍maven 是一个项目管理工具,主要作用是在项目开发阶段对Java项目进行依赖管理和项目构建。 依赖管理:就是对jar包的管理。通过导入maven坐标,就相当于将仓库中的jar包导入了当前项目中。 项目构建:通过maven的一个命令就可以完成项目从清理、编译、测试、报告、打包,部署整个过程。 1.1.2 maven的仓库类型 1.本地仓库 2.远程仓库 ①m...原创 2021-06-17 23:46:35 · 217 阅读 · 1 评论 -
解决Maven依赖冲突
解决Maven依赖冲突1.使用maven提供的依赖调解原则 第一声明者优先原则 路径近者优先原则 (总结:直接依赖大于依赖传递 )2.排除依赖 3.锁定版本(只有锁定jar版本作用,没有引用jar包版本作用)1.使用maven提供的依赖调解原则 1)第一声明者优先原则在 pom 文件中定义依赖,以先声明的依赖为准。其实就是根据坐标导入的顺序来确定最终使用哪个传递过来的依赖。结论:通过上图可以看到,spring-aop和spring-webmv...原创 2021-05-26 23:19:15 · 268 阅读 · 2 评论 -
SSM框架整合
1.1 需求和步骤分析 需求 使用ssm框架完成对 account 表的增删改查操作。 步骤分析1. 准备数据库和表记录 2. 创建web项目 3. 编写mybatis在ssm环境中可以单独使用 4. 编写spring在ssm环境中可以单独使用 5. spring整合mybatis 6. 编写springMVC在ssm环境中可以单独使用 7. spring整合springMVC 1.2 环境搭建 1)准备数据库和表记录2)创建web项目..原创 2021-05-25 22:20:33 · 181 阅读 · 2 评论 -
SpringMVC进阶(三)----异常处理,拦截器
四 异常处理4.1 异常处理的思路 在Java中,对于异常的处理一般有两种方式: 一种是当前方法捕获处理(try-catch),这种处理方式会造成业务代码和异常处理代码的耦合。 另一种是自己不处理,而是抛给调用者处理(throws),调用者再抛给它的调用者,也就是一直向上抛。在这种方法的基础上,衍生出了SpringMVC的异常处理机制。 系统的dao、service、controller出现都通过throws Exception向上抛出,最后由springmvc前端控 ..原创 2021-05-25 22:19:17 · 188 阅读 · 2 评论 -
SpringMVC进阶(二)----文件上传
三 文件上传3.1 文件上传三要素 表单项 type="file" 表单的提交方式 method="POST" 表单的enctype属性是多部分表单形式 enctype=“multipart/form-data" 3.2 文件上传原理 当form表单修改为多部分表单时,request.getParameter()将失效。 当form表单的enctype取值为 application/x-www-form-urlencoded 时, form表单的正文内容格式...原创 2021-05-25 22:17:59 · 134 阅读 · 0 评论 -
SpringMVC进阶(一)
一 ajax异步交互 Springmvc默认用MappingJackson2HttpMessageConverter对json数据进行转换,需要加入 jackson的包;同时使用 <mvc:annotation-driven /> 1.1 @RequestBody该注解用于Controller的方法的形参声明,当使用ajax提交并指定contentType为json形式时,通过 HttpMessageConverter接口转换为对应的POJO对象。 ..原创 2021-05-25 22:17:16 · 147 阅读 · 4 评论 -
SpringMVC入门(四)
四 SpringMVC的响应 4.1 SpringMVC响应方式介绍 页面跳转1. 返回字符串逻辑视图 2. void原始ServletAPI 3. ModelAndView返回数据1. 直接返回字符串数据 2. 将对象或集合转为json返回(任务二演示) 4.2 返回字符串逻辑视图 直接返回字符串:此种方式会将返回的字符串与视图解析器的前后缀拼接后跳转到指定页面4.3 void原始ServletAPI 我们可以通过request、respon..原创 2021-05-25 22:16:28 · 168 阅读 · 4 评论 -
SpringMVC入门(三)
三 SpringMVC的请求 3.1 请求参数类型介绍 客户端请求参数的格式是: name=value&name=value…… 服务器要获取请求的参数的时候要进行类型转换,有时还需要进行数据的封装SpringMVC可以接收如下类型的参数: 基本类型参数对象类型参数数组类型参数集合类型参数3.2 获取基本类型参数 Controller中的业务方法的参数名称要与请求参数的name一致,参数值会自动映射匹配。并且能自 动做类型转换;自动的类型转换是..原创 2021-05-25 22:15:52 · 113 阅读 · 5 评论 -
SpringMVC入门(二)
二 SpringMVC组件概述 2.1 SpringMVC的执行流程1. 用户发送请求至前端控制器DispatcherServlet。 2. DispatcherServlet收到请求调用HandlerMapping处理器映射器。 3. 处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截器(如 果有则生成)一并返回给DispatcherServlet。 4. DispatcherServlet调用HandlerAdapter处理器适配器。原创 2021-05-25 22:14:11 · 1343 阅读 · 12 评论 -
SpringMVC入门(一)
一 SpringMVC简介 1.1 MVC模式 MVC是软件工程中的一种软件架构模式,它是一种分离业务逻辑与显示界面的开发思想。 * M(model)模型:处理业务逻辑,封装实体 * V(view) 视图:展示内容 * C(controller)控制器:负责调度分发(1.接收请求、2.调用模型、3.转发到视图)1.2 SpringMVC概述 SpringMVC 是一种基于 Java 的实现 MVC 设计模式的轻量级 Web 框架,属于SpringF...原创 2021-05-25 22:13:30 · 176 阅读 · 4 评论 -
Spring的事务
二 Spring的事务 2.1 Spring中的事务控制方式 Spring的事务控制可以分为编程式事务控制和声明式事务控制。 编程式 开发者直接把事务的代码和业务代码耦合到一起,在实际开发中不用。声明式 开发者采用配置的方式来实现的事务控制,业务代码与事务代码实现解耦合,使用的AOP思想。2.2 编程式事务控制相关对象【了解】 2.2.1 PlatformTransactionManagerPlatformTransactionManager接口,是spring的事.原创 2021-05-12 22:29:33 · 133 阅读 · 1 评论 -
Spring JDBCTemplate
一 Spring的JdbcTemplate 1.1 JdbcTemplate是什么? JdbcTemplate是spring框架中提供的一个模板对象,是对原始繁琐的Jdbc API对象的简单封装。 核心对象JdbcTemplate jdbcTemplate = new JdbcTemplate(DataSource dataSource); 核心方法1.2 Spring整合JdbcTemplate 需求 基于Spring的xml配置实现账户的CRUD案例 步骤分析原创 2021-05-12 22:28:40 · 63 阅读 · 0 评论 -
Spring Aop
一 初识AOP 1.1 什么是AOP AOP 为 Aspect Oriented Programming 的缩写,意思为面向切面编程 AOP 是 OOP(面向对象编程) 的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内 容,利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高 程序的可重用性,同时提高了开发的效率。这样做的好处是1. 在程序运行期间,在不修改源码的情况下对方法进行功能增强 2. 逻辑清晰,开发核心业务.原创 2021-05-12 22:28:07 · 119 阅读 · 0 评论 -
常用的动态代理技术
JDK 代理 : 基于接口的动态代理技术·:利用拦截器(必须实现invocationHandler)加上反射机制生成 一个代理接口的匿名类,在调用具体方法前调用InvokeHandler来处理,从而实现方法增强 CGLIB代理:基于父类的动态代理技术:动态生成一个要代理的子类,子类重写要代理的类的所有不是final的方法。在子类中采用方法拦截技术拦截所有的父类方法的调用,顺势织入横切逻辑,对方法进行 增强JDK动态代理方式CGLIB动态代理方式 ..原创 2021-05-12 22:26:56 · 422 阅读 · 0 评论 -
DbUtils(IOC实战)
六 DbUtils(IOC实战)6.1 DbUtils是什么? DbUtils是Apache的一款用于简化Dao代码的工具类,它底层封装了JDBC技术。 核心对象核心方法int update(); 执行增、删、改语句 T query(); 执行查询语句 ResultSetHandler<T> 这是一个接口,主要作用是将数据库返回的记录封装到实体对象 举个栗子 查询数据库所有账户信息到Account实体中6.2 Spring的xml整合D..原创 2021-05-12 22:25:55 · 105 阅读 · 2 评论 -
Spring IOC 配置文件
五 Spring配置文件 5.1 Bean标签基本配置 <bean id="" class=""></bean> * 用于配置对象交由Spring来创建。 * 基本属性: id:Bean实例在Spring容器中的唯一标识 class:Bean的全限定名 * 默认情况下它调用的是类中的 无参构造函数,如果没有无参构造函数则不能创建成功。5.2 Bean标签范围配置 <bean id="" class="" scope="">&..原创 2021-05-12 22:25:07 · 255 阅读 · 1 评论 -
Spring IOC
一 Spring概述 1.1 Spring是什么 Spring是分层的 Java SE/EE应用 full-stack(全栈式) 轻量级开源框架。 提供了表现层 SpringMVC和持久层 Spring JDBC Template以及 业务层 事务管理等众多的企业级应用 技术,还能整合开源世界众多著名的第三方框架和类库,逐渐成为使用最多的Java EE 企业应用开源框 架。两大核心:以 IOC(Inverse Of Control:控制反转)和 AOP(Aspect Oriented原创 2021-05-12 22:23:21 · 98 阅读 · 0 评论 -
Mybatis----加载策略及注解开发(四)
3.7 基于注解的二级缓存3.7.1 配置SqlMapConfig.xml文件开启二级缓存的支持 <settings><!--因为cacheEnabled的取值默认就为true,所以这一步可以省略不配置。 为true代表开启二级缓存;为false代表不开启二级缓存。 --><setting name="cacheEnabled" value="true"/> </settings>3.7.2 在Mapper接口中使用注.原创 2021-04-28 22:02:19 · 140 阅读 · 0 评论 -
Mybatis----加载策略及注解开发(三)
MyBatis注解3.1 MyBatis常用注解 这几年来注解开发越来越流行,Mybatis也可以使用注解开发方式,这样我们就可以减少编写 Mapper映射文件了。我们先围绕一些基本的CRUD来学习,再学习复杂映射多表操作。* @Insert:实现新增,代替了<insert></insert>* @Delete:实现删除,代替了<delete></delete> * @Update:实现更新,代替了<update>&l.原创 2021-04-28 22:01:46 · 106 阅读 · 1 评论 -
Mybatis----加载策略及注解开发(二)
MyBatis缓存2.1 为什么使用缓存? 当用户频繁查询某些固定的数据时,第一次将这些数据从数据库中查询出来,保存在缓存中。当用户再 次查询这些数据时,不用再通过数据库查询,而是去缓存里面查询。减少网络连接和数据库查询带来的损 耗,从而提高我们的查询效率,减少高并发访问带来的系统性能问题。 一句话概括:经常查询一些不经常发生变化的数据,使用缓存来提高查询效率。像大多数的持久化框架一样,Mybatis也提供了缓存策略,通过缓存策略来减少数据库的查询次数, 从而提高性能。.原创 2021-04-28 22:00:15 · 115 阅读 · 2 评论 -
Mybatis-----加载策略及注解开发(一)
一 MyBatis加载策略 1.1 什么是延迟加载?就是在需要用到数据时才进行加载,不需要用到数据时就不加载数据。延迟加载也称懒加载。* 优点:先从单表查询,需要时再从关联表去关联查询,大大提高数据库性能,因为查询单表要比关联查询多张表速度要快。* 缺点:因为只有当需要用到数据时,才会进行数据库查询,这样在大批量数据查询时,因为查询工作也要消耗时间,所以可能造成用户等待时间变长,造成用户体验下降。* 在多表中: 一对多,多对多:通常情况下采用延迟加载一对一(多对一):通常原创 2021-04-28 21:58:39 · 89 阅读 · 0 评论 -
Mybatis-----复杂映射&配置文件深入(二)
Mybatis多表查询4.1 数据库表关系介绍 关系型数据库表关系分为* 一对一 * 一对多 * 多对多一对一:1.Order实体类:2.OrderMapper接口 3.OrderMapper.xml映射 <!--assocation:在进行一对一关联查询配置时,使用assocation标签进行关联property="user":要封装实体的属性名javaType="com.lagou.domain.User":要封装...原创 2021-04-28 21:57:55 · 137 阅读 · 0 评论 -
Mybatis-----复杂映射&配置文件深入(一)
一 Mybatis高级查询1.1 ResutlMap属性 建立对象关系映射resultType 如果实体的属性名与表中字段名称一致,将查询结果自动封装到实体类中ResultMap 如果实体的属性名与表中字段名称不一致,可以使用ResultMap实现手动,封装到实体类中<!--id:标签的唯一标识type:封装后的实体类型--><resultMap id="userResultMap" type="com.lagou.domain.User"...原创 2021-04-28 21:56:38 · 365 阅读 · 0 评论 -
Mybatis----基本应用(三)
七 Mybatis的API概述 7.1 API介绍 7.1 SqlSession工厂构建器SqlSessionFactoryBuilder 常用API:SqlSessionFactory build(InputStream inputStream) 通过加载mybatis的核心文件的输入流的形式构建一个SqlSessionFactory对象其中, Resources 工具类,这个类在 org.apache.ibatis.io 包中。Resources 类帮助你从类路径下、文 件系原创 2021-04-28 21:55:18 · 104 阅读 · 0 评论 -
Mybatis----基本应用(二)
四 Mybatis映射文件概述五 Mybatis增删改查5.1 新增 1)编写映射文件UserMapper.xml 2)编写测试类 3)新增注意事项 - 插入语句使用insert标签 - 在映射文件中使用parameterType属性指定要插入的数据类型 - Sql语句中使用#{实体属性名}方式引用实体中的属性值 - 插入操作使用的API是sqlSession.insert(“命名空间.id”,实体对象);...原创 2021-04-28 21:53:55 · 101 阅读 · 0 评论 -
Mybatis----基本应用(一)
一 框架简介1.1 三层架构 软件开发常用的架构是三层架构,之所以流行是因为有着清晰的任务划分。一般包括以下三层:持久层:主要完成与数据库相关的操作,即对数据库的增删改查。因为数据库访问的对象一般称为Data Access Object(简称DAO),所以有人把持久层叫做DAO 层。 业务层:主要根据功能需求完成业务逻辑的定义和实现。因为它主要是为上层提供服务的,所以有人把业务层叫做Service层或Business层。 表现层:主要完成与最终软件使用用户的交互,需要有交互界面(UI原创 2021-04-28 21:52:01 · 332 阅读 · 0 评论 -
项目--- JSON
4. JSON4.1 JSON简述 JSON(JavaScript Object Notation) JavaScript对象表示法(JSON源于JS)。 JSON的特点: JSON 是一种轻量级的数据交换格式。 JSON采用完全独立于语言的文本格式,就是说不同的编程语言JSON数据是一致的。 JSON易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率)。4.2 XML与JSON的区别 XML : 可扩展标记语言,是一种用于标记电子文件使其具有结构性的标.原创 2021-03-23 17:11:54 · 238 阅读 · 0 评论 -
项目---Maven 后端项目管理工具
2. Maven 项目管理工具 2.1 Maven介绍 2.1.1 什么是Maven Maven是一个跨平台的项目管理工具。作为Apache组织的一个颇为成功的开源项目,其主要服务于 基于Java平台的项目创建,依赖管理和项目信息管理。maven是Apache的顶级项目,解释为“专家,内 行”,它是一个项目管理的工具,maven自身是纯java开发的,可以使用maven对java项目进行构建、 依赖管理。2.1.2 Maven的作用 依赖管理 依赖指的就是是 我们项目中.原创 2021-03-23 17:11:23 · 554 阅读 · 0 评论 -
项目---前后端分离开发
1.3 前后端分离开发 1.3.1 前后端分离架构介绍 前后端分离已成为互联网项目开发的业界标准使用方式,将前端和后端的开发进行解耦。并且前后端分离会为以后的大型分布式架构、微服务架构、多端化服务(各种客户端,比如浏览器、车载终端、安卓、IOS等)打下坚实的基础。 前后端分离的核心思想就是前端HTML页面通过AJAX调用后端的API接口,并通过JSON数据进行 交互。 1.3.2 接口文档 1.3.2.1 什么是接口文档? 在我们的项目中使用的是前...原创 2021-03-23 17:11:12 · 567 阅读 · 1 评论 -
JavaWEB核心------开发环境搭建和Shell编程(一)
7.1 开发环境搭建(掌握) 7.1.1 Xshell和Xftp工具 (1)下载和安装方式 下载地址:https://www.netsarang.com/zh/ 安装方式:直接一路点击下一步即可,安装过程选择免费版。(2)使用方式(3)网络模式设置 设置网络连接模式为NAT模式,如下图:(4)修改配置文件 使用root用户打开/etc/sysconfifig/network-scripts/ifcfg-eno16777736文件,添加内容如下:(5)配置文件生效原创 2021-03-10 23:27:18 · 179 阅读 · 0 评论 -
JavaWEB核心------Linux系统概述和编程基础(一)
6.1 Linux系统概述(常识) 6.1.1 计算机的体系结构计算机由计算机硬件和计算机软件两个部分组成,其中计算机软件(Computer Software)可分为系 统软件和应用软件,系统软件就是操作系统,是其他软件的基础。目前主流的操作系统有:Windows系列、Unix系列、Linux系列、Android系列、IOS系列、...6.1.2 Linux系统的概述 Linux系统诞生于1991年,在林纳斯·托瓦兹(Linus Torvalds)上大学期间因不满意教学中使用的 MINI原创 2021-03-10 23:23:30 · 98 阅读 · 0 评论 -
JavaWEB核心------Listener核心技术(一)
5.2 Listener监听器(重点)5.2.1 基本概念 Servlet规范中定义的一种特殊的组件,用来监听Servlet容器产生的事件并进行相应的处理。 容器产生的事件分类如下: 生命周期相关的事件。 属性状态相关的事件。 存值状态相关的事件。 底层原理是采用接口回调的方式实现。5.2.2 基本分类5.2.3 监听器详解 (1)ServletRequestListener监听器在ServletRequest创建和关闭时都会通知ServletRequestLis原创 2021-03-10 23:21:26 · 138 阅读 · 0 评论 -
JavaWEB核心------Filter核心技术(一)
5.1 Filter过滤器(重点)5.1.1 基本概念 Filter本意为”过滤“的含义,是JavaWeb的三大组件之一,三大组件为:Servlet、Filter、 Listener。 过滤器是向 Web 应用程序的请求和响应处理添加功能的 Web 服务组件。 过滤器相当于浏览器与Web资源之间的一道过滤网,在访问资源之前通过一系列的过滤器对请求 进行修改、判断以及拦截等,也可以对响应进行修改、判断以及拦截等。5.1.2 工作方式5.1.3 使用方式 自定义类实现Filter接口原创 2021-03-10 23:18:37 · 195 阅读 · 0 评论 -
JavaWEB核心------EL和JSTL核心技术(一)
4.1 EL表达式(熟悉) 4.1.1 基本概念EL(Expression Language)表达式提供了在JSP中简化表达式的方法,可以方便地访问各种数据 并输出。4.1.2 主要功能 依次访问pageContext、request、session和application作用域对象存储的数据。 获取请求参数值。 访问Bean对象的属性。 访问集合中的数据。 输出简单的运算结果。4.1.3 访问内置对象的数据 (1)访问方式 <%=request.getAttribut原创 2021-03-10 12:09:55 · 109 阅读 · 0 评论 -
JavaWEB核心------JSP核心技术(一)
3.1 JSP的概述(熟悉) 3.1.1 JSP的概念 JSP是Java Server Pages的简称,跟Servlet一样可以动态生成HTML响应, JSP文件命名为xxx.jsp。 与Servlet不同,JSP文件以HTML标记为主,然后内嵌Java代码段,用于处理动态内容。3.1.2 JSP的示例 3.1.3 JSP与Servlet的关系 3.2 JSP的语法(熟悉) 3.2.1 JSP语法结构 声明区 程序代码区 表达式 注释 指令和动作 内置对象原创 2021-02-28 15:45:33 · 292 阅读 · 2 评论 -
JavaWEB核心------Servlet核心技术(三)
2.1 Servlet+JDBC应用(重点) 在Servlet中可以使用JDBC技术访问数据库,常见功能如下: 查询DB数据,然后生成显示页面,例如:列表显示功能。 接收请求参数,然后对DB操作,例如:注册、登录、修改密码等功能。 为了方便重用和便于维护等目的,经常会采用DAO(Data Access Object)模式对数据库操作进行独立封装。DAO工厂(工厂模式)工厂类:封装了对象的创建细节,为调用者提供符合要求的对象。2.2 重定向和转发(重点) 2.2.1 重定向原创 2021-02-28 15:43:42 · 147 阅读 · 2 评论