2017-03-05 123 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