2017-05-25 74 views
0

我有一个外部的位置上我application.properties设置如下春季启动 - 从外部属性中设置值文件

spring.config.location=file:${catalina.home}/conf/app.properties 

app.properties有一个属性为timeOut=10000。还有许多其他属性。

我需要设置我的会话像这样该属性:

session.setMaxInactiveInterval(timeOut_Property); 

如何才能实现这一目标?

添加控制器:

@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;   
} 
+1

的可能的复制[如何访问在春季启动的application.properties文件中定义的值(https://stackoverflow.com/questions/30528255/how-to-access-a-value-defined-in-the-application-properties-file-in-spring-boot) – Rjiuk

+0

@Rjiuk这可能是在定义了单个属性的情况下。 – Reema

+0

你试过了吗?我很确定它的工作原理与许多属性文件一样 – Rjiuk

回答

0

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

@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;   
    } 
} 
0

您可以在课堂上与此属性标注的变量:

@Value("${timeOut}") 
private String timeOut; 

使用此变量设置会话活动时间间隔为:

session.setMaxInactiveInterval(timeOut);