问题标签 [spring5]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
spring-boot - spring boot 无法解析 thymeleaf 模板
我是 Spring 5 和 Spring Boot 的新手。我正在尝试使用 thymeleaf 创建一个 spring 5/spring boot 应用程序。我想制造一场战争,而不是使用带有 Spring Boot 的嵌入式 Web 服务器。
当我部署我的战争时,我的应用程序启动并且我可以访问 src/main/resources/static/ 中的测试 html 页面,其中包含调用我的控制器的 javascript。我可以在这些页面上执行到我的控制器和数据库的往返。
但是,当我尝试打开位于 src/main/resources/templates/testtemplate.html 的 thymeleaf 页面时,我得到了 404
相关行家:
应用:
网络配置:
在 Web 配置中,如果我删除 addResourceHandlers 方法,它不会改变任何内容。我仍然可以在 localhost:8080/ 找到我的静态页面。我尝试将这一行添加到它: registry.addResourceHandler("/**").addResourceLocations("classpath:/templates/");
当我这样做时,我可以在 localhost:8080/mytemplate.html 访问 thymeleaf 模板。但是,它显示为静态页面。片段不翻译。“th”标签似乎被忽略了。
我还尝试从我的 webconfig 中删除 templateResolver、viewResolver 和 templateEngine bean,因为我认为我可能正在覆盖一些自动配置。这没有任何效果。
我相信我的目录结构是相当标准的:
我错过了什么?
我是现代春天的新手。所以我可能会做一些愚蠢的事情。springboot 中的所有这些自动配置都非常令人沮丧,因为我不知道如何调试它在做什么。
spring-mvc - TestRestTemplate 和 spring 安全性
我正在学习春假。我正在慢慢构建一个应用程序。我使用 TestRestTemplate 进行了完整的集成测试。
但是,我刚刚开始在我的应用程序中添加 Spring Security。从字面上看,只要我添加了 spring 安全依赖项,我的测试就会失败。
我得到这样的错误:
当我调试时,它返回的尝试反序列化的对象为空。如果我在其余控制器上放置一个断点,它甚至不会到达那里。
似乎只是添加依赖项会打开很多默认值。如何在开启安全性的情况下进行测试?1)我可以以某种方式禁用测试的安全性吗?
2)我可以以某种方式不允许凭据或发送可接受的假凭据吗?(我确实看到了@WithMockUser 的示例,但这不适用于TestRestTemplate)
编辑:我尝试向我的测试类添加一个安全实现以启用匿名访问和允许:
这样做的结果是 @GetMapping 工作。我可以追踪到呼叫到达控制器。但是@PostMapping 仍然不起作用。呼叫永远不会到达控制器。帖子调用如下所示:
为什么会得到工作但不发帖???此外,为了确保没有其他问题,我再次删除了 spring-boot-starter-security 依赖项和所有相关代码。突然间一切正常。所以这绝对是安全配置。
java - Spring Boot V 2.4.0 使用 DaoAuthenticationProvider SHA-512
在 spring 5 + 中,加密类型 SHA-512 已被弃用。在我的 API 项目中,我使用的是 spring 5+,我必须使用 SHA-512,因为数据库是旧类型的密码加密。我的编码器方法需要返回一个自定义类对象,该对象使用用户电子邮件作为盐编码为 SHA-512。我正在使用自定义用户表。知道如何处理这种情况吗?谢谢你们的帮助。我的春季安全课:
spring - Spring 5:MVC 控制器参数 pageable 未初始化
我有一个这样的控制器:
现在,当我点击这个 API 端点时:
可分页未使用这些值初始化,我看到以下日志。
我已经尝试手动接受页面大小和数量并自己构建可分页,这似乎工作得很好,但我的控制器中的可分页参数似乎没有被初始化。我不知道为什么。
我已经看过这个线程,但它对我不起作用。
validation - RequestBody 和 Validation Annotation 为空
我在 RestController 中做了一个方法。此方法接受 json 对象,并将其输入数据库并返回状态。
将其放入数据库中效果很好。
但是,当我使用 Advance REST 客户端程序检查时,状态是201 supported media type
,而不是201 created
。
在控制台窗口中,出现如下错误。
RequestBody 和 Validation 为空,不能正常使用。
导入的时候没有报错,这条线没有红线。我应该怎么办?
下面是 pom.xml。
placeholder - Spring Test 中的@ActiveProfiles 不再支持占位符
@ActiveProviles
我正在从 Spring 4.3 升级到 Spring 5.3,并且注释似乎不再支持占位符。
以下代码适用于旧的 Spring 版本:
但它停止了升级工作,现在它得到了
请注意,“nucleus.hibernate.dialect”是在“${profileA}”引用的应用程序属性中定义的。
作为一种解决方法,我尝试使用显式将属性指定为测试属性源
那行得通。
我不确定在 Spring 集成测试中使用占位符选择 Spring 配置文件是否是官方支持的功能。如果是,我认为这是 Spring 测试框架中的重大变化。
java - 如何从 Spring 5 WebClient 调用中获取响应/请求正文(json)
我正在尝试使用 Spring 5 WebClient 接收请求/响应正文。你知道我怎么能做到这一点吗?
我找到了一个主题 -如何记录 Spring 5 WebClient 调用,但我正在询问是否获取身体 - 我需要它将 json 保存到数据库中。
代码现在看起来像这样,但它不起作用:
spring - 从 Spring 4 升级到 Spring 5 - NoClassDefFoundError: org/springframework/core/JdkVersion
我正在将我的 Spring 项目从 4.3.23 版升级到 5.2.13 版
我在项目的 ldap.xml 文件中有以下代码,该代码在 4.3.23 中运行良好,但在 5.2.13 中出错:
但是在运行我得到的代码时java.lang.NoClassDefFoundError: org/springframework/core/JdkVersion
经过搜索,我发现 JdkVersion 在 Spring 5.x 中被删除
我想知道如何修复我的代码以在 Spring 5.x 中正常工作。
这是错误的完整堆栈跟踪:
提前致谢!
spring-transactions - Spring事务管理中的“无法获得当前线程的事务同步会话”错误
我正在将应用程序从 Spring 3.2 迁移到 Spring 5。该应用程序使用 AWS RDS,主数据库作为主数据源或主数据源,副本数据库作为只读数据源。应用程序为主要数据源创建一个会话工厂 (primarySessionFacotry) 实例,为只读数据源创建另一个 (readOnlySessionFactory) 实例,以便通过连接每个会话工厂,可以将相同的 DAO 用于两个数据源。
DAO 是这样实例化的
这个 UserDao 有一个类似下面的方法
当使用带有 readOnlyUserDao 实例的 UserDao.getItems() 方法时,我们遇到了异常。
请注意,相同的代码与 Spring 完美配合(spring-orm 和 spring-tx 3.2)
请协助解决此问题。
java - 使用 Java 16 时 Tomcat 未找到 Spring 初始化程序类
我有一个非常简单的 Gradle ( 7.0-rc-1
) 脚本来使用嵌入式 Tomcat 实例初始化单个 Spring 5“hello world”端点。原始代码取自我在互联网上找到的一个随机示例。我的示例 Gradle 项目可以在这里找到。
我不确定它是如何工作的,但是 Web 服务器以某种方式知道WebApplicationInitializer.onStartup(ServletContext)
在启动时调用该方法,以便初始化 Spring。
这在 Java 8 上可以正常工作;但是当我将 Gradle 构建定义中的以下工具链规范更改为 Java 16 时失败。
使用 Java 8 时,Spring 已正确初始化并且端点可以正常工作。
使用 Java 16 时,onStartup()
不会调用该方法,因此 Spring 没有初始化并且端点不起作用(尽管 Tomcat 仍然启动并响应错误)。
日志显示一条消息,但没有堆栈跟踪:
我需要做什么才能在 Java 16 上进行这项工作?
注意我不想用spring-boot,请不要推荐。