有时候在Controller中要redirect跳转到某一个地址,例如: @RequestMapping(value = "/somepath") public String somePath(HttpSession session) { User user = (User) session.getAttribute("user"); if (user != null) { return "someView"; } return "redirect:/login"; } // or @RequestMapping(…

2023-08-05 0条评论 158点热度 0人点赞 admin 阅读全文

遇到一个Spring的项目,是使用的tomcat容器启动的,配置好了tomcat启动后,报错如下: Artifact someproject:war exploded: Error during artifact deployment. See server log for details. 然后我就去找Console下的日志(包括Server、Tomcat Localhost Log、Tomat Catalina Log)都没有相关日志,找不到日志,也就无从排查原因。 在src/resources下新建一个log…

2023-07-16 0条评论 237点热度 0人点赞 admin 阅读全文

如题,记录下我的项目中用到的logback-spring.xml的配置设置,基本上对于普通的项目都是够用的,我已经使用在大部分的项目中。 配置分两种情况 开发环境会比较简单,只输出到console调试即可,如下: <?xml version="1.0" encoding="UTF-8"?> <!-- 日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR < FATAL,如果设置为WARN,则低于WARN的信息都不会输出 -->…

2022-11-14 0条评论 317点热度 0人点赞 admin 阅读全文

有一个JavaWeb-SpringMVC的项目(还用到了SpringSecurity),也需要接入Knife4j文档,按照官方的示例(最后的更新日期还是几年前的),并没有成功,结合自己摸索和实践,成功集成好了,故写出来详细的步骤,供参考。 pom.xml增加如下依赖(我这里的情况是需要加载jackson的相关的3个依赖包,看实际情况): <!-- knife4j-spring-mvc --> <dependency> <groupId>com.github.xiaoymin<…

2022-11-03 0条评论 540点热度 0人点赞 admin 阅读全文

IDEA下需要对一个普通的SpringWeb项目(使用的是Maven构建)的编译出来的class文件进行混淆,准备使用proguard来进行。 我找到了一个使用proguard的maven编译插件,项目地址是:https://github.com/wvengen/proguard-maven-plugin 首先修改pom.xml,在project下,使用如下内容(配置文件有注释,可根据自己实际情况做调整): <build> <plugins> <!-- ProGuard混淆插件--&g…

2022-11-02 0条评论 358点热度 0人点赞 admin 阅读全文

一、Spring Native 是什么? Spring Native 可以通过 GraalVM 将 Spring 应用程序编译成原生镜像,提供了一种新的方式来部署 Spring 应用。Spring Native 支持 Java 和 Kotlin。 这个项目的目标是寻找 Spring JVM 的替代方案,提供一个能将应用程序打包,并运行在轻量级容器的方案。期望能够在 Spring Native 中支持所有的 Spring 应用程序(几乎不用修改代码)。 二、GraalVM是什么? GraalVM 是 Oracle 发…

2022-10-06 0条评论 497点热度 0人点赞 admin 阅读全文

在开发中有时候经常需要一些Http请求,请求数据,下载内容,也有一些简单的分布式应用直接使用Http请求作为跨应用的交互协议。 在Java中有不同的Http请求方式,主要就是HttpURLConnection或者ApacheHttpClient,另外还有比较注明的OKHttp,或者国内常用的Hutool; Spring也内置了RestTemplate作为Http请求的工具类,简化了很多操作,虽然Spring5推出了WebClient,但是整体感觉还是RestTemplate用起来更简单方便一些。 这里记录分享下Re…

2022-10-02 0条评论 651点热度 0人点赞 admin 阅读全文

在使用Spring/SpringBoot做文件服务(对外提供文件流下载等)的时候,如果是音频视频,最好是提供断点续传功能,这样能可以支持客户端软件的断点续传功能,或者更好的音视频播放的播放、拖动等功能。 实现方法1 新版本的Spring或者SpringBoot是直接支持的,示例如下: // 也可以是video/* 或者下载文件application/octet-stream @GetMapping(value = "/audio/some.mp3", produces = "audio/*") public Res…

2022-08-25 0条评论 1075点热度 0人点赞 admin 阅读全文

在用SpringSecurity做登录权限控制的时候,例如后台做代用户登录功能的时候,需要以指定某个用户登录账号。这里是以session作为登录状态管控的。 // 根据自己的业务获得登录用户的账号 Account account = systemDao.getAccountByNo(loginNo); // 组装出token UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken( account, nu…

2022-08-22 0条评论 414点热度 0人点赞 admin 阅读全文

Spring中的Service方法如果声明了事务,例如@Transactional(propagation = Propagation.REQUIRED),那么调用的时候,Spring会自动管理事务,遇到Exception,会rollback回滚,但是可能会遇到这种情况:同一个Service类中的方法,要调用本类中的其他方法(尽管这个方法也声明了事务),会发现调用的那个方法没有开启事务。 Spring开启事务,需要两个条件 首先需要方法声明是public的 声明事务,可以是在Service上加@Transactio…

2022-05-05 0条评论 594点热度 0人点赞 admin 阅读全文