前言
- 最近在跟著一個springboot的開發(fā)教程在學。但是他不是用的主流的maven工程建的項目笤休,而是用的gradle尖飞。因為沒有用過gradle,所以為了按照他講的內容來系統(tǒng)學一下店雅,只能把gradle學一學了政基。在他課程里,跳躍的也很快的闹啦,在利用Eclipse插件編寫gradle項目的時候沮明,他是直接已經打開了項目了,卻沒有介紹窍奋,是如何把項目導入進去的荐健。一臉懵逼,只能自己去網(wǎng)上先學下Eclipse是如何把項目導入進去的琳袄。
- 網(wǎng)上也有很多教程江场,也參照的一下 ,下面是我如何導入成功的一個過程記錄窖逗。一方面自己以后回頭查看址否。
軟件插件版本
- eclipse : Oxygen.3a Release (4.7.3a)
- gradle:4.9
- jdk :1.8.0_151
Eclipse可以導入項目的前提
- 安裝有gradle的插件
- gradle插件 需要配置本地的gradle安裝路徑
- 是gradle的工程項目
導入gradle項目的步驟
- 安裝gradle插件 (自帶了有可以忽視此步)
-
這里用的是Eclipse在線安裝。跟Eclipse安裝其他的插件一樣碎紊,
首先是在help->enterMartketplace->在搜索框中輸入gradle->go即可
然后在eclipse中配置本地的gradle
步驟:eclipse中的window中的Preference佑附,找到Gradle樊诺,然后如下如配置本地gradle的安裝路徑,點擊apply
-
- gradle工程項目
- 1.接著上一篇文章的項目intiallizr-start所在的文件夾:D:\gradle-work的路徑下
再新建一個hello-world文件夾音同。
然后再把intiallizr-start文件下的先關文件拷貝過去词爬,如下如所示
-
2.接著修改hello-world下的文件build.gradle和setting.gradle
build.gradle是只修改一處:修改jar的版本號。目的是為了方便java編譯運行的時候輸入方便瘟斜,不用寫這么長
- 1.接著上一篇文章的項目intiallizr-start所在的文件夾:D:\gradle-work的路徑下
修改setting.gradle 文件:目的是為了更改項目名稱為對應的名字缸夹,這里是更改為hello-world
- 3.上面的文件更改完成后,下面就是通過命令窗口輸入命令行進行build和編譯運行螺句。首先是在hello-world目錄下打開cmd命令窗口
然后輸入 gradle build。點擊確定進行項目構建橡类。然后在輸入
java -jar build/libs/hello-world-1.0.0.jar對項目進行編譯運行蛇尚,就能夠看到springboot的圖標和Tomcat的8080端口。那么到此步顾画,eclipse的導入需要的gradle項目完成
-
最后一步是利用eclipse導入gradle項目
點擊file下的import取劫,然后選擇Existing Gradle Project
然后下一步next,next研侣,填寫剛才創(chuàng)建的gradle項目谱邪,如下圖
然后點擊finish即可自動完成該項目所需要的jar包和導入gradle項目了
如下圖:
-
下面是導入gradle的項目結構,如下圖庶诡,這里我把原來的包名和啟動類名稱改了一下
然后再新建一個controller包惦银,再該包下新建一個HelloWorldController類
如下
package com.waylau.spring.boot.blog.controller;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import static org.hamcrest.Matchers.equalTo;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
/**
* perform:執(zhí)行一個RequestBuilder請求,會自動執(zhí)行SpringMVC的流程并映射到
* 相應的控制器執(zhí)行處理末誓;
* andExpect:添加ResultMatcher驗證規(guī)則扯俱,驗證控制器執(zhí)行完成后結果是否正確;
* @author: crj
* @date: 2018年8月20日 下午4:35:55
*/
@RunWith(SpringRunner.class)
@SpringBootTest
@AutoConfigureMockMvc //為了注入MockMvc
public class HelloWorldControllerTest {
@Autowired
private MockMvc mockMvc;//這里是利用MockMvc這個來測試
@Test
public void testHello() throws Exception {
mockMvc.perform(MockMvcRequestBuilders.get("/hello").accept(org.springframework.http.MediaType.APPLICATION_JSON))
.andExpect(status().isOk())
.andExpect(content().string(equalTo("hello world!")));
}
}
在這里在惡補一下MockMvc的知識
文章鏈接
隨著RESTful Web Service的流行喇澡,測試對外的Service是否滿足期望也變的必要的迅栅。從Spring 3.2開始Spring了Spring Web測試框架,Spring MVC測試框架提供了對服務器端和客戶端(基于RestTemplate的客戶端)提供了支持晴玖。
對于服務器端:在Spring 3.2之前读存,我們測試時一般都是直接new控制器,注入依賴呕屎,然后判斷返回值让簿。
package com.gtyyx.dao;
import static org.junit.Assert.assertEquals;
import java.util.UUID;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import com.gtyyx.model.UserLogin;
/**
* @author: crj
* @date: 2018年8月16日 上午10:00:15
*/
@RunWith(SpringRunner.class)
@SpringBootTest
public class UserLoginMapperTest {
@Autowired
private UserLoginMapper userLoginmapper;
@Test
public void test1() throws Exception {
UserLogin user = new UserLogin();
user.setTusername("wsl1");
user.setTuserordrowid(UUID.randomUUID().toString());
user.setTuserpassword("123456");
int effectedNum = userLoginmapper.insert(user);
assertEquals(1,effectedNum);
}
}
但是我們無法連同Spring MVC的基礎設施(如DispatcherServlet調度、類型轉換榨惰、數(shù)據(jù)綁定拜英、攔截器等)一起測試,另外也沒有現(xiàn)成的方法測試如最終渲染的視圖(@ResponseBody生成的JSON/XML琅催、JSP居凶、Velocity等)內容是否正確虫给。從Spring 3.2開始這些事情都可以完成了。而且可以測試完整的Spring MVC流程侠碧,即從URL請求到控制器處理抹估,再到視圖渲染都可以測試。下面是上面HelloWorldController的測試用例
package com.waylau.spring.boot.blog.controller;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import static org.hamcrest.Matchers.equalTo;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
/**
* @author: crj
* @date: 2018年8月20日 下午4:35:55
*/
@RunWith(SpringRunner.class)
@SpringBootTest
@AutoConfigureMockMvc
public class HelloWorldControllerTest {
@Autowired
private MockMvc mockMvc;
@Test
public void testHello() throws Exception {
mockMvc.perform(MockMvcRequestBuilders.get("/hello").accept(org.springframework.http.MediaType.APPLICATION_JSON))
.andExpect(status().isOk())
.andExpect(content().string(equalTo("hello world!")));
}
}
運行hello-worldd的方式
- java -jar build/libs/hello-world-1.0.0.jar
- gradle bootRun
- gradlew bootRun
- eclipse 下運行Application.java主文件
以上上面的記錄都是根據(jù)學習老衛(wèi)的springboot視頻教程的所做的弄兜,僅當學習所用药蜻。