歡迎訪問昆山寶鼎軟件有限公司網站! 設為首頁 | 網站地圖 | XML | RSS訂閱 | 寶鼎郵箱 | 后臺管理
?

新聞資訊

MENU

軟件開發知識

Spring Boot starter 通過添加一個 勞務派遣信息管理系統 依賴來幫助減少手動添加依賴的數量

點擊: 次  來源:寶鼎軟件 時間:2017-10-26

原文出處: Oopsguy

1、概述

依賴打點是任何巨大項目標要害部門。以手動的方法來實現依賴打點不太現實,你得花更多時間,同時你在項目標其他重要方面能支付的時間就會變得越少。

Spring Boot starter 就是為了辦理這個問題而降生的。Starter POM 是一組利便的依賴描寫符,您可以將其包括在應用措施中。您可以得到所需的所有 Spring 和相關技能的一站式處事,無需通過示例代碼搜索和復制粘貼依賴。

我們有高出 30 個 Boot starter — 下文將提到個中一部門。

2、Web Starter

首先,讓我們來看看 REST 處事開拓。我們可以利用像 Spring MVC、Tomcat 和 Jackson 這樣的庫,這對付單個應用措施來說是照舊存在很多依賴。

Spring Boot starter 通過添加一個依賴來輔佐淘汰手動添加依賴的數量。 因此,軟件開發,不要手動指定依賴,您只需要添加一個 starter 即可,如下所示:

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

此刻我們可以建設一個 REST 節制器。為了簡樸起見,我們不會利用數據庫,軟件開發,只專注于 REST 節制器:

@RestController
public class GenericEntityController {
    private List<GenericEntity> entityList = new ArrayList<>();
 
    @RequestMapping("/entity/all")
    public List<GenericEntity> findAll() {
        return entityList;
    }
 
    @RequestMapping(value = "/entity", method = RequestMethod.POST)
    public GenericEntity addEntity(GenericEntity entity) {
        entityList.add(entity);
        return entity;
    }
 
    @RequestMapping("/entity/findby/{id}")
    public GenericEntity findById(@PathVariable Long id) {
        return entityList.stream().
                 filter(entity -> entity.getId().equals(id)).
                   findFirst().get();
    }
}

GenericEntity 是一個簡樸的 bean,id 的范例為 Long,value 為 String 范例。

就是這樣,應用措施可以開始運行了,您可以會見 http://localhost:8080/springbootapp/entity/all 并查抄節制器是否正常事情。

我們已經建設了一個設置很是少的 REST 應用措施。

3、Test Starter

對付測試,我們凡是利用以下組合:Spring Test、JUnit、Hamcrest 和 Mockito。我們可以手動包括所有這些庫,但利用以下 Spring Boot starter 方法可以自動包括這些庫:

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

請留意,您不需要指定工件的版本號。Spring Boot 會自動選擇符合的版本 — 您僅需要指定 spring-boot-starter-parent-artifact 的版本。 假如之后您想要進級 Boot 庫和依賴,只需在一個處所進級 Boot 版本即可,它將會處理懲罰其余部門。

讓我們來測試一下之前建設的節制器。

測試節制器有兩種要領:

  • 利用 mock 情況
  • 利用嵌入式 Servlet 容器(如 Tomcat 或 Jetty)
  • 在本例中,我們將利用一個 mock 情況:

    @RunWith(SpringJUnit4ClassRunner.class)
    @SpringApplicationConfiguration(classes = Application.class)
    @WebAppConfiguration
    public class SpringBootApplicationTest {
        @Autowired
        private WebApplicationContext webApplicationContext;
        private MockMvc mockMvc;
     
        @Before
        public void setupMockMvc() {
            mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).build();
        }
     
        @Test
        public void givenRequestHasBeenMade_whenMeetsAllOfGivenConditions_thenCorrect()
          throws Exception { 
            MediaType contentType = new MediaType(MediaType.APPLICATION_JSON.getType(),
            MediaType.APPLICATION_JSON.getSubtype(), Charset.forName("utf8"));
            mockMvc.perform(MockMvcRequestBuilders.get("/entity/all")).
            andExpect(MockMvcResultMatchers.status().isOk()).
            andExpect(MockMvcResultMatchers.content().contentType(contentType)).
            andExpect(jsonPath("$", hasSize(4))); 
        } 
    }

    這里重要的是 @WebAppConfiguration 注解和 MockMVC 是 spring-test 模塊的一部門,hasSize 是一個 Hamcrest matcher,@Before 是一個 JUnit 注解。這些都可以通過導入這一個這樣的 starter 依賴來引入。

    4、Data JPA Starter

    大大都 Web 應用措施都存在某些耐久化 — 常見的是 JPA。

    讓我們利用 starter 來開始,而不是手動界說所有關聯的依賴:

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    <dependency>
        <groupId>com.pdatabase</groupId>
        <artifactId>p</artifactId>
        <scope>runtime</scope>
    </dependency>

    請留意,我們對這些數據庫已經有了開箱即用的自動支持:p、Derby 和 Hsqldb。在我們的示例中,軟件開發,我們將利用 p。

    此刻讓我們為實體建設倉儲(repository):

    public interface GenericEntityRepository extends JpaRepository<GenericEntity, Long> {}
    排列三305组选前后关系 豌豆财富 云南十一选五遗漏任五 湖北11选五的开奖结果走势图 广东36选7中奖说明 排列三口诀 贵州11选5走势 江苏快3一定牛推荐号 云南十一选五开奖今天 浙江20选5开状号码 香港现场直播结果开奖