2017-05-25 160 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);