问题标签 [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.

0 投票
0 回答
181 浏览

spring-boot - spring webflux中带有多部分数据的POST请求

当我为我的应用程序添加安全性时,我正在使用 spring webflux,在控制器中可以找到关于 POST 请求的多部分或有效负载数据,您可以在我的安全配置类和我的自定义 webfilter 类下面找到

这是我的自定义 webfilter 类我为多部分过滤器制作了一个自定义过滤器,以将其集成到 spring 安全链中,但问题是过滤器是基于 servlet

这是我调用控制器保存文件时引发的原始错误

{ “时间戳”:“2021-04-01T17:17:26.373+00:00”,“路径”:“/users/addPhoto/60648bfa9b3b60106bdabc93”,“状态”:400,“错误”:“错误请求”,“ message”:“所需的 MultipartFile 参数 'file' 不存在”,“requestId”:“a763eee0-16”,“trace”:“org.springframework.web.server.ServerWebInputException:400 BAD_REQUEST “所需的 MultipartFile 参数 'file' 是在 org.springframework.web.reactive.result.method.annotation.RequestParamMethodArgumentResolver.handleMissingValue(RequestParamMethodArgumentResolver.java:114) 处不存在” 已抑制:reactor.core.publisher.FluxOnAssembly$OnAssemblyException:在以下站点观察到错误): |_ 检查点 ⇢ org.springframework.security.web。server.authorization.AuthorizationWebFilter [DefaultWebFilterChain] |_ checkpoint ⇢ org.springframework.security.web.server.authorization.ExceptionTranslationWebFilter [DefaultWebFilterChain] |_ checkpoint ⇢ org.springframework.security.web.server.authentication.logout.LogoutWebFilter [DefaultWebFilterChain] |_ checkpoint ⇢ org.springframework.security.web.server.savedrequest.ServerRequestCacheWebFilter [DefaultWebFilterChain] |_ checkpoint ⇢ org.springframework.security.web.server.context.SecurityContextServerWebExchangeWebFilter [DefaultWebFilterChain] |_ checkpoint ⇢ org.springframework.security。 web.server.ui.LogoutPageGeneratingWebFilter [DefaultWebFilterChain] |_ checkpoint ⇢ org.springframework.security.web.server.ui.LoginPageGeneratingWebFilter [DefaultWebFilterChain] |_ checkpoint ⇢ tn.talan.cra.security。CustomWebFilter [DefaultWebFilterChain] |_ checkpoint ⇢ org.springframework.security.config.web.server.ServerHttpSecurity$OAuth2ResourceServerSpec$BearerTokenAuthenticationWebFilter [DefaultWebFilterChain] |_ checkpoint ⇢ org.springframework.security.oauth2.client.web.server.authentication.OAuth2LoginAuthenticationWebFilter [ DefaultWebFilterChain] |_ checkpoint ⇢ org.springframework.security.oauth2.client.web.server.OAuth2AuthorizationRequestRedirectWebFilter [DefaultWebFilterChain] |_ checkpoint ⇢ org.springframework.security.web.server.context.ReactorContextWebFilter [DefaultWebFilterChain] |_ checkpoint ⇢ org. springframework.security.web.server.csrf.CsrfWebFilter [DefaultWebFilterChain] |_ checkpoint ⇢ org.springframework.web.cors.reactive.CorsWebFilter [DefaultWebFilterChain] |_ checkpoint ⇢ org.springframework.security.web.server.header。HttpHeaderWriterWebFilter [DefaultWebFilterChain] |_ checkpoint ⇢ org.springframework.security.config.web.server.ServerHttpSecurity$ServerWebExchangeReactorContextWebFilter [DefaultWebFilterChain] |_ checkpoint ⇢ org.springframework.security.web.server.WebFilterChainProxy [DefaultWebFilterChain] |_ checkpoint ⇢ tn. talan.cra.security.CustomWebFilter [DefaultWebFilterChain] |_ checkpoint ⇢ HTTP POST "/users/addPhoto/60648bfa9b3b60106bdabc93" [ExceptionHandlingWebHandler] 堆栈跟踪:在 org.springframework.web.reactive.result.method.annotation.RequestParamMethodArgumentResolver.handleMissingValue(RequestParamMethodArgumentResolver .java:114) 在 org.springframework.web.reactive.result.method.annotation.AbstractNamedValueArgumentResolver.lambda$getDefaultValue$1(AbstractNamedValueArgumentResolver.java:215) 在 reactor.core.publisher。MonoSupplier.subscribe(MonoSupplier.java:56) 在 reactor.core.publisher.Mono.subscribe(Mono.java:4046) 在 reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onComplete(FluxSwitchIfEmpty.java:81) 在 reactor.core .publisher.Operators.complete(Operators.java:136) 在 reactor.core.publisher.FluxFlatMap.trySubscribeScalarMap(FluxFlatMap.java:144) 在 reactor.core.publisher.MonoFlatMap.subscribeOrReturn(MonoFlatMap.java:53) 在反应堆。 core.publisher.Mono.subscribe(Mono.java:4031) 在 reactor.core.publisher.MonoZip.subscribe(MonoZip.java:128) 在 reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) 在 reactor .core.publisher.MonoDefer.subscribe(MonoDefer.java:52) 在 reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.drain(MonoIgnoreThen.java:154) 在 reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:56) 在 reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) 在 reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157) 在 reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber .onNext(FluxSwitchIfEmpty.java:73) 在 reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82) 在 reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.innerNext(FluxConcatMap.java:281) 在反应堆。 core.publisher.FluxConcatMap$ConcatMapInner.onNext(FluxConcatMap.java:860) 在 reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:127) 在 reactor.core.publisher.MonoPeekTerminal$MonoTerminalPeekSubscriber.onNext(MonoPeekTerminal. java:180) 在 reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2397) 在 reactor.core.publisher。MonoPeekTerminal$MonoTerminalPeekSubscriber.request(MonoPeekTerminal.java:139) 在 reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:169) 在 reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2193)在 reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2067) 在 reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96) 在 reactor.core.publisher.MonoPeekTerminal$MonoTerminalPeekSubscriber.onSubscribe (MonoPeekTerminal.java:152) 在 reactor.core.publisher.MonoJust.subscribe(MonoJust.java:54) 在 reactor.core.publisher.Mono.subscribe(Mono.java:4046) 在 reactor.core.publisher.FluxConcatMap$在 reactor.core.publisher.FluxConcatMap$ConcatMapImmediate 的 ConcatMapImmediate.drain(FluxConcatMap.java:448)。onSubscribe(FluxConcatMap.java:218) 在 reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:164) 在 reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:86) 在 reactor.core.publisher.InternalMonoOperator .subscribe(InternalMonoOperator.java:64) 在 reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) 在 reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) 在 reactor.core.publisher。 Mono.subscribe(Mono.java:4046) 在 reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onComplete(FluxSwitchIfEmpty.java:81) 在 reactor.core.publisher.MonoPeekTerminal$MonoTerminalPeekSubscriber.onComplete(MonoPeekTerminal.java:299) 在 reactor .core.publisher.MonoPeekTerminal$MonoTerminalPeekSubscriber.onComplete(MonoPeekTerminal.java:299) 在 reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:148) 在 reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:73) 在 reactor.core.publisher.FluxFilter$FilterSubscriber.onNext(FluxFilter.java:113) 在 reactor.core.publisher.FluxDefaultIfEmpty$DefaultIfEmptySubscriber .onNext(FluxDefaultIfEmpty.java:100) 在 reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82) 在 reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.innerNext(FluxConcatMap.java:281) 在反应堆。 core.publisher.FluxConcatMap$ConcatMapInner.onNext(FluxConcatMap.java:860) 在 reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1815) 在 reactor.core.publisher.MonoFlatMap$FlatMapInner.onNext(MonoFlatMap. java:249) 在 reactor.core.publisher.FluxDefaultIfEmpty$DefaultIfEmptySubscriber.onNext(FluxDefaultIfEmpty.java:100) 在 reactor.core.publisher。FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:127) 在 reactor.core.publisher.FluxFilterFuseable$FilterFuseableSubscriber.onNext(FluxFilterFuseable.java:118) 在 reactor.core.publisher.FluxMapFuseable$MapFuseableConditionalSubscriber.onNext(FluxMapFuseable.java:295)在 reactor.core.publisher.FluxFilterFuseable$FilterFuseableConditionalSubscriber.onNext(FluxFilterFuseable.java:337) 在 reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1815) 在 reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext (MonoFlatMap.java:151) 在 reactor.core.publisher.FluxFilterFuseable$FilterFuseableSubscriber.onNext(FluxFilterFuseable.java:118) 在 reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2397) 在 reactor.core。 publisher.FluxFilterFuseable$FilterFuseableSubscriber.request(FluxFilterFuseable.java:191) 在 reactor.core.publisher.MonoFlatMap$FlatMapMain.onSubscribe(MonoFlatMap.java:110) 在 reactor.core.publisher.FluxFilterFuseable$FilterFuseableSubscriber.onSubscribe(FluxFilterFuseable.java:87) 在 reactor.core.publisher.MonoCurrentContext.subscribe (MonoCurrentContext.java:36) 在 reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) 在 reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157) 在 reactor.core.publisher。 FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:127) 在 reactor.core.publisher.FluxFilterFuseable$FilterFuseableSubscriber.onNext(FluxFilterFuseable.java:118) 在 reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2397)在 reactor.core.publisher.FluxFilterFuseable$FilterFuseableSubscriber.request(FluxFilterFuseable.java:191) 在 reactor.core。publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:169) 在 reactor.core.publisher.MonoFlatMap$FlatMapMain.onSubscribe(MonoFlatMap.java:110) 在 reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java: 96) 在 reactor.core.publisher.FluxFilterFuseable$FilterFuseableSubscriber.onSubscribe(FluxFilterFuseable.java:87) 在 reactor.core.publisher.MonoJust.subscribe(MonoJust.java:54) 在 reactor.core.publisher.Mono.subscribe(Mono .java:4046) 在 reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.onSubscribe(FluxConcatMap.java:218) 在 reactor.core.publisher.reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.drain(FluxConcatMap.java:448)。 FluxIterable.subscribe(FluxIterable.java:164) 在 reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:86) 在 reactor.core.publisher。InternalMonoOperator.subscribe(InternalMonoOperator.java:64) 在 reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) 在 reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) 在 reactor.core.publisher .MonoDefer.subscribe(MonoDefer.java:52) 在 reactor.core.publisher.Mono.subscribe(Mono.java:4046) 在 reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.drain(MonoIgnoreThen.java:173) 在反应堆。 core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:56) 在 reactor.core.publisher.Mono.subscribe(Mono.java:4046) 在 reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onComplete(FluxSwitchIfEmpty.java:81)在 reactor.core.publisher.FluxFilter$FilterSubscriber.onComplete(FluxFilter.java:166) 在 reactor.core.publisher.FluxPeekFuseable$PeekConditionalSubscriber.onComplete(FluxPeekFuseable.java:940) 在 reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onComplete(FluxSwitchIfEmpty.java:84) 在 reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2399) 在 reactor.core.publisher.Operators$MultiSubscriptionSubscriber .set(Operators.java:2193) 在 reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2067) 在 reactor.core.publisher.MonoJust.subscribe(MonoJust.java:54) 在 reactor.core。发布者.Mono.subscribe(Mono.java:4046) 在 reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onComplete(FluxSwitchIfEmpty.java:81) 在 reactor.core.publisher.MonoNext$NextSubscriber.onComplete(MonoNext.java:102)在 reactor.core.publisher.FluxFilter$FilterSubscriber.onComplete(FluxFilter.java:166) 在 reactor.core.publisher.FluxFlatMap$FlatMapMain.checkTerminated(FluxFlatMap.java:845) 在 reactor.core.publisher.FluxFlatMap$FlatMapMain.drainLoop(FluxFlatMap.java:607) 在 reactor.core.publisher.FluxFlatMap$FlatMapMain.drain(FluxFlatMap.java:587) 在 reactor.core.publisher.FluxFlatMap$FlatMapMain .onComplete(FluxFlatMap.java:464) 在 reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.onComplete(FluxPeekFuseable.java:277) 在 reactor.core.publisher.FluxIterable$IterableSubscription.slowPath(FluxIterable.java:292) 在反应堆。 core.publisher.FluxIterable$IterableSubscription.request(FluxIterable.java:228) 在 reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.request(FluxPeekFuseable.java:144) 在 reactor.core.publisher.FluxFlatMap$FlatMapMain.onSubscribe(FluxFlatMap. java:370) 在 reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.onSubscribe(FluxPeekFuseable.java:178) 在 reactor.core.publisher。FluxIterable.subscribe(FluxIterable.java:164) 在 reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:86) 在 reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) 在 reactor.core.publisher .MonoDefer.subscribe(MonoDefer.java:52) 在 reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157) 在 reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1815) 在reactor.core.publisher.FluxDefaultIfEmpty$DefaultIfEmptySubscriber.onComplete(FluxDefaultIfEmpty.java:108) 在 reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:142) 在 reactor.core.publisher.FluxMap$MapSubscriber.onComplete( FluxMap.java:142) 在 reactor.core.publisher.FluxFilter$FilterSubscriber.onComplete(FluxFilter.java:166) 在 reactor.core.publisher.FluxMap$MapConditionalSubscriber.onComplete(FluxMap.java:269) 在 reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1816) 在 reactor.core.publisher.MonoCacheTime$CoordinatorSubscriber.signalCached(MonoCacheTime.java:328) 在 reactor.core.publisher.MonoCacheTime $CoordinatorSubscriber.onNext(MonoCacheTime.java:345) 在 reactor.core.publisher.FluxPeek$PeekSubscriber.onNext(FluxPeek.java:199) 在 reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:73) 在reactor.core.publisher.FluxSubscribeOnCallable$CallableSubscribeOnSubscription.run(FluxSubscribeOnCallable.java:251) 在 reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:68) 在 reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java: 28) 在 java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) 在 java.base/java.util.concurrent。ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run( ThreadPoolExecutor.java:630) 在 java.base/java.lang.Thread.run(Thread.java:832)" }

这是我的控制器代码

0 投票
1 回答
99 浏览

java - 原型 bean 在单例对象中返回多个实例

我是春天的新手,正在做一些关于proxyMode=ScopedProxyMode.TARGET_CLASS. 我编写了一个简单的项目来使用单例和原型 bean 进行测试。但是当我打印对象时,它会打印一个新的原型 bean 实例。

单例豆

配置类。

单元测试

输出

请参阅上面的输出始终显示新实例,并且文本字段中的值为空。我只运行一次这个应用程序。所以我预计只有 2 个原型实例会被创建,因为我调用了 simpleBean1 和 simpleBean2。有人可以向我解释为什么会发生这种情况以及如何将其修复为只有 2 个原型对象,其中 simpleBean1 持有一个原型豆,而 simpleBean2 持有另一个原型豆

0 投票
1 回答
123 浏览

spring-oauth2 - Spring oauth2 webclient ClientAuthorizationException:[server_error]

我正在尝试利用 Spring 5 Webclient 和内置的 oauth2 安全功能。

当我使用 Webclient 获取访问令牌并使用该令牌启动服务调用时,我已经确认 SSL 证书设置正确并且可以正常工作。

当我使用内置的 oauth2 库时,出现以下错误:

我在堆栈跟踪中看到以下内容

我在这里做错了什么?

0 投票
2 回答
78 浏览

java - 为什么我在使用 spring 5 的 tomcat 9 中得到代码 400 响应而不是错误 json 对象?

控制器:

异常处理程序:

如果 InRequest 具有 javax 验证约束内的所有字段,那么我会得到正确的代码,但是当字段与验证不匹配时,我只会得到 400 响应代码。定义了其他异常处理程序,但我已将断点放置在任何地方,并且没有触发任何内容。

我还添加了 log4j 属性:

但这在调试时没有产生任何额外的输出。我还希望将 INErrors 对象发回,但它甚至没有输入两种处理方法中的任何一种。

0 投票
1 回答
239 浏览

java - Spring框架和Jersey集成

我刚刚开始spring framework 5.2.8jersey 3.0.2版本集成。我知道我们可以用 spring-boot 做到这一点,但这不是我的要求。我希望该服务在 Tomcat 服务器 8.5 上运行。我已经定制了pom.xml微型尺寸,左侧是 groupId 其余的是依赖 artifactIds :

我的主要课程看起来像:

现在是我的主要资源类:

现在我有几个问题:

  1. http://localhost:8080/warname/resources/helloworld 正在抛出 404 为什么会这样?
  2. 我无法使用 Spring 的 MediaType 类,但被迫使用 jakarta 包我该如何更改它?
  3. 如果我想将杰克逊绑定与我的资源输入对象一起使用,我该怎么做?

我看过一些在线示例,但最终出现了一些其他错误。

更新

两者都尝试了http://localhost:8080/hc-cms-1.0-SNAPSHOT/resources/helloworldhttp://localhost:8080/resources/helloworld只是在日志中没有引发HTTP Status 404 – Not Found其他错误或问题。

0 投票
0 回答
11 浏览

junit - 测试 Spring5 RestController

我正在尝试在 Spring 5 中测试休息端点。这是我的代码:

这是我得到的错误:

不知道我在这里错过了什么。

感谢任何帮助谢谢。

0 投票
0 回答
70 浏览

xml - 无法创建架构:无法读取架构文档。因为不允许“zip”访问。当更新到 spring-ws-core 3.0.9.RELEASE (JAXP_15)

org.springframework.ws spring-ws-core 2.2.4.RELEASE 工作正常。org.springframework.ws spring-ws-core 3.0.9.RELEASE 出现如下错误:

org.springframework.beans.factory.BeanCreationException:在 ServletContext 资源 [/WEB-INF/status-service-servlet.xml] 中定义的名称为 org.springframework.ws.server.endpoint.mapping.PayloadRootQNameEndpointMapping#0` 创建 bean 时出错:使用键 [1] 设置 bean 属性“拦截器”时无法解析对 bean“validatingInterceptor”的引用;嵌套异常是 org.springframework.beans.factory.BeanCreationException:在 ServletContext 资源 [/WEB-INF/status-service-servlet.xml] 中定义名称为“validatingInterceptor”的 bean 创建错误:调用 init 方法失败;嵌套异常是 org.springframework.xml.validation.XmlValidationException:无法创建架构:schema_reference:无法读取架构文档“xxx-1.0.xsd”,因为“zip” 由于 accessExternalSchema 属性设置的限制,不允许访问。; 嵌套异常是 org.xml.sax.SAXParseException;systemId: zip:C:/WebLogic/user_projects/domain/xxx-war-1.0.0/war/WEB-INF/lib/_wl_cls_gen.jar!/xxx.xsd;lineNumber: 3; 列号:89;schema_reference:无法读取架构文档“xxx-1.0.xsd”,因为 accessExternalSchema 属性设置的限制不允许“zip”访问。

spring-ws-core 的两个版本都从相同的 xsd 文件创建模式并具有相同的 systemId: zip:C:/WebLogic。

0 投票
1 回答
80 浏览

spring - Spring 5 中的 Log4jConfigurer

我已将我的项目从 Spring 4 升级到 Spring 5,并且我正在解决已弃用/删除的类。作为努力的一部分,我注意到 log4jConfigurer 已从 Spring 5 中删除。

我有以下代码:

我知道很多人都发布了类似的问题,但是当我有 log4j2 配置文件的自定义路径时,我没有看到任何解释。

我知道我们可以将它放在 web.xml 文件中,但我想为子项目加载不同的日志文件配置,而与父项目日志配置无关。因此,Spring 上下文文件是它的最佳位置。

我想知道如何在 Spring-5 中为自定义日志文件解析 Log4jConfigurer。

提前致谢!

0 投票
0 回答
37 浏览

spring - spring 5 中的 @value 解析为默认值

@Value在 spring 5 中解析为默认值,即使该属性是从属性加载的

配置属性

测试班

authEnabled 是:假

但是如果我删除属性的默认值,它会从 config.properties 解析实际值

authEnabled 是:真

0 投票
0 回答
336 浏览

java - 无法使用 Webjar 将 Bootstrap 5 用于 Spring MVC 应用程序

您好我正在尝试将引导程序添加到在 Servlet 3.0 容器(Websphere 8.5)上运行的 Spring-MVC 5 应用程序中。

在将引导程序添加到我的应用程序之前。我的应用程序配置和测试控制器如下:

  • Web.xml
  • 调度程序-servlet.xml
  • helloworldController.java

原图在这里

通过这个配置,我在 pom.xml 中添加了 bootstrap 和 jquery 的 webjar:

  • pom.xml
  • 在我的 dispatcher-servlet.xml 中添加了这一行
  • 参考引导样式表更改视图 index.jsp

但是,启动我的应用程序后,我原来的控制器和视图似乎不再工作了。在应用程序服务器日志中:

我错过了任何配置吗?请帮忙 !