小编Han*_*nes的帖子

使用Java中的Spring Properties和CrossOrigin Annotation或Spring-Config XML

我在Spring中使用CrossOrigin注释.现在我想将一个Property作为值注入注释.我不接受这个工作.

现在我像这样访问我的财产:

@Value("${settings.cors_origin}")
String cors_origin;
Run Code Online (Sandbox Code Playgroud)

我想将此属性注入CrossOrigin注释:

....
@CrossOrigin(origins = cors_origin)
@RequestMapping(value="/request", method= RequestMethod.GET, produces = "application/json")
public ResponseEntity<?> getMethod()
{
...
Run Code Online (Sandbox Code Playgroud)

我尝试过这样的事情:

@CrossOrigin(origins = "${settings.cors_origin}")
Run Code Online (Sandbox Code Playgroud)

编辑1:

现在我尝试在我的spring配置中全局设置CORS-Header:

  <context:property-placeholder location="classpath*:*appsettings.properties"/>

 <mvc:cors>
 <mvc:mapping path="/api/**"
             allowed-origins="${test}"
             allowed-methods="GET, PUT, OPTIONS, POST"/>
</mvc:cors>
Run Code Online (Sandbox Code Playgroud)

此设置也无效!允许的原点与属性文件中指定的原点不同.我认为它不会将变量转换为值?当我在spring config allowed-origin中手动设置IP地址时,它正在工作.设置有问题......

appsettings.properties:

test=http://192.168.1.200
Run Code Online (Sandbox Code Playgroud)

编辑2:

解决了

经过一段时间的故障排除后,我现在为我解决了这个问题:-)现在我再次使用注释@CrossOrigin.我不得不将RequestMethod选项添加到Spring RequestMapping:

 @RestController
 @CrossOrigin(origins = {"${settings.cors_origin}"})
 @RequestMapping("/api/v1")
 public class MainController {


  @RequestMapping(value="/request", method = {RequestMethod.GET, RequestMethod.OPTIONS}, produces = "application/json")
  public ResponseEntity<?> getMethod()
  {
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助!

java spring annotations spring-mvc spring-security

6
推荐指数
2
解决办法
2843
查看次数

在 Spring Boot 应用程序中使用 Java Websocket API

我想在 Spring Boot 应用程序中使用 java websocket API。我创建了以下类,如下所述: https: //www.baeldung.com/java-websockets

import javax.websocket.*;
import javax.websocket.server.ServerEndpoint;
import java.io.IOException;

@ServerEndpoint(value = "/test")
public class FrontendEndpoint {

        @OnOpen
        public void onOpen(Session session) throws IOException {
                session.getBasicRemote().sendText("Test");
        }

        @OnMessage
        public void onMessage(Session session, String message) throws IOException {
        }

        @OnClose
        public void onClose(Session session) throws IOException {
        }

        @OnError
        public void onError(Session session, Throwable throwable) {
        }
}
Run Code Online (Sandbox Code Playgroud)

我尝试连接到该 websocket 但没有任何反应。我在互联网上看到了很多文章,但没有任何帮助我。我不知道如何让它发挥作用。

当我尝试连接到 websocket 时没有发生任何事情。

春季启动版本:2.0.3

Websocket-API 版本:1.1

我也没有看到 websocket 的开放端口。

谢谢

BR

java spring websocket spring-boot

1
推荐指数
1
解决办法
8041
查看次数