![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JavaWeb
文章平均质量分 80
苍白的咏叹调
寻找一朵相似的花。。。
展开
-
EasyExcel实现文件读取、导出、上传、下载操作
一、EasyExcel简介 Java解析、生成Excel比较有名的框架有Apache poi、jxl。但他们都存在一个严重的问题就是非常的耗内存,poi有一套SAX模式的API可以一定程度的解决一些内存溢出的问题,但POI还是有一些缺陷,比如07版Excel解压缩以及解压后存储都是在内存中完成的,内存消耗依然很大。easyexcel重写了poi对07版Excel的解析,能够原本一个3M的excel用POI sax依然需要100M左右内存降低到几M,并且再大的excel不会出现内存溢出,03版...原创 2021-04-24 13:07:11 · 6066 阅读 · 3 评论 -
Spring中策略模式实现方法
一、定义在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象。策略对象改变 context 对象的执行算法。由于spring中我们需要注册对象,不能通过直接通过 **new** 来创建策略实现类,需要使用工厂模式来获取bean对象二、实现方法1.策略模式接口public interface StrangeService {.原创 2021-04-24 13:05:15 · 637 阅读 · 0 评论 -
ThreadLocal原理
### 一、定义当需要为每一个线程设置一个私有的变量,进行线程隔离时,java提供的ThreadLocal可以帮助我们实现,ThreadLocal有一个内部ThreadLocalMap,存储每个ThreadLocal对象和它的值,value为该线程独有的数据,可以为多种类型ThreadLocal、ThreadLocalMap、Thread三者之间的关系1、ThreadLocal是一个本地线程副本变量工具类,主要用于将私有线程和该线程存放的副本对象做一个映射,各个线程之间的变量互不干扰,线程之间数原创 2021-04-24 13:02:28 · 122 阅读 · 0 评论 -
http方式调用接口服务方法
一、使用步骤调用其他服务方法时,除了dubbo、rmq等方式外,还可以采取http方式调取对方服务的url,获取响应数据,可以采用HttpClient或CloseableHttpClient等接口实现http调用请求使用HttpClient发送请求的一般步骤 ,如下所示:(1)进行http连接配置,包括请求超时时间、读取响应时间、重试次数,最大请求数等配置(2)根据请求方式和参数创建对应的http对象。有HttpPost、HttpGet创建请求方式方法,对于HttpPost对象而言,可调用s原创 2021-03-02 22:58:49 · 10237 阅读 · 1 评论 -
分布式事务之TCC
### 一、定义分布式事务:分布式事务指事务的操作位于不同的节点上,需要保证事务的 AICD 特性,一个系统涉及到多个业务系统,出错时需要全部回滚,一般采取两阶段提交(2PC)、补偿事务(TCC)、MQ事务消息还可以使用补单操作,来完成任务的图1-1 电商系统订单服务涉及到库存、积分、仓储服务的数据库,出现问题时,无法直接对它们进行回滚二、TCC补偿分布式事务1.TCC作用机制TCC 其实就是采用的补偿机制,其核心思想是:针对每个操作,都要注册一个与其对应的确认和补偿(撤..原创 2021-03-02 22:55:39 · 1270 阅读 · 0 评论 -
Filter过滤器
一、定义Servlet中的过滤器Filter是实现了javax.servlet.Filter接口的服务器端程序,主要的用途是设置字符集、控制权限、控制转向、做一些业务逻辑判断等。工作原理:只要你在web.xml文件配置好要拦截的客户端请求,它都会帮你拦截到请求,此时你就可以对请求或响应(Request、Response)统一设置编码,简化操作,。过滤器在链中的顺序与它在web.xml中配置的顺序有关;同时还可进行逻辑判断,如用户是否已经登陆、有没有权限访问该页面等等工作。它是随你的web应用启动而启原创 2021-03-02 22:51:36 · 161 阅读 · 2 评论 -
MyBatis之PageHelper分页操作
一、定义PageHelper用在mybatis插件里面,可以自动的为最近的sql语句进行分页查询,提供分页的页码size和每页数量num,在查询过程中hi自动的拼接limit关键字,不用再改写sql语句了在PageHelper.startPage(); 在启动查询 List 数据的查询之前时,会对最近的一个查询进行起作用,但是对于间隔的查询返回 List的数据,将不会有任何影响springboot中Maven依赖<!--pagehelper--> <dependency原创 2021-01-18 23:00:34 · 1626 阅读 · 0 评论 -
spring中容器启动过程中初始化资源使用方法
#### 一、定义在业务场景中,有时需要我们在容器启动过程中加载资源,完成数据的初始化或者配置,需要在调用前加载进spring容器过程中去,有以下一些方法来实现1.定义静态常量,随着类的生命周期加载而提前加载。一般使用较多,这里不做说明2.实现InitializingBean接口;重写afterPropertiesSet()方法3.实现CommandLineRunner接口(Spring Boot中使用);容器启动之后,加载实现类的逻辑资源,已达到完成资源初始化的任务4.@PostCon原创 2021-01-09 17:51:45 · 708 阅读 · 0 评论 -
拦截器HandlerInterceptorAdapter使用方法
一、Interceptor定义:拦截器是在面向切面编程中应用的,就是在你的service或者一个方法前调用一个方法,或者在方法后调用一个方法。是基于JAVA的反射机制1.拦截器(Interceptor)执行顺序:1. 请求到达 DispatcherServlet2. DispatcherServlet 发送至 Interceptor ,执行 preHandle3. 请求达到 Controller4. 请求结束后,postHandle 执行2.拦截器(Interceptor)和过滤器(.原创 2020-12-06 23:03:16 · 36777 阅读 · 4 评论 -
Shiro安全框架的使用
Shiro安全框架1.介绍Shiro有三个核心的概念:Subject、SecurityManager和Realms。Subject(主体):subject本质上是当前正在执行的用户的特定于安全的“view”。它也可以表示第三方服务、守护进程帐户、cron作业或任何类似的东西——基本上是当前与软件交互的任何东西。SecurityManager(安全管理器): SecurityM...原创 2019-08-06 12:31:06 · 1543 阅读 · 0 评论 -
SpringBoot中使用Redis数据库
1.可以下载Iedis插件浏览Redis中数据2.下好安装好Redis,开启Redis服务3.配置Redis Server信息查看Redis数据库里面数据4.在项目中使用Redis数据库1)在pom.xml中添加依赖包<dependency> <groupId>org.springframework.boot</group...原创 2019-07-14 17:32:05 · 824 阅读 · 0 评论 -
IDEA中SpringBoot中使用单元测试Junit方法
1.选择你要测试类中的方法,右键点击go to2.选中你要进行测试的方法3.这里生成一个getNews()方法4.添加SpringBoot启动项的注解,和你要进行的操作。这里在测试方法中调用Servie中方法,自己写参数传递操作,然后运行测试类,得到返回结果输出5.运行之后的结果...原创 2019-07-14 16:21:06 · 5076 阅读 · 0 评论 -
JavaWeb学习之路——SpringBoot 中几种异常处理方法(四)
SpringBoot(三)错误处理1.自定义处理异常,返回指定界面controller出现错误的方法中:@RequestMapping("/error")public String error() {String str=null;str.length();return "test";}自定义错误页面.html中:<!...原创 2019-05-22 20:16:40 · 197 阅读 · 0 评论 -
JavaWeb学习之路——SSM框架之Mybatis(二)
1.简介:框架: 是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法;另一种定义认为,框架是可被应用开发者定制的应用骨架。前者是从应用方面而后者是从目的方面给出的定义。它是一个半成品,一个框架是在一个给定的问题领域内,一个应用程序的一部分设计与实现。 MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的...原创 2018-10-22 11:37:01 · 300 阅读 · 0 评论 -
JavaWeb学习之路——SSM框架之Mybatis(三)
数据库配置和相关类创建看上篇:JavaWeb学习之路——SSM框架之Mybatis(二)https://blog.csdn.net/kuishao1314aa/article/details/83270578这里说明下log4j日志用法和参数传递到xml文件中1.目录结构 2.目录解释:src下:pojo包:写java文件serverlet包:写serverle...原创 2018-11-03 19:49:20 · 299 阅读 · 0 评论 -
JavaWeb学习之路——SSM框架之Spring(四)
SSM框架学习-Spring01 1,.Spring介绍Spring 是一个开源框架,是为了解决企业应用程序开发复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。 2.功能1).Spring IOC(DI):依赖注入、控制反转2).Spring AOP:面向切面编程3).声明式事务4...原创 2018-11-05 09:45:10 · 302 阅读 · 0 评论 -
JavaWeb学习之路——SSM框架之Spring(五)
前情提要请看JavaWeb学习之路——SSM框架之Spring(四) 整合Spring和Mybatis框架1.在项目的lib下导入如下jar包导入mybatis所有jar和spring的jar基本包,spring-jdbc,spring-tx,spring-aop,spring整合mybatis等2....原创 2018-11-05 19:40:56 · 307 阅读 · 0 评论 -
JavaWeb学习之路——SSM框架之Spring(六)
AOP:面向切面编程1.介绍——AOP:面向切面编程。正常程序都是从上到下执行相关代码,aop是在纵向执行流程中添加横切面, 从左到右的关系。不需要修改成语原有代码,它将代码动态的切入到类的指定方法、指定位置上的编程思想就是面向切面的编程。特点:高扩展性、释放原有功能部分逻辑eg:一般程序执行顺序,从上往下。public class Demo { public sta...原创 2018-11-12 11:35:10 · 444 阅读 · 0 评论 -
JavaWeb学习之路——SSM框架之SpringMVC(八)
SpringMVC参数传递:把内容写到方法(HandlerMethod)参数中,SpringMVC只要有这个内容,则会注入,在这里使用注解的方式来传递参数前提使用springmvc注解功能,相应配置请看上节JavaWeb学习之路——SSM框架之SpringMVC(七)1.在jsp文件中设置提交动作<form action="demo" method="post"> ...原创 2018-11-20 21:24:18 · 208 阅读 · 0 评论 -
JavaWeb学习之路——SSM框架之SpringMVC(九)
SpringMVC跳转、视图解析器和@ResponseBody的用法1.跳转方式(1)默认方式字符串内容来转发(2)设置返回值内容转发 添加redirect:资源路径· 重定向 添加forward:资源路径 或省略 转发 @RequestMapping("demo4") public String demo4() { ...原创 2018-11-21 16:34:29 · 197 阅读 · 0 评论 -
JavaWeb学习之路——SpringBoot整合Mybatis(二)
1)pom文件中添加相应的jar包:<!--Mybatis启动器--><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter&...原创 2019-04-29 17:39:11 · 204 阅读 · 0 评论 -
jQuery ajax使用方法
ajax使用方式type: 默认值: "GET")。请求方式 ("POST" 或 "GET"), 默认为 "GET"url: 默认值: 当前页地址。发送请求的地址。data: 发送到服务器的数据。将自动转换为请求字符串格式。GET 请求中将附加在 URL 后。 必须为 Key/Value 格式contentType: 发送信息至服务器时内容编码类型。dataType: 预期服务...原创 2019-05-13 10:14:11 · 4915 阅读 · 0 评论 -
JavaWeb学习之路——SpringBoot 中thymeleaf模板用法(三)
thymeleaf模板用法thymeleaf通过它特定的语法,对HTML的标记做渲染,能够访问后台的动态数据,实现静态html界面的动态化1.添加架包<!--引入动态模板--><dependency><groupId>org.springframework.boot</groupId><artifactId...原创 2019-05-17 11:48:26 · 229 阅读 · 0 评论 -
JavaWeb学习之路——jsp与serverlet(一)
Jsp与serverlet目录架构图如下所示:1.jsp指令<%@ page contentType="text/html;charset=UTF-8" language="java" %>page:位于jsp顶端同一个页面可以有多个<%@page 属性1="属性值" 属性2=“属性值" ....%>属性名:language,import,con...原创 2018-08-15 16:39:47 · 8613 阅读 · 0 评论