Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在SpringMVC中创建全局变量的最佳方法_Java_Spring_Spring Mvc_Variables - Fatal编程技术网

Java 在SpringMVC中创建全局变量的最佳方法

Java 在SpringMVC中创建全局变量的最佳方法,java,spring,spring-mvc,variables,Java,Spring,Spring Mvc,Variables,我所有的控制器请求映射url都以相同的变量开始 myController/blablabal 我正在考虑创建一个全局变量来替换myController,因此将来如果我更改URL名称,我只需要在一个位置进行更改。 我目前的做法是创建一个bean。 我的bean配置文件: <bean id="controllerURL" class="java.lang.String"> <constructor-arg type="String" value="tt"/> <

我所有的控制器请求映射url都以相同的变量开始

myController/blablabal
我正在考虑创建一个全局变量来替换myController,因此将来如果我更改URL名称,我只需要在一个位置进行更改。 我目前的做法是创建一个bean。 我的bean配置文件:

<bean id="controllerURL" class="java.lang.String">
    <constructor-arg type="String" value="tt"/>
</bean>
但是,我似乎无法正确访问此变量controllerURL。我有什么遗漏吗?或者我们有更好的方法在SpringMVC中创建全局变量吗?

创建一个常量并使用它。编译器将在编译时合并常量和剩余url

公共类MyConstants{ 公共静态最终字符串路径_PREFIX=/myController/blabal; } 导入MyConstants.PATH\u前缀; @控制器 公共类MyController{ @RequestMappingpath=PATH_PREFIX+/qrcode/blablbal,method=RequestMethod.GET //这里的方法 } 创建一个常量并使用它。编译器将在编译时合并常量和剩余url

公共类MyConstants{ 公共静态最终字符串路径_PREFIX=/myController/blabal; } 导入MyConstants.PATH\u前缀; @控制器 公共类MyController{ @RequestMappingpath=PATH_PREFIX+/qrcode/blablbal,method=RequestMethod.GET //这里的方法 }
您可以使用bean创建全局变量,如下所示

1.在你的bean声明中

在构造函数类型属性中使用java.lang.String而不是String

<bean id="controllerURL" class="java.lang.String">
    <constructor-arg type="java.lang.String" value="tt"/>
</bean>

您可以使用bean创建全局变量,如下所示

1.在你的bean声明中

在构造函数类型属性中使用java.lang.String而不是String

<bean id="controllerURL" class="java.lang.String">
    <constructor-arg type="java.lang.String" value="tt"/>
</bean>

我将使用基本URL创建一个BaseController

import org.springframework.web.bind.annotation.RequestMapping;


@RequestMapping("/base")
public class BaseController {
}
并加以实施

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;


@RestController
public class MyController extends BaseController{

    @RequestMapping("/hello")
    String hello(){
        return "Hello";
    }
}

我将使用基本URL创建一个BaseController

import org.springframework.web.bind.annotation.RequestMapping;


@RequestMapping("/base")
public class BaseController {
}
并加以实施

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;


@RestController
public class MyController extends BaseController{

    @RequestMapping("/hello")
    String hello(){
        return "Hello";
    }
}

这就是为什么我在想..但我真的想学习如何创建一个bean作为全局变量。这就是为什么我在想..但我真的想学习如何创建一个bean作为全局变量。当我尝试这个时,它说属性必须是常量。我相信controllerURL必须是静态final。如果它必须是静态final,那么它可能必须被初始化。当我尝试这个时,它说属性必须是常量。我相信controllerURL必须是静态final。如果它必须是静态final,那么它可能必须被初始化。