1. 程式人生 > >SpringBoot專案搭建完成後的問題

SpringBoot專案搭建完成後的問題

SpringBoot:
 1.Springboot啟動類中main方法SpringApplication.run(SpringdemoApplication.class, args);中的類需要時是啟動類本身,否則會報Unable to start EmbeddedWebApplicationContext due to missing EmbeddedServletCont錯誤-----待定結果;
 2.Spring Boot對靜態資源的預設路徑進行了配置:      ResourceProperties.calss  預設的靜態資源路徑          classpath:/META-INF/resources/
                        classpath:/resources/
                        classpath:/static/
                        classpath:/public
                        只要靜態資源放在這些目錄中任何一個,SpringMVC都會幫我們處理。
                    
 3.Springboot官方不推薦jsp模板引擎:       1. 在tomcat上,jsp不能在巢狀的tomcat容器解析即不能在打包成可執行的jar的情況下解析
           2. Jetty 巢狀的容器不支援jsp
           3. Undertow
 
[email protected]
預設就會在每個方法上加上@Responsebody,方法返回值會直接被httpmessageconverter轉化,如果想直接返回檢視,需要直接指定modelAndView。
 
 5.intellij下將springboot專案打成war包釋出到遠端tomcat伺服器上:
            1.將pom.xml中的打包方式修改為war             
    <groupId>com.borya</groupId>
     <artifactId>Project</artifactId>
     <version>0.0.1-SNAPSHOT</version>
     <packaging>war</packaging>
           2.在pom.xml中新增依賴,將scope狀態修改為provided                  
<dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
        <scope>provided</scope>
 </dependency>

  

          3.修改src/main/java下的application啟動項
               SpringBootServletInitializer這個類是springboot提供的web程式初始化的入口,當我們使用外部容器執行專案時會自動載入並且裝配。
               實現了SpringBootServletInitializer的子類需要重寫一個configure方法,方法內自動根據LessontwoApplication.class的型別建立一個SpringApplicationBuilder交付給springboot
               框架來完成初始化執行配置。
           
               @SpringBootApplication
               public class ProjectApplication extends SpringBootServletInitializer implements WebApplicationInitializer{
                @Override
                protected SpringApplicationBuilder configure(SpringApplicationBuilder application){
                 return application.sources(ProjectApplication.class);
                }
                public static void main(String[] args) {
                 SpringApplication.run(ProjectApplication.class, args);
                }
               }

  

               注意:
                ①.springboot2.0版本自帶的tomcat版本是8.5.X,所以自己使用的tomcat版本不能低於8.5,否則不相容會報錯
                ②.如果放入外部的tomcat執行,你在springboot配置檔案(.properties或者.yml)裡面配置的埠號是不生效的,訪問的時候得用tomcat配置檔案所配置的埠號。
6. 配置springboot支援jsp:
   pom.xml中不能引入如下配置:  
   <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
         </dependency>

  因為我引了報錯了。。。。


   在pom檔案中新增配置:
 
       <build>     
           <resources>
              <resource>
                 <directory>src/main/webapp</directory>
              </resource>
           </resources>
        </build>
還在試坑。。。