202010-10 springboot 自定义权限标签(tld),在freemarker引用操作 第一步:引入jar包<dependency><groupId>javax.servlet.jsp</groupId><artifactId>jsp-api</artifactId><version>2.2.1-b03</version></dependency>第二步:自定义标签类importjava.util.Map;importjava.util.Set;importjavax.servlet.http.HttpServletRequest;importorg.jasig.cas.client.authentication.AttributePrincipal;importorg.springframework.web.servlet.tags.RequestContextAwareTag;i... 继续阅读 >
202010-10 浅谈SpringBoot主流读取配置文件三种方式 读取配置SpringBoot配置文件三种方式一、利用Bean注解中的Value(${})注解@Data@ComponentpublicclassApplicationProperty{@Value("${application.name}")privateStringname;}该方式可以自动读取当前配置文件appliation.yml 或者application.properties中的配置值区别在于读取yml文件时候支持中文编码,peoperties需要转码二、利用@ConfigurationProperties(prefix="developer")注解@Data@ConfigurationProperties... 继续阅读 >
202010-10 springboot +redis 实现点赞、浏览、收藏、评论等数量的增减操作 springboot+redis实现点赞、浏览、收藏、评论等数量的增减操作前言第一次写博客,记录一下:最近做了一个帖子的收藏、点赞数量的功能,其实之前也做过类似的功能,因为之前一直使用的mysql总是感觉对于这种频繁需要改变的值,不应该给予Mysql过大的压力,本文章采用的是redis做了持久化。下面贴出关键代码:DataResponse是项目中使用的结果封装实体类;forumDTO是此功能的参数实体,如果有需要请留言。常量如下:privatestat... 继续阅读 >
202010-10 2020最新IDEA SpringBoot整合Dubbo的实现(zookeeper版) 首先,要在电脑上安装配置好zookeeper哦~这是我云服务器上的zookeeper状态接下来,开始整合1.准备一个dubbo-api的SpringBoot项目用来存储Entity类和Server接口的项目,配置文件无须改动。entity?User//Lombok注解相当于SetterGettertoString()@DatapublicclassUserimplementsSerializable{//序列化很重要!!!privatestaticfinallongserialVersionUID=7739394865008699599L;privateLongid;private... 继续阅读 >
202010-10 SpringBoot @Retryable注解方式 背景在调用第三方接口或者使用MQ时,会出现网络抖动,连接超时等网络异常,所以需要重试。为了使处理更加健壮并且不太容易出现故障,后续的尝试操作,有时候会帮助失败的操作最后执行成功。一般情况下,需要我们自行实现重试机制,一般是在业务代码中加入一层循环,如果失败后,再尝试重试,但是这样实现并不优雅。在SpringBoot中,已经实现了相关的能力,通过@Retryable注解可以实现我们想要的结果。@Retryable首先来看一下Spring... 继续阅读 >
202010-10 SpringBoot声明式事务的简单运用说明 关于事物的基本概念等这里就不介绍了。Spring声明式事物的实现,有两种方式;第一种是配置xml,第二种是使用相关注解(这两种方式可详见《程序员成长笔记(一)》的相关章节)。SpringBoot中默认配置了第二种方式,所以,SpringBoot直接使用注解即可。下面介绍SpringBoot通过注解开启事物的使用。SpringBoot使用事物的步骤:第一步:在启动类上开启事物支持提示:@EnableTransactionManagement注解其实在大多数情况下,不是必须的,因... 继续阅读 >
202010-10 解决Springboot get请求是参数过长的情况 问题原因Springbootget请求是参数过长抛出异常:Requestheaderistoolarge的问题错误描述java.lang.IllegalArgumentException:Requestheaderistoolarge解决方案请求头超过了tomcat的限值。本来post请求是没有参数大小限制,但是服务器有自己的默认大小。设置服务器大小:1.普通tomcat在server.xml中<ConnectorconnectionTimeout="20000"port="8080"protocol="HTTP/1.1"redirectPort="8443"maxPostSize="0"maxHttp... 继续阅读 >
202010-10 SpringBoot http post请求数据大小设置操作 背景:使用httppost请求方式的接口,使用request.getParameter("XXX");的方法获取参数的值,当数据量超过几百k的时候,接口接收不到数据或者接收为null。@RequestMapping(value="/rcv",method=RequestMethod.POST)publicResInfo<String>pullApi(HttpServletRequestrequest){Stringchannel=request.getParameter("channel");}在application.properties里添加:spring.http.multipart.max-file-size=-1spring.http.... 继续阅读 >
202010-10 记一次springboot服务凌晨无故宕机问题的解决 表述在一次服务更新后发现每天凌晨0点3秒服务准时挂,开始的时候认为是maven依赖中存在system.exit(3)类似这样的代码,但是我想了下这个代码很多客户都有用到但是只有这一个客户出现了问题,而且另外一个服务没有更新在此前几个月都是没问题的这几天也是一样无故挂了。环境windows服务器排查1、初步怀疑是内存泄漏问题,在启动脚本中加入-XX:+HeapDumpOnOutOfMemoryError-XX:HeapDumpPath=D:\heapdump.log,第二天起来一看还是... 继续阅读 >
202010-10 详解springboot项目带Tomcat和不带Tomcat的两种打包方式 1,带Tomcat的打包方式1.1,在pom.xml文件添加以下配置(目的:自定main入口和跳过Junit代码)<build><plugins><!--打包为jar时指定main入口--><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><!--这里写上main方法所在类的路径--><configuration><mainClass>com.sh.tool.YnToolApplication</mainClass></configuration... 继续阅读 >
202010-10 详解springBoot启动时找不到或无法加载主类解决办法 1.jar包错误第一步:首先鼠标键右击你的项目,点击runas——》mavenclean第二步:鼠标键右击你的项目,runas--->maveninstall;在eclipse控制台你可以看见报错的jar包;第三步:去maven仓库删除对应的jar,右击你的项目,maven-->updateproject(重新下载jar包);第四步:重复一,二步骤,找到你的启动类,runasjavaapplication;问题解决2.jdk报错打开你的项目结构,找到libraries文件夹打开:看到JRESystemLibrary后面... 继续阅读 >
202010-10 springboot多模块包扫描问题的解决方法 问题描述:springboot建立多个模块,当一个模块需要使用另一个模块的服务时,需要注入另一个模块的组件,如下面图中例子:memberservice模块中的MemberServiceApiImpl类需要注入common模块中的RedisService组件,该怎么注入呢?解决:在memberservice模块的启动类上加上RedisService类所在包的全路径的组件扫描,就像这样:注意启动类上方的注解@ComponentScan(basePackages={“com.whu.commom.redis”}),这一句实际上就已经加上... 继续阅读 >
202010-10 springboot全局字符编码设置解决乱码问题 有时候我们会发现这种问题,明明已经设置了字符编码过滤器但是还会有乱码的情况出现,这个问题令我们很是头疼,我之前也遇到过这种情况。那怎么解决呢?springboot编码格式设置有三种方式,不管使用哪种方式,总有一款适合你。1、在application.properties中设置#编码格式spring.http.encoding.force=truespring.http.encoding.charset=UTF-8spring.http.encoding.enabled=trueserver.tomcat.uri-encoding=UTF-8如果出现乱码问题,... 继续阅读 >
202010-10 springboot用controller跳转html页面的实现 在学习SpringBoot的过程中遇到一个问题,因为SpringBoot是集成了tomcat的,所以项目是打成jar包,通过SpringMVC注解的方式去运行的,所以静态页面就放在maven工程的resources目录下的templates目录下所以怎么去跳转是个问题,现在就是解决这个问题首先看项目结构 pom.xml文件依赖<!--1.创建一个Maven工程,选择jar类型项目2.引入SpringBootMaven依赖。--><!--Mavenparent目的,聚合工程、继承关系--><!--Springpar... 继续阅读 >
202010-10 SpringBoot中配置Web静态资源路径的方法 介绍:本文章主要针对web项目中的两个问题进行详细解析介绍:1-页面跳转404,即controller转发无法跳转页面问题;2-静态资源文件路径问题。项目工具:IntelijIdea,JDK1.8,SpringBoot2.1.3正文:准备工作:通过Idea创建一个SpringBoot-web项目,此过程不做赘述,创建完成后项目结构如下图:1-创建一个controller代码如下:packagecom.example.webpractice.controller;importorg.springframework.stereotype.Controller;i... 继续阅读 >
202010-10 详解SpringBoot与SpringCloud的版本对应详细版 缘起初学springcloud的朋友可能不知道,其实SpringBoot与SpringCloud需要版本对应,否则可能会造成很多意料之外的错误,比如eureka注册了结果找不到服务类啊,比如某些jar导入不进来啊,等等这些错误。下面列出来springBoot和springcloud的版本对应关系,需要配套使用,才不会出现各种奇怪的错误。关于maven仓库的版本列表spring-cloud-dependencies版本列表可查看:https://mvnrepository.com/artifact/org.springframework.cl... 继续阅读 >