Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/312.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 Spring启动-从外部属性文件设置值_Java_Spring_Spring Mvc_Model View Controller_Spring Boot - Fatal编程技术网

Java Spring启动-从外部属性文件设置值

Java Spring启动-从外部属性文件设置值,java,spring,spring-mvc,model-view-controller,spring-boot,Java,Spring,Spring Mvc,Model View Controller,Spring Boot,我在我的应用程序上设置了一个外部位置。属性如下 spring.config.location=file:${catalina.home}/conf/app.properties app.properties的属性为timeOut=10000。还有许多其他属性 我需要在会话中设置此属性,如下所示: session.setMaxInactiveInterval(timeOut_Property); @SpringBootApplication @PropertySource(name = "g

我在我的
应用程序上设置了一个外部位置。属性如下

spring.config.location=file:${catalina.home}/conf/app.properties
app.properties
的属性为
timeOut=10000
。还有许多其他属性

我需要在会话中设置此属性,如下所示:

 session.setMaxInactiveInterval(timeOut_Property);
@SpringBootApplication
@PropertySource(name = "general-properties", value = { "classpath:path to your app.properties"})
public class MainApplication {

    public static void main(String[] args) {
        SpringApplication.run(NayapayApplication.class, args);
    }
}
如何做到这一点

添加控制器:

@Controller
public class StartController  {

@Value("${spring.config.location.defaultTimeout}")
private int defaultTimeout;

@RequestMapping("login.do")
public String login(HttpServletRequest request, HttpSession session, Model model) {     
    session.setMaxInactiveInterval(defaultTimeout);     
    return null;        
}

您可以在类中将具有此属性的变量注释为:

@Value("${timeOut}")
private String timeOut;
使用此变量将会话非活动间隔设置为:

session.setMaxInactiveInterval(timeOut);

您的主应用程序类应如下所示:

 session.setMaxInactiveInterval(timeOut_Property);
@SpringBootApplication
@PropertySource(name = "general-properties", value = { "classpath:path to your app.properties"})
public class MainApplication {

    public static void main(String[] args) {
        SpringApplication.run(NayapayApplication.class, args);
    }
}
并将控制器更改为:

@Controller
public class StartController  {

    @Value("${timeOut}")
    private int defaultTimeout;

    @RequestMapping("login.do")
    public String login(HttpServletRequest request, HttpSession session, Model model) {     
        session.setMaxInactiveInterval(defaultTimeout);     
        return null;        
    }
}

当定义了单个属性时,@Rjiuk可能重复。您尝试过吗?我很确定它在一个属性文件和多个属性文件中都能正常工作。看起来您没有添加具有超时值的属性文件。请在主类中导入自定义属性文件,如@PropertySource(name=“general properties”,value={“classpath:path to your app.properties”})公共类MainApplication{}