2017-03-05 7 views
0

Spring Initializrを使用して、埋め込みTomcat + Thymeleafテンプレートエンジンを使用してSpring起動Webアプリケーションを生成し、実行可能なJARファイルとしてパッケージ化しました。使用Spring起動のプロファイリング

技術:私が持っている

春ブーツ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"; 
    } 
} 

私は、このVM引数でEclipseのアプリで私のSpringBootを実行しています

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

PeblocLoginControllerがロードされていません!

2017年3月5日17:あなたは@ControllerPeblocLoginControllerに注釈を付ける必要がある

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

@Controllerは継承された注釈ではありません。それはこのようになります。

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

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

彼らはクラスがWebリクエストを処理するために使用する準備ができていることを示しているとしてあなたが要求に応じPeblocLoginControllerクラスで@Controllerまたは@RestController注釈を使用する必要があります。

PS:Springブートアプリケーションの開発中にSpring Tool Suiteを使用することを検討してください。

関連する問題