①SpringBoot入門教學篇

1、什麼是spring boot 

Spring Boot是由Pivotal團隊提供的全新框架,其設計目的是用來簡化新Spring應用的初始搭建以及開發過程。該框架使用了特定的方式來進行配置,從而使開發人員再也不須要定義樣板化的配置。用個人話來理解,就是spring boot其實不是什麼新的框架,它默認配置了不少框架的使用方式,就像maven整合了全部的jar包,spring boot整合了全部的框架(不知道這樣比喻是否合適)。java

2、spring boot的優點

其實就是簡單、快速、方便!平時若是咱們須要搭建一個spring web項目的時候須要怎麼作呢?web

1)配置web.xml,加載spring和spring mvcspring

2)配置數據庫鏈接、配置spring事務數據庫

3)配置加載配置文件的讀取,開啓註解json

4)配置日誌文件瀏覽器

tomcat

配置完成以後部署tomcat 調試springboot

mvc

如今很是流行微服務,若是我這個項目僅僅只是須要發送一個郵件,若是個人項目僅僅是生產一個積分;我都須要這樣折騰一遍! app

可是若是使用spring boot呢?

很簡單,我僅僅只須要很是少的幾個配置就能夠迅速方便的搭建起來一套web項目或者是構建一個微服務!

3、快速搭建SpirngBoot工程項目

訪問http://start.spring.io/,選擇構建的工具,SpringBoot版本以及一些工程信息,點擊「Switch to the full version.」java版本能夠選擇8,如圖所示

點擊Generate Project下載項目壓縮包。將工程導入eclipse便可。

導入後目錄結構如圖:

如上圖所示,Spring Boot的基礎結構共三個文件: 

  • src/main/java 程序開發以及主程序入口

  • src/main/resources 配置文件

  • src/test/java 測試程序

另外,springBoot在新增目錄的時候給出了官方的建議,root package結構:com.example.myproject。

com

  +- example

    +- myproject

      +- Application.java

      |

      +- domain

      |  +- Customer.java

      |  +- CustomerRepository.java

      |

      +- service

      |  +- CustomerService.java

      |

      +- controller

      |  +- CustomerController.java

      |

其中:
1.Application.java 建議放到根目錄下面,主要用於作一些框架配置
2.domain目錄主要用於實體(Entity)與數據訪問層(Repository)
3.service 層主要是業務類代碼
4.controller 負責頁面訪問控制

最後,啓動Application main方法,至此一個java項目搭建好了!控制檯輸出:

有時候由於springboot自帶的一些問題,會出現如下報錯:

能夠將spring-boot-starter-parent版本下降一個或兩個版本,好比本文

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <!-- <version>2.0.2.RELEASE</version> -->
        <version>1.4.7.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

從新啓動便可。

4、其餘相關說明

web模塊開發:

在pom.xml文件中引入

<dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
 </dependency>

pom.xml文件中默認有兩個模塊: 

spring-boot-starter :核心模塊,包括自動配置支持、日誌和YAML; 

spring-boot-starter-test :測試模塊,包括JUnit、Hamcrest、Mockito。

編寫Restcontroller

@RestController
public class Restcontroller {

        @RequestMapping("/hello.do")
        public TestObjectBean testStr(){    
            TestObjectBean objectBean=new TestObjectBean();
            objectBean.setId(UUID.randomUUID().toString().replaceAll("-", ""));
            objectBean.setName("TestDemo");
            objectBean.setStatus("open");
            return objectBean;        
        }
}

TestObjectBean

public class TestObjectBean {

    private String Id;
    private String name;
    private String status;
    
    public String getId() {
        return Id;
    }
    public void setId(String id) {
        Id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getStatus() {
        return status;
    }
    public void setStatus(String status) {
        this.status = status;
    }
    
} 

瀏覽器訪問,controller裏面的方法都以json格式輸出,不用再寫什麼jackjson配置的了!

 

單元測試

打開的src/test/下的測試入口,編寫簡單的http請求來測試;使用mockmvc進行,利用MockMvcResultHandlers.print()打印出執行結果。

@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = MockServletContext.class)
@WebAppConfiguration
public class RestControllerTest {
      private MockMvc mvc;
      @Before
      public void setUp() throws Exception {
          mvc = MockMvcBuilders.standaloneSetup(new Restcontroller()).build();
      }
      
      @Test      
      public void getHello() throws Exception {
        mvc.perform(MockMvcRequestBuilders.get("/hello.do").accept(MediaType.APPLICATION_JSON))
                    .andExpect(MockMvcResultMatchers.status().isOk())
                    .andDo(MockMvcResultHandlers.print())
                    .andReturn();
      }
      
}

備註:舊版的springBoot是用@SpringApplicationConfiguration註解,最新版是用@SpringBootTest

開發環境熱部署調試

springBoot對調試支持很好,修改後能夠實時生效,須要在pom.xml添加如下配置:

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
        <optional>true</optional>
    </dependency>
</dependencies>
 

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <fork>true</fork>
            </configuration>
        </plugin>
  </plugins>
</build>

該模塊在完整的打包環境下運行的時候會被禁用。若是你使用java -jar啓動應用或者用一個特定的classloader啓動,它會認爲這是一個「生產環境」。

相關文章
相關標籤/搜索