问题标签 [spring-4]

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 投票
1 回答
626 浏览

java - Spring 4 条件 - 访问资源

在使用 spring 4 做我的第一步时,我尝试了本文之后的 @Conditional 注释。

我的问题 - 我想从 OnSystemPropertyCondition 类中的方法匹配中访问类路径资源(基本上是属性文件)。

为此,目前我每次调用matches方法时都从​​它加载所需的属性文件(这意味着对于使用ConditionalOnSystemProperty注释注释的每个类)。这有点难看。我认为一个优雅的解决方案是简单地自动装配我的资源或某些属性(使用 @Value 注释),但这无法完成,因为此类在 bean 之前被实例化。

有什么建议可以帮助我避免一次又一次地重新加载此资源?

0 投票
1 回答
5739 浏览

spring - Spring 4 和 JSF ViewScope

在 Spring 3 和 JSF 2.0 中,当我们想要使用 JSF 视图范围时,我们必须引入自定义 ViewScope 实现并指示 Spring 通过 CustomScopeConfigurer 来获取它。

Spring 4 在这方面的 JSF 集成方面是否取得了任何进展?还是仍然需要定义自定义 ViewScope 实现以利用 Spring 托管 bean 中的视图范围?

0 投票
1 回答
4303 浏览

spring-aop - “org.hibernate.HibernateException: No Session found for current thread”即使方法包装在代理中

我收到以下错误:


相关的弹簧配置:

没有hibernate.current_session_context_class


如您所见,该方法被包裹在代理中,仍然没有找到会话!该方法由调度程序的作业运行,而不是控制器方法,它从 spring 上下文中获取 daos 等。事务等在控制器方法上运行良好,我正在使用@transactional。

版本:hibernate-4.3.5、spring-4.0.4

任何线索表示赞赏。

0 投票
1 回答
718 浏览

spring - Spring 4 STOMP 在连接时未在标头中发送队列后缀

我写了一个小项目,它使用带有 Websockets 和 RabbitMQ 作为代理的 Spring MVC 4。我正在尝试发回给单个用户(convertAndSendToUser),但我似乎无法让它工作。这是应用程序的作用:

  1. 通过 HTTP 向 Spring Security 进行身份验证。身份验证通过 AJAX 进行,后端为每个新连接分配一个 UUID 作为用户名。可能有多个客户端使用相同的用户名,所以我希望能够针对单个浏览器,尽管它们可能使用相同的用户名登录
  2. 在通过 AJAX 进行身份验证后,webapp 使用 STOMP over Websockets 连接到 API。这些是在 CONNECT FRAME 中发回的标头

    正文:"" 命令:"CONNECTED" 标头:对象心跳:"0,0" 服务器:"RabbitMQ/3.3.1" 会话:"session-OGzAN6T8Y0X9ft3Jq04fiQ" 用户名:"88dc9424-72e3-4814-be8c- e31dbf89b521" 版本:"1.1"

如您所见,没有frame-suffix或 session-id 字段。

  1. 当我从后端使用 convertAndSendToUser 时,响应会发送到一个独特的队列,例如:/exchange/jobs-userh6g_48h9。队列名称是 /exchange/jobs 但 Spring 自动附加后缀-userh6g_48h9。用户名是“user”,sessionId 是“h6g_48h9” 这很好,我想要这种行为,但问题是客户端(webapp)在 CONNECT 框架中没有得到这个会话 id,没有办法让它实际上订阅了那个独特的队列。

如何解决这个问题?我希望在连接时将队列后缀/会话 ID 发送回给我,以便客户端可以获取此后缀并订阅他的唯一队列。由于缺乏信息,目前没有消息从服务器返回。

0 投票
0 回答
971 浏览

java - 服务中的spring访问安全上下文

我正在尝试访问由Spring 4 应用程序中的配置触发的SecurityContext对象。这在 a 中是非功能性的,但适用于配置。@Service@Schedule@Service@Controller

如何在我的 ? 中加载相同的安全上下文引用@Service

我用来访问上下文的代码很简单:

输出非常简单:

  • @Controller

    org.springframework.security.core.context.SecurityContextImpl@ffffffff: Null authentication

  • @Controller

    org.springframework.security.core.context.SecurityContextImpl@cf8b0421: Authentication: ....@cf8b0421: Principal: ....@1cd97f9; Credentials: [PROTECTED]; Authenticated: false; Details: ....t@60b45d5b; Granted Authorities: ....

web.xml的是:

我的applicationContext.xml文件看起来像:

0 投票
1 回答
21074 浏览

java - 从另一个异步方法调用的 Spring 异步方法

我正在使用 Spring 4 并且我注意到一个奇怪的行为......如果我从普通实例方法多次调用异步方法,那么它们都在不同的线程中调用并在随机时间完成。但是,如果我从另一个异步方法多次调用一个异步方法,那么它们会按顺序完成。我有这样的事情:

我正在使用默认的异步执行器。我应该使用不同的吗?但是,这个执行器不重用任何线程,并且每次都启动另一个线程,所以应该没问题......这可能只是巧合吗?但是我已经尝试了超过 10 次,如果我将第一种方法恢复为非异步,那么它们会随机完成

0 投票
1 回答
377 浏览

spring-mvc - Jackson JSON - 在创建时解组但在更新时忽略

使用 Spring 4,我有一个用例,其中资源(下例中的 A)具有在使用 REST 更新(http put 和 patch)时应该被忽略的属性。该属性只能在创建时具有值(http post)。所以情况是create上的解组应该考虑该属性,但在 update 上应该忽略它。

在控制器中

我能想到的一种方法(也是一种非常不优雅的方法)是允许解组发生,但在更新方法中,手动将 strOnCreateOnly 设置为其原始值。

但是有没有使用 Spring 4 和 Jackson 的可配置方式(例如,使用注释并忽略属性被解组)?甚至向 API 的调用者发回一个错误,说不允许更新 strOnCreateOnly 也没问题。

0 投票
2 回答
19799 浏览

java - Spring 4 异常处理:没有合适的参数解析器

问题陈述

迁移到Spring 4fromSpring 3会在异常处理流程中引发一些异常。例外No suitable resolver for argumentorg.springframework.web.method.support.InvocableHandlerMethod课堂上说。

因此,每当发生异常时,都会Spring尝试找到它获取的异常处理程序,但是当它尝试填充方法参数或异常处理程序时,它会抛出以下异常

调用@ExceptionHandler 方法失败:

处理程序方法详细信息:

它基本上是为了@CRequestParam("p") String p 变量

代码

控制器

异常处理程序

注释

参数解析器

XML 配置

源代码

https://github.com/santoshjoshi/SpringMVC4

0 投票
0 回答
885 浏览

spring - java.lang.IncompatibleClassChangeError 与 Struts2 和 spring 集成

我正在尝试将 Spring 4.0.6 集成到 struts 2.3.1.2 应用程序中。这是Maven POM:

这是 struts.xml 的相关部分:

最后这是spring applicationContext.xml:

我正在尝试使用 Spring 注释配置服务层,但我遇到了这个启动异常:

也许 struts2-spring 插件与 spring 4.0.6 不兼容??我错过了什么?

0 投票
2 回答
4092 浏览

spring - Spring 4.x 是否支持 Mybatis?

我用 mybatis 3.2.5 和 Spring 版本 4.1.0.Release 尝试了 mybatis-spring 1.2.2,它似乎不受支持。

mybatis-spring 1.2.2 spring 包含org.springframework.core.MethodParameter类但是getContainingClass()不存在。

我得到了例外: java.lang.NoSuchMethodError: org.springframework.core.MethodParameter.getContainingClass()

任何想法我都可以将 Mybatis 与 Spring 4x 一起使用吗?(连ibatis好像都不支持)