- 博客(40)
- 收藏
- 关注
原创 docker-compense搭建elasticsearch和kibana
首先将docker-componse.yml文件贴上version: "3.1"volumes: data: config: plugin:networks: es:services: elasticsearch: image: elasticsearch:7.13.4 restart: always container_name: elasticsearch ports: - 9200:9200 - 9300:9300
2022-01-15 16:46:42
1139
原创 根据文件的url去下载文件,然后在将文件进行压缩提供给前端下载
首先准备两个工具类1.根据文件的url去下载文件,其实也不是下载文件,只是得到一个输入流.然后利用输入流输出流得到一个字节数组。public class IOUtils { public static Map<String, byte[]> getByte(List<String> urlPath) { Map<String, byte[]> stringMap = new HashMap<String, byte[]>();
2021-12-19 20:01:12
971
3
原创 分布式处理方案
文章目录一、引言二、分布式锁介绍三、分布式锁解决方案【`重点`】单体架构中的锁双重锁机制3.1 搭建环境3.2 Zookeeper实现分布式锁原理3.3 Zookeeper实现分布式锁3.4 Redis实现分布式锁原理3.5 Redis实现分布式锁lua脚本实现锁释放四、分布式任务介绍五、分布式任务解决方案【`重点`】5.1 Elastic-Job介绍5.2 Elastic-Job实现分布式任务六、分布式事务介绍6.1分布式事务介绍6.2 Base理论七、分布式事务解决方案【`重点`】7.1 2PC两段提交
2021-07-22 20:06:28
599
原创 多线程异步编程
线程的四种初始化方式1、继承Thread类2、实现Runnable接口3、Callable接口4、线程池继承Thread类继承Thread类复写父类中的run()。Thread类也是Runnable接口的一个子类。要想启动线程必须依靠Threan类的start()方法执行,线程启动之后会默认调用run()方法,一个线程只能启动唯一一次,多次启动会抛异常public class ThreadDemo { public static void main(String[] args
2021-07-22 20:01:09
390
原创 自定义线程池工具类
可以按自己的需求来自定义线程池工具类public class ThreadPool { private static ThreadPoolExecutor coreThreadPool = new ThreadPoolExecutor( 5, //核心线程数 10, //线程池中的最大线程数量 20, //空闲时间(核心线程数以外的空闲线程会被计时,当达到空闲时长的时候会被销毁) TimeUnit.
2021-06-19 15:11:45
201
原创 将ElasticSearch的查询结果转为实体类
首先转为一个实体类需要用到一个第三方jar包 <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.1.46.sec01</version> </dependency>然后直接上代码,这里局的例
2021-06-08 20:25:20
5665
原创 spring boot 和Ajax请求解决跨域问题
在一次实验Ajax请求后端数据并接受返回值时,并且当请求方式为post时,就碰到了这个问题,百度了一下,有三种方法可以解决我所采用的解决方法就是下面这一种mport org.springframework.core.Ordered;import org.springframework.core.annotation.Order;import org.springframework.stereotype.Component;import javax.servlet.*;import javax.
2021-02-13 14:40:39
127
原创 java(ssm)里整合支付宝沙箱支付功能
1.首先要在支付宝里申请一个沙箱账号具体操作,跳转2.然后就是要下载对应的jar包(我这里用的是maven依赖下载的)<!-- https://mvnrepository.com/artifact/com.alipay.sdk/alipay-sdk-java --> <dependency> <groupId>com.alipay.sdk</groupId> <artifactId&g
2020-11-03 19:40:45
1460
2
原创 快速排序
private static void sort(int [] a ,int start, int end) { //只有一个数或者没有数了,就不要排序了 if (start>=end) return ; //第一次排序,获取排序后的基准值的位置 int i = quickSort(a, start, end); //排序基准值左边的 sort(a,sta...
2020-11-02 18:03:56
71
原创 ssm整合spring security之后登录拦截后跳转到之前登录前的页面
首先要写一个Handler来处理拦截的时候要跳转的urlpublic class LoginSuccessHandler implements AuthenticationSuccessHandler { @Override public void onAuthenticationSuccess(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Authentication aut
2020-10-08 11:34:32
916
原创 基于spring-security的验证码的生成
首先要引入第三方的依赖 <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.4.3</version> </dependency>编写生成验证码的Controller@Controllerpublic cl
2020-10-02 12:17:34
359
3
原创 spring-security的记住我功能和显示当前用户名
方式一导入spring相关的依赖登录页面中的记住我的代码里的name值一定要是remember-me,value值可以是true、on、1都可以<div class="form-group"> <label for="remember-me">是否记住</label> <input type="checkbox" name="remember-me" value="true"/> Remember me </div>
2020-09-27 19:05:25
233
原创 Json
我们正常返回他会走视图解析器,而json需要返回的是一个字符传;所以需要将我们的对象转化为json字符串,这里可以引入第三方jar包(Jackson),引入之后只需要一个注解就够了@ResponseBody,将服务端返回的对象转换为json对象响应回去@RequestMapping(value="/json",produces="application/json;charset=utf-8")@ResponseBodypublic String json1(){ //需要一个Jackson的对象
2020-08-26 17:08:24
151
原创 vue的webpack
创建项目创建一个modules的目录,用于存放JS模块等资源文件在modules目录下创建一个文件,如hello.js,用于编写js代码//暴露一个方法exports.sayhi =function () { document.write("<h1>狂神说ES6</h1>")};在modules目录下创建一个名为main.js的入口文件,用于打包时设置entry属性var hello=require("./hello");hello.sayhi();在项
2020-08-25 18:14:01
127
原创 初始化一个vue项目
vue init webpack myvue创建一个vue项目,期间有选择一些信息安装依赖 npm install在idea中的项目结构以管理员身份运行 npm run dev
2020-08-24 21:44:02
175
原创 Vue(生命周期、组件、路由)
计算属性:在模板中绑定表达式是非常便利的,但是它们实际上只用于简单的操作。模板是为了描述视图的结构。在模板中放入太多的逻辑会让模板过重且难以维护。这就是为什么 Vue.js 将绑定表达式限制为一个表达式。如果需要多于一个表达式的逻辑,应当使用计算属性。举例<script> var vm=new Vue({ el:"#app", methods: {//方法必须定义在Vue的methods对想中,v-on事件
2020-08-23 18:47:55
286
原创 Vue基本语法
1.导入vue.js<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.min.js"></script>2.定义vue对象<script> var vm=new Vue({ el:"#app", data:{ message:"hello,vue!" } })</script>3.view模板<
2020-08-22 16:10:50
274
原创 Ajax
编写controller,返回消息或字符串或JSON的数据@Controllerpublic class TestAjaxController { @RequestMapping("/ajax") public @ResponseBody String ajax(String username,String password){ System.out.println(username); if (username.equals("张三")&am.
2020-08-20 19:54:05
152
原创 监听器
监听器接口1.介绍:1)一组来自于Servlet规范下接口,共有8个接口。在Tomcat存在servlet-api.jar包2)监听器接口需要由开发人员亲自实现,Http服务器提供jar包并没有对应的实现类3)监听器接口用于监控【作用域对象生命周期变化时刻】以及【作用域对象共享数据变化时刻】2.作用域对象:1)在Servlet规范中,认为在服务端内存中可以在某些条件下为两个Servlet之间提供数据共享方案的对象,被称为【作用域对象】2)Servlet规范下作用域对象:ServletCon
2020-08-17 11:01:58
746
原创 数据共享
ServletContext接口:1.介绍:1)来自于Servlet规范中一个接口。在Tomcat中存在servlet-api.jar在Tomcat中负责提供这个接口实现类2)如果两个Servlet来自于同一个网站。彼此之间通过网站的ServletContext实例对象实现数据共享3)开发人员习惯于将ServletContext对象称为【全局作用域对象】2.工作原理:每一个网站都存在一个全局作用域对象。这个全局作用域对象【相当于】一个Map.在这个网站中OneServlet可以将一个数据
2020-08-17 10:29:54
1135
原创 线程同步(sychronized)
synchronized分为两种:synchronized方法和synchronized块synchronized方法控制对对象的访问,每个对象对应一把锁,每个synchronized方法都必须获得调用该方法的锁才能执行,否则线程阻塞,方法一旦执行就独占该锁,直到该方法释放锁,后面被阻塞的线程才能获得这个锁缺点:若将一个大的方法声明为synchronized将会影响效率。示例:public class Tinckt { public static void main(String[] ar
2020-08-16 11:18:36
241
原创 通过Url下载数据
public static void main(String[] args) throws Exception { //创建一个网址的工具对象 URL url=new URL("https://zaixianke.com/yq/all"); //链接网址 URLConnection urlConnection = url.openConnection(); //获取读取网页内容的流 InputStream in.
2020-08-15 08:17:47
371
原创 HttpServletRequest接口
1.介绍:1)HttpServletRequest接口来自于Servlet规范中,在Tomcat中存在servlet-api.jar2)HttpServletRequest接口实现类由Http服务器负责提供3)HttpServletRequest接口负责在doGet/doPost方法运行时读取Http请求协议包中信息4)开发人员习惯于将HttpServletRequest接口修饰的对象称为【请求对象】2.作用:1)可以读取Http请求协议包中【请求行】信息protected void doGe
2020-08-13 13:37:42
405
原创 HttpServletResponse接口
1.介绍:1)HttpServletResponse接口来自于Servlet规范中,在Tomcat中存在servlet-api.jar2)HttpServletResponse接口实现类由Http服务器负责提供3)HttpServletResponse接口负责将doGet/doPost方法执行结果写入到【响应体】交给浏览器4)开发人员习惯于将HttpServletResponse接口修饰的对象称为【响应对象】2.主要功能:将执行结果以二进制形式写入到【响应体】设置响应头中[content-t
2020-08-13 13:32:58
382
原创 配置Aop
springmvc.xml配置文件中主要就是要配置好<aop:aspectj-autoproxy proxy-target-class="true"></aop:aspectj-autoproxy><?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:mvc="http://www.springf
2020-08-13 13:02:22
145
原创 IO流
字节流、节点流、输入流从具体的文件中读取内容到控制台中//字节流、节点流、输入流 //从具体的文件中读取内容到控制台中 @Test public void testFileInputStream() { //创建一个file对象 File file=new File("E:\\desktop\\heima_ssm\\heima_ssm_web\\src\\main\\java\\com\\zxl\\controller\\LogAop.java"
2020-08-12 18:54:27
124
原创 echarts展示后台数据
jsp部分代码<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %><%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %><html><head> <title>Title</title> <script src="${
2020-08-09 00:17:41
600
原创 页面端标签控制权限
导入依赖<dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-taglibs</artifactId> <version>version</version> </dependency>jsp页面导入<%@taglib uri="http://ww
2020-06-14 11:49:12
219
原创 服务器端方法级权限控制 :JSR-250注解、@Secured注解和支持表达式的注解,以及拦截后的异常处理
导入依赖<dependency> <groupId>javax.annotation</groupId> <artifactId>jsr250-api</artifactId> <version>1.0</version></dependency>配置文件<security:global-method-security jsr
2020-06-14 11:02:20
520
原创 MyBatis 中 @Param 注解的四种使用场景
有一些小伙伴觉得 MyBatis 只有方法中存在多个参数的时候,才需要添加 @Param 注解,其实这个理解是不准确的。即使 MyBatis 方法只有一个参数,也可能会用到 @Param 注解。但是,在你总结出规律之前,你可能会觉得莫名其妙,有的时候一个参数明明不用添加 @Param 注解,有的时候,却需要添加,不添加会报错。有的人会觉得这是 MyBatis 各个版本差异的锅,不可否认,MyBatis 发展很快,不同版本之间的差异还挺明显的,不过这个加不加 @Param 注解的问题,却并不是版本的锅!今
2020-06-11 16:21:41
136
原创 Spring-Security(数据库认证)
web.xml配置 <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring-security.xml</param-value> </context-param> <listener> <listener-c
2020-06-06 14:55:30
308
原创 订单分页查询
使用PageHelper进行分页,PageHelper是国内非常优秀的一款开源的mybatis分页插件,它支持基本主流与常用的数据库,例如mysql、 oracle、mariaDB、DB2、SQLite、Hsqldb等。第一步在 pom.xml 中添加如下依赖: <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</ar
2020-06-04 10:30:17
645
原创 SSM整合二(配置文件)
applicationContext.xml<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/conte
2020-05-30 11:12:14
96
原创 SSM整合
导入的依赖<properties> <spring.version>5.0.2.RELEASE</spring.version> <slf4j.version>1.6.6</slf4j.version> <log4j.version>1.2.12</log4j.version> <shiro.version>1.2.3</shiro.version> <my
2020-05-26 11:28:25
112
原创 文件上传
传统方式上传文件导入依赖</dependency> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.1</version> </dependency>
2020-05-24 11:13:52
141
原创 @ResponseBody响应json数据
@ResponseBody响应json数据导入依赖<!--导入Jackson的包--> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.9.0</vers
2020-05-23 16:59:51
308
原创 2020-04-23
Springboot获取前端的参数 https://blog.youkuaiyun.com/weixin_36771703/article/details/83345737?utm_source=app
2020-04-23 10:12:46
109
原创 Java中 数据导出excell表
Java中 数据导出excell表导入依赖 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.10-FINAL</version> </dependency>...
2020-03-28 11:59:39
97
原创 浅谈@RequestMapping @ResponseBody 和 @RequestBody 注解的用法与区别
浅谈@RequestMapping @ResponseBody 和 @RequestBody 注解的用法与区别转载(https://blog.youkuaiyun.com/ff906317011/article/details/78552426)
2020-03-28 11:03:17
91
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人