spring
高振05
学习箴言:得之不难,失之必易。
展开
-
springboot+shiro+jwt完成用户鉴权
整体思路主要是利用shiro的鉴权机制,自定义鉴权的方法:1、登录接口,验证登录信息后,通过JWTUtil生成token,通过JWTtoken对象(实现AuthenticationToken中接口)存入subject中2、接口拦截逻辑,通过shiroConfig的shiroFilter确定匹配规则,在匹配规则上匹配访问的路径需要走自定义的JwtFilter(关键代码filterChainDefinitionMap.put("/**", "jwt");)3、自定义的JwtFiler主要是为了获取t原创 2022-04-25 15:27:09 · 1227 阅读 · 0 评论 -
springboot整合shiro完成基本的登录验证
感谢原链接教你 Shiro 整合 SpringBoot,避开各种坑 - 简书本文做了理解处理,注:本文只简要说明实现方式,不涉及原理介绍1、引入依赖<!--shiro --> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-spring</artifactId>原创 2022-03-14 16:00:24 · 677 阅读 · 0 评论 -
XXL-JOB的使用思路
当定时任务进行多节点部署时就会出现重复计算的问题,这时候就需要用到一个分布式定时任务的管理插件,确保多节点的情况下只有一个服务节点执行,原本项目中使用的是shedlock,好处是代码简单(其他有专门介绍),只需要引入jar包和注解即可实现,不会改变原有的业务服务架构。但是随着业务的发展定时任务越来越多,个性化的定时需求也出现了,shedlock出现了个别定时任务偶尔没有执行的情况,因为没有检测机制和可视化的维护界面,再非常多的定时任务体系中很难定位问题原因,于是选在了有监控体系XXL-JOB...原创 2022-03-03 11:12:24 · 3184 阅读 · 0 评论 -
利用quartz实现定时任务的定时时间动态化
本文是借鉴springboot整合Quartz实现动态配置定时任务_牛奋lch-CSDN博客_springboot定时任务动态配置编写。业务需求场景:定时任务执行时间经常需要变动实现逻辑:1、创建一个定时任务(ScheduledTask)package com.gaozhen.webservicedemo.service;import org.springframework.context.annotation.Configuration;import org.springfra原创 2021-11-11 15:15:38 · 1197 阅读 · 0 评论 -
使用TaskScheduler实现任务执行时间自定义
业务场景:客户可以自由选择的一个未来时间来执行一个任务思路:先把任务方法放在线程下待执行,利用spring自带的TaskScheduler类来执行这个线程具体代码如下:1、执行任务的线程public class TestRun implements Runnable { @Override public void run() { System.out.println("执行任务============"); }}2、注入TaskSchedule原创 2021-11-09 15:00:42 · 906 阅读 · 0 评论 -
前后端分离项目服务代理配置的三种组合方式(前端nginx+gateway+后端服务)
前提条件:前端config.js访问后端使用相对路径,baseurl为空前端页面wlgl:localhost:2021后端portal:localhost:8055后端代理gateway:localhost:2000nginx+gateway+后端服务的代理模式就出现了三种组合方式:1、nginx再最前面,同时代理静态资源和gateway,gateway代理后端这种情况适合鉴权体系不需要拦截前端页面的情况,好处的静态资源直接被客户机访问,效率较高。具体配置如下:nginx原创 2021-09-22 15:21:48 · 6682 阅读 · 0 评论 -
spingboot集成shedlock实现分布式定时任务
一、引用jar包原创 2021-07-27 15:30:51 · 432 阅读 · 0 评论 -
sprintboot自定义异常,比如处理因参数类型错误引发的HttpMessageNotReadableException异常
HttpMessageNotReadableException是spingboot自身的异常,我们代码中的普通的异常捕获是抓不到的,而往往项目安全中是不允许直接抛出异常信息的,必须自定义转换,如何进行转换的,只需要自定义个全局异常的处理方式,具体代码借鉴了JE_GE的博客package com.jege.spring.boot.exception;import java.util.Set;import javax.validation.ConstraintViolation;import j转载 2021-01-19 14:12:30 · 2680 阅读 · 0 评论 -
阿里云rocketMQ中groupname、topic和tag的使用方法和逻辑关系
先对三者的概念做个个人理解的介绍:topic是消息通道的重要标识,可以理解成消息的标题,生产者和消费者必须在用一个topic下才能通讯tag可以理解为topic的二级标签,同一个topic可以发送不用的tag消息,消费者可以指定接收某个tag的消息,也可以使用通配符如“*”,null来接收所有tag的消息,是对消息的进一步分类groupname是组的感念,理解起来比较抽象,groupname可以配置也可以不配置,不配置默认都在一个组。但是不影响消息的正常发送和接收,但是会影响到消息的消费者会被谁原创 2020-12-30 14:39:01 · 7090 阅读 · 0 评论 -
springboot集成阿里云rocketMQ代码示例
集成目标:完成生产者发送消息,消费者接收消息的整个流程集成步骤: 1、引入jar包依赖 <!--rocketMq消息队列--> <dependency> <groupId>org.apache.rocketmq</groupId> <artifactId>rocketmq-client</artifactId> <ver..原创 2020-12-30 14:28:08 · 1780 阅读 · 0 评论 -
springboo集成axis2实现webservice服务
先搭建一个普通的springboot项目,这里不再赘述。配置文件:server: port: 8080 servlet.contextPath: /webservicespring: application: name: webservice cloud: nacos: discovery: ip: 172.16.130.181 server-addr: 172.16.205.54:8048 #server-原创 2020-09-28 11:22:38 · 1692 阅读 · 3 评论 -
使用IDEA搭建springcloud父工程
使用IDEA搭建springcloud微服务(一)----父工程的搭建 ...转载 2020-07-10 11:08:43 · 467 阅读 · 0 评论 -
springcloud gateway 代理静态路由的配置方法
应用场景:1、目前大多是前后端分离的项目,有些安全权限的要求需要前端页面的访问也要经过gateway来管理2、需要与gateway解决前后端分离项目的跨域问题解决思路:用nginx或者tomat等容器启动前端项目,然后用静态路由的方式配置到gateway中具体配置如下:server: port: 8072 tomcat: uri-encoding: UTF-8...原创 2020-05-07 15:49:49 · 5366 阅读 · 1 评论 -
一台电脑存在多个网关(多个虚拟ip)的情况下指定ip注册到服务中心的配置
如果一台电脑存在多个网关(多个虚拟ip),这种情况多出现于,电脑有虚拟机或者同时连接内外网的配置情况出现ipconfig的情况下有多个ip地址,注册到注册中心时可能不是自己想指定的ip地址,需要在application.yml文件加一行配置ipAddress: 172.16.130.107示例如下:server: port: 8058 servlet.contextPa...原创 2020-04-21 14:28:32 · 1785 阅读 · 0 评论 -
gateway使本地相对路径和网关相对路径保持一致的路由配置
gateway网关端口号为8051,本地项目端口号为8055,实现效果: 本地路径localhos:8055/test-demo/login 网关路径192.168.11.55:8051/test-demo/login都能访问到该接口关键配置:gateway:server: port: 8051 tomcat: uri-encodi...原创 2020-04-21 14:23:33 · 2130 阅读 · 0 评论 -
springboot启动切换注册服务中心的脚本(nacos和eureka)
#!/bin/shSERVICE_NAME=exampleVERSION=1.5.3if [ ! -d ./logs ]; then mkdir logsfiif [ "$1" == "nacos" ]; then REGISTER_CENTER="nacos" REGISTER_CENTER_PARAM="--spring.autoconfigure...原创 2020-04-10 11:36:52 · 941 阅读 · 0 评论 -
springboot整合rocketMQ示例
1、引入pom.xml <dependency> <groupId>org.apache.rocketmq</groupId> <artifactId>rocketmq-client</artifactId> <version>4.3...原创 2020-03-06 12:54:02 · 898 阅读 · 0 评论 -
springboot整合thymeleaf
1、引用maven包<!-- ThymeLeaf 依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</...原创 2020-03-04 15:13:58 · 237 阅读 · 0 评论 -
springcloud之feign如何传递对象作为参数(转)
新建maven工程项目,关于feign的项目在这里就不说了,如何创建?自己百度去,下面只说调用服务提供者如何将对象作为参数?(1)导包,如图:(2)在配置文件中添加(3)在service接口中添加(4)在服务提供者中添加至此,完毕!!!!!! ...转载 2019-05-27 10:19:08 · 16605 阅读 · 4 评论 -
前后端分离的项目部署,解决跨域问题的思路
1、前段单独发布tomcat服务,service.xml的项目名设为空,路径设为dist地址,记录tomcat ip和端口号2、打springboot jar包(最好配置项目名) 记录ip和端口号3、在nginx配置统一的域名:后端服务用项目名作为统一访问标识4、前段访问后端接口为域名+接口(不用再包含项目名)如:配置后前段需要设置的接口方位地址为:http://bsst...原创 2019-07-03 11:36:48 · 1866 阅读 · 0 评论 -
SpringCloud整合zuul实现统一地址的最基础应用
SpringCloud整合zuul实现统一地址一、本文章只讲实现SpringCloud整合zuul操作部分,原理和逻辑请参考其他介绍目的:实现cloud多个微服务的统一访问地址,供前段API接口调用效果图:testFeign是photo-stock项目的controller接口,地址是zuul的地址具体步骤如下:(注册中心eureka】生产消费的项目搭建请参考其他博客,这里...原创 2019-05-27 17:24:25 · 1074 阅读 · 0 评论 -
springcloud引入swagger(转)
一、引入依赖:<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <v...转载 2019-05-27 10:23:52 · 1249 阅读 · 0 评论 -
JAVA高级工程师课程笔记整理——(十一)EL表达式与JSTL
(十一)EL表达式与JSTL一、el表达式 java内省机制 将javaBean的set和get方法 ${subject.subjectName}调用javaBean的 get方法获取 语法: ${} name一样的情况下获取优先级 page-->request-->session-->applic原创 2017-06-04 09:18:55 · 398 阅读 · 0 评论 -
JAVA高级工程师课程笔记整理——(十)Servlet
(十)Servlet 将显示与接受请求、处理请求的工作分开 运行在服务器端的java程序 jsp和servlet的关系 jsp最终会转换成servlet java程序 创建servlet a.实现servlet接口 b.继承GenericServlet c.继承HttpServlet原创 2017-06-02 10:51:47 · 539 阅读 · 0 评论 -
JAVA高级工程师课程笔记整理——(八)tomcat与九大内置对象
(八)tomcat与九大内置对象tomcat B/S 浏览器/服务器 请求:request 响应: response C/S: 客户端/服务器 URL: 网址 URI: 范围包括url http https: 更安全的http原创 2017-05-29 09:22:07 · 752 阅读 · 0 评论 -
JSTL日期格式化
JSTL日期格式化后台: request.setAttribute("today",new Date());前台: //不写type属性,和type="date"等价 //type的默认值为date //dateStyle="m转载 2017-05-24 16:28:53 · 402 阅读 · 0 评论 -
WEB阶段中文乱码解决方式总结:
WEB阶段中文乱码解决方式总结:以设置utf-8为例:一、设置jsp页面(标红的三处) pageEncoding="UTF-8"%>二、post请求:request.setCharacterEncoding("utf-8");三、get请求:单个处理:new String("中文".getBytes("iso-8859-1"),"utf-8")Tomc原创 2017-04-18 14:57:02 · 274 阅读 · 0 评论 -
Context上下文的理解,此文比较通俗易懂转发给大家看看
浅谈上下文(context)Context(上下文)在Java编程中是一个非常重要的概念,而且出现频率很高;但是又是一个比较难理解的东西,或许“上下文”这种翻译也不太恰当,我觉得如果找不到一个合适的中文意思,倒不如不翻译。下面列举几个涉及Context的例子。第一、ServletContext是Servlet中最大的一个接口,呈现了web应用的Servlet视图。它代表当前的web应用,所转载 2017-04-14 07:53:58 · 3715 阅读 · 0 评论 -
Path路径小细节:转发和重定向的Path参数的意义却是不同的
一、重定向response.sendRedirect(String path)path这个参数可以是绝对路径URL也可以是相对路径(建议使用绝对路径)。使用绝对路径时可以用request.getContextPath()获得工程路径如:response.sendRedirect(request.getContextPath()+"/admin.jsp");二、转发request原创 2017-04-10 11:44:37 · 920 阅读 · 0 评论 -
获取工程文件绝对路径的两个方法
例如:web工程名:projectservletDemo路径:src下面cn.bdqn.demo.servletDemo.java 其配置的web.xml路径为/servlet/servletDemotest.jsp路径:project/WebRoot/jsp/test.sp1、通过Test.java类获取src下"1.properties"的绝对路径Test.class.ge原创 2017-04-09 16:31:35 · 711 阅读 · 0 评论 -
利用../的规则简易理解路径跳转
例如:web工程名:projectservletDemo路径:src下面cn.bdqn.demo.servletDemo.java 其配置的web.xml路径为/servlet/servletDemotest.jsp路径:project/WebRoot/jsp/test.sp;那么servletDemo.java和test.jsp怎么实现互相跳转呢?理解这个路径跳转先要知晓下面原创 2017-04-09 13:51:08 · 813 阅读 · 0 评论 -
zuul通过zuulFilter实现token的权限认证和增加公共参数
整理思路:1、用户登录或者注册后返回token给前台,并同时以userId为key,token为value存入redis2、通过实现zuulFilter接口拦截所有通过的路由接口(单独放行登录和注册),获取请求的cookie或者请求头有没有的userId和token值跟redis预存的键值对比,相同则放行,不同则鉴权失败主要代码实现如下:filterType(): Filter 的...原创 2019-05-31 17:36:53 · 9536 阅读 · 0 评论 -
SpringBoot多数据源中的分布式事务
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声...转载 2019-11-26 16:22:28 · 757 阅读 · 0 评论 -
springboot集成fastDFS完成文件上传
springboot集成fastDFS完成文件上传fastDFS是一个开源的分布式的文件服务器,安装和配置方法请参考其他博客,这里安装配置完毕后的springboot配置使用方法安装完成后需要两个IP地址:183.207.183.130:22122 (服务地址,一般是固定的)http://183.207.183.130:18001(图片展示地址,Nginx配置的地址)/grou...原创 2019-10-11 10:52:06 · 848 阅读 · 0 评论 -
spring->aop中proxy-target-class属性的含义以及动态代理机制
proxy-target-class="false" //使用jdk动态代理proxy-target-class="true" //使用cglib动态代理jdk动态代理: 只针对实现接口的类生成代理,getBean的强制转换类型必须是接口cglib动态代理: code generation library 直接对类生成代理,getBean的强制转换类型可以是实现类原创 2017-05-19 16:19:15 · 2674 阅读 · 0 评论 -
DispatherServlet配置url-pattern中的一个小细节
DispatherServlet配置url-pattern中的一个小细节我们发现如果我们把url-pattern写成了/*会一直报404错误而修改成/就好了那么这是为什么呢?"/"和"/*"的区别:"/"只会拦截不带后缀的请求,如/welcome"/*"不但包含/的作用,还可以拦截带后缀的请求,如/welcome.jsp我们在定义servlet的访问地址时候原创 2017-05-22 12:22:43 · 1303 阅读 · 1 评论 -
关于springmvc中web.xml配置dispatherservlet的pattern中"/"的疑问解释
“/”是指用户请求如果没有在web.xml没有找到对应的精确匹配的url-pattern的servlet,就会自动进入dispatherservlet。所以原则上“/”是可以匹配所有的用户请求,但是“.jsp”结尾则不会进入dispatherservlet这是因为jsp就是一个被tomcat默认配置的servlet,所以“.jsp”结尾的请求只会精确匹配到它对应的servlet,而不会原创 2017-05-26 17:16:02 · 1344 阅读 · 0 评论 -
关于springMVC文件上传过程中一个有意思的小细节
大家在做文件上传过程中,有没有发现一个奇怪的现象:我的文件明明上传成功,在tomcat的appwabs的工程目录里也看到了我上传的图片,但是过会回头再看时又莫名其妙的消失了。。。经过一番挣扎实验后才发现,原来是我们上传文件操作后,仅仅是把图片上传到了tomcat目录下了,而我们工程目录下并没有我们上传的图片,因此当我们重新部署工程的时候,就把空的文件覆盖掉了原来的那个图片。你遇到了原创 2017-05-26 10:14:08 · 451 阅读 · 0 评论