2017-03-05 125 views
0

我已經使用Spring Initializr,使用嵌入式Tomcat + Thymeleaf模板引擎生成了一個Spring Boot web應用程序,並將其打包爲一個可執行JAR文件。使用Spring Boot剖析

技術:

春季啓動1.4.2.RELEASE,春天4.3.4.RELEASE,Thymeleaf 2.1.5.RELEASE,Tomcat的嵌入8.5.6時,Maven 3,Java的8

我有這個類

@Controller 
public class LoginController { 

    @RequestMapping({ "/", "/tdk/login"}) 
    public String welcome(Map<String, Object> model) { 
     return "tdk/login"; 
    } 
} 

and this other one: 

@Profile("pebloc") 
public class PeblocLoginController extends LoginController { 

    @Override 
    @RequestMapping({ "/", "/pebloc/login"}) 
    public String welcome(Map<String, Object> model) { 
     return "pebloc/login"; 
    } 
} 

我正在我在Eclipse的應用程序SpringBoot這個VM參數

-DAPP-KEY=pebloc -Dspring.profiles.active=pebloc 

但PeblocLoginController未加載!

2017年3月5日17:

29:01.617 INFO 20189 --- [ restartedMain] c.i.iot.TDKCloudApplication   : The following profiles are active: pebloc 

    17-03-05 09:35:12.689 INFO 2190 --- [ restartedMain] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/ || /tdk/login]}" onto public java.lang.String com.tdk.web.LoginController.welcome(java.util.Map<java.lang.String, java.lang.Object>) 

回答

0

你需要註釋PeblocLoginController@Controller@Controller不是繼承的註釋。這將是這樣的:

@Profile("pebloc") 
@Controller 
public class PeblocLoginController extends LoginController { 

    @Override 
    @RequestMapping({ "/", "/pebloc/login"}) 
    public String welcome(Map<String, Object> model) { 
     return "pebloc/login"; 
    } 
} 
0

您應該使用@Controller@RestController標註有根據要求PeblocLoginController類,因爲他們指出類是準備用來處理Web請求。

PS:考慮在開發Spring Boot應用程序時使用Spring Tool Suite