202102-21 Spring MVC的参数绑定和返回值问题 一:参数绑定参数绑定过程在springMVC中,从前端(页面:jsp…)发送请求到后端(controller…),会包含一些数据,数据是如何到达Controller,这个过程就是参数绑定过程1、默认支持的类型SpringMVC有支持的默认的参数类型,在方法上给出默认的参数类型的声明就可以直接使用HttpServletRequestrequest:通过request对象来获取请求的信息HttpServletResponseresponse:通过response来处理响应信息HttpSessionsession:通过sessio... 继续阅读 >
202102-21 解决idea spring boot 修改html等不重启即时生效的问题 一、spring-boot-devtools在pom中直接引入依赖<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><optional>true</optional></dependency>设置以下两项(第一项如已设置直接设置第二项)1)“File”->“Settings”->“Build,Execution,Deplyment”->“Compiler”,选中打勾“Buildprojectautomatically”。2)组合键:“Shift+Ctrl+Alt+/”,选择“Regis... 继续阅读 >
202102-21 Spring Cloud引入Eureka组件,完善服务治理 简介NetflixEureka是一款由Netflix开源的基于REST服务的注册中心,用于提供服务发现功能。SpringCloudEureka是SpringCloudNetflix微服务套件的一部分,基于NetflixEureka进行了二次封装,主要负责完成微服务架构中的服务治理功能。SpringCloudEureka是一个基于REST的服务,并提供了基于Java的客户端组件,能够非常方便的将服务注册到SpringCloudEureka中进行统一管理。部署EurekaServer1.创建一个名... 继续阅读 >
202102-21 Spring MVC 处理一个请求的流程 一个请求从客户端发出到达服务器,然后被处理的整个过程其实是非常复杂的。本博客主要介绍请求到达服务器被核心组件DispatcherServlet处理的整理流程(不包括Filter的处理流程)。1.处理流程分析Servlet处理一个请求时会调用service()方法,所以DispatcherServlet处理请求的方式也是从service()方法开始(debug的话建议从DispatcherServlet的service方法开始debug)。FrameworkServlet重写了HttpServlet的service方法,这个servic... 继续阅读 >
202102-21 Spring Boot应用上传文件时报错的原因及解决方案 问题描述SpringBoot应用(使用默认的嵌入式Tomcat)在上传文件时,偶尔会出现上传失败的情况,后台报错日志信息如下:“Thetemporaryuploadlocationisnotvalid”。原因追踪这个问题的根本原因是Tomcat的文件上传机制引起的!Tomcat在处理文件上传时,会将客户端上传的文件写入临时目录,这个临时目录默认在/tmp路径下,如:“/tmp/tomcat.6574404581312272268.18333/work/Tomcat/localhost/ROOT”。而操作系统对于/tmp目录... 继续阅读 >
202102-20 spring security认证异常后返回中文提示的问题 1.加载中文提示类@ConfigurationpublicclassReloadMessageConfig{/***加载中文的认证提示信息**@return*/@BeanpublicReloadableResourceBundleMessageSourcemessageSource(){ReloadableResourceBundleMessageSourcemessageSource=newReloadableResourceBundleMessageSource();//.properties不要加到后面messageSource.setBasename("classpath:messages_zh_CN");returnmessageSo... 继续阅读 >
202102-20 关于IDEA中spring-cloud-starter-alibaba-nacos-discovery 无法引入问题 1、spring-cloud-starter-alibaba-nacos-discovery这里依赖报红,无法引入,或显示无法找到,更换版本也无法解决,启动项目后nacos中也无法发现服务①错误显示unknown就需要加上版本号2、解决①修改IDEA中的maven配置,把下面这个属性修改为FailFast(原来默认为default)②给依赖加上版本③刷新maven,重启项目3、查看nacos服务发现,就成功了更多精彩内容关注公众号【Java技术迷】到此这篇关于关于IDEA中spring-cloud-starter-ali... 继续阅读 >
202102-02 Spring Security OAuth 自定义授权方式实现手机验证码 SpringSecurityOAuth默认提供OAuth2.0的四大基本授权方式(authorization_code\implicit\password\client_credential),除此之外我们也能够自定义授权方式。先了解一下SpringSecurityOAuth提供的两个默认Endpoints,一个是AuthorizationEndpoint,这个是仅用于授权码(authorization_code)和简化(implicit)模式的。另外一个是TokenEndpoint,用于OAuth2授权时下发Token,根据授予类型(GrantType)的不同而执行不同的验证方... 继续阅读 >
202102-01 普通类注入不进spring bean的解决方法 解决问题:我在做移动端accessToken的使用遇到一个问题,就是普通类死活注入不进去springbean,我和同事雷杰通过各种注解,xml配置搞了好久都搞不定,这里插个眼,有空补一下spring,得深入研究一下解决办法:后面通过一个spring工具类搞定,这里贴上代码1、引入这个springUtil类2、通过构造方法注入贴上SpringUtils代码:packagecom.dt.base.weixin.util;importorg.springframework.aop.framework.AopContext;importorg.sprin... 继续阅读 >
202102-01 在Spring Data JPA中引入Querydsl的实现方式 一、环境说明基础框架采用SpringBoot、SpringDataJPA、Hibernate。在动态查询中,有一种方式是采用Querydsl的方式。二、具体配置1、在pom.xml中,引入相关包和配置插件。(1)引入包(注:不需要版本号,SpringBoot会自动匹配合适的版本)<!--Querydsl相关包--><dependency><groupId>com.querydsl</groupId><artifactId>querydsl-jpa</artifactId></dependency><dependency><groupId>com.querydsl</groupId>... 继续阅读 >
202102-01 解决springjpa的局部更新字段问题 问题描述:使用springjpa更新数据时,有时候我们需要更新部分字段,对已有的内容保持不变,通常我们可以通过Spring提供的bean工具类BeanUtils来实现解决方法:BeanUtils复制对象,BeanUtils中的构造方法属性中可以通过传入更新时忽略的属性值来实现选择性复制原对象的字段。更新部分字段时,我们仅需要传入复制后的字段即可。解析和实现:BeanUtils的构造方法:具体更新部分字段的步骤:查询出待更新对象的原有信息通过传入的更新... 继续阅读 >
202102-01 Spring Cloud Ribbon配置详解 本节我们主要介绍Ribbon的一些常用配置和配置Ribbon的两种方式。常用配置1.禁用Eureka当我们在RestTemplate上添加@LoadBalanced注解后,就可以用服务名称来调用接口了,当有多个服务的时候,还能做负载均衡。这是因为Eureka中的服务信息已经被拉取到了客户端本地,如果我们不想和Eureka集成,可以通过下面的配置方法将其禁用。#禁用Eurekaribbon.eureka.enabled=false当我们禁用了Eureka之后,就不能使用服务名... 继续阅读 >
202101-29 Spring的@Validation和javax包下的@Valid区别以及自定义校验注解 1.后台参数校验SpringValidation验证框架对参数的验证机制提供了@Validated(SpringJSR-303规范,是标准JSR-303的一个变种),javax提供了@Valid(标准JSR-303规范),配合BindingResult可以直接提供参数验证结果spring提供的验证:org.springframework.validation.annotation.Validated;javax提供的验证:javax.validation.Valid;在检验Controller的入参是否符合规范时,使用@Validated或者@Valid在基本验证功能上没有太多区别。... 继续阅读 >
202101-29 spring事务隔离级别、传播机制以及简单配置方式 一、spring支持的事务声明方式1.编程式事务当系统需要明确的,细粒度的控制各个事务的边界,应选择编程式事务。2.声明式事务当系统对于事务的控制粒度较粗时,应该选择申明式事务,通过<tx>标签和<aop>切面形式在xml中进行配置。3.无论你选择上述何种事务方式去实现事务控制,spring都提供基于门面设计模式的事务管理器供选择,如下是spring事务中支持的事务管理器事务管理器实现(org.springframework.*)... 继续阅读 >
202101-29 Spring Boot 整合 TKMybatis 二次简化持久层代码的实现 经常用MyBatis的的都知道,使用这个框架存在一个非常不友善的问题就是,就是每操作一个单表就需要自己手写一个xml文件,虽然说可以用工具生成xml和实体类可以解决这个问题,但是二次开发的时候对某个表字段进行修改的时候,生成xml文件就不现实啦。最近发现tk.mybatis就非常好的解决了这个问题。tk.mybatis整合了MyBatis框架,在其基础上提供了很多工具,封装了常用的增删改查SQL语句,可以让我们的开发效率更高。... 继续阅读 >
202101-27 Spring Cloud Gateway 使用JWT工具类做用户登录校验功能 1.JWT测试/***@Auther:csp1999*@Date:2021/01/24/19:29*@Description:JWT测试*/publicclassJwtTest{/***创建Jwt令牌:**JWT=头部Header+载荷playload+签名signature*/@TestpublicvoidtestCreateJwt(){//构建jwt令牌//1.头部Header:描述关于该JWT的最基本的信息,例如其类型以及签名所用的算法等JwtBuilderbuilder=Jwts.builder().setId("8989")//设置令牌唯一编号.... 继续阅读 >