來(lái)源:似水的流年 發(fā)布時(shí)間:2018-09-18 16:04:33 閱讀量:978
1 生成基本的項(xiàng)目結(jié)構(gòu)
1.1 使用Spring Initializr新建一個(gè)項(xiàng)目。
注意:這里Packaging要選war包,這個(gè)選項(xiàng)對(duì)自動(dòng)生成的代碼有影響,下面會(huì)說(shuō)。
這里就算不勾選Web,由于之前選了打war包,也會(huì)生成web項(xiàng)目。
gradle推薦使用默認(rèn)的,會(huì)自動(dòng)下載,如果下載很慢的,那就選Use local gradle distribution,指定自己本地的gradle路徑。
1.2 gradle文件配置
創(chuàng)建完項(xiàng)目后,可能在右下角會(huì)看到這個(gè)提示
表示gradle文件已改變,是否需要導(dǎo)入新的依賴(lài),這里我們點(diǎn)Enable Auto-Import,這個(gè)選項(xiàng)的意思是只要你改動(dòng)了build.gradle文件,就會(huì)自動(dòng)刷新依賴(lài)
注意:下次重啟Intellij可能會(huì)出現(xiàn)下圖的提示
那就點(diǎn)Create Default Context,創(chuàng)建默認(rèn)的Context
我們前面Packaging勾選war產(chǎn)生的效果就是
1.增加了apply plugin: 'war',war插件
2.providedRuntime('org.springframework.boot:spring-boot-starter-tomcat'),表示代碼在運(yùn)行時(shí)需要的依賴(lài),providedRuntime是指依賴(lài)的Jar包不會(huì)被加到War包里面。
然后配置熱部署,熱部署是指一旦項(xiàng)目run起來(lái),我們就不需要再次run了,只需要編譯修改的文件或者編譯整個(gè)工程,修改就會(huì)自動(dòng)部署,這里還是用spring的springloaded。
在buildscript的dependencies中加入:
classpath 'org.springframework:springloaded:1.2.7.RELEASE'
之后代碼有修改只需要編譯修改了的代碼(單個(gè)文件:菜單欄build/recompile….,多個(gè)就要在左邊的Project中選中修改的文件,右鍵,rebuild,或者直接整個(gè)工程重新編譯)就行了。
1.3 工程目錄配置
工程目錄中,基本配置其實(shí)都自動(dòng)生成好了,自動(dòng)生成的文件目錄如下圖所示:
這里有兩個(gè)類(lèi),HexiApplication和ServletInitializer。
public class ServletInitializer extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(HexiApplication.class); } }
@SpringBootApplication public class HexiApplication { public static void main(String[] args) { SpringApplication.run(HexiApplication.class, args); } }
Packaging勾選war還有一個(gè)效果就是會(huì)生成一個(gè)ServletInitializer。因?yàn)轫?xiàng)目要部署到tomcat,啟動(dòng)類(lèi)必須繼承自SpringBootServletInitializer,主要起到web.xml的作用。
注意:這里我們解釋下@SpringBootApplication
@SpringBootApplication等價(jià)于@Configuration、@EnableAutoConfiguration、@ComponentScan,查看SpringBootApplication注解可以發(fā)現(xiàn)@ComponentScan并沒(méi)有添加任何的參數(shù),它會(huì)自動(dòng)掃描工程里所有的@Component, @Service, @Repository, @Controller并把它們注冊(cè)為Spring Beans。
其實(shí)現(xiàn)在一個(gè)最簡(jiǎn)單的springboot項(xiàng)目我們已經(jīng)搭建完成了。什么?不相信?,你可以運(yùn)行一下HexiApplication這個(gè)文件呀。會(huì)報(bào)你未配置dataSource,我們?nèi)缦聢D所示進(jìn)行一下配置即可完成一個(gè)最簡(jiǎn)單的springboot項(xiàng)目進(jìn)行跑通
spring.datasource.url=jdbc:mysql://localhost:3306/maxrocky
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.jpa.database = mysql
賬號(hào)密碼當(dāng)然你要配置成你自己的。OK 項(xiàng)目跑起來(lái)了。最簡(jiǎn)單的springboot項(xiàng)目搭建完成。
2 控制器的編寫(xiě)
按如圖所示包結(jié)構(gòu)新建包和類(lèi)。
HelloController
@RestController("/hello") public class HelloController { private HelloWorld helloWorld; public HelloController(HelloWorld helloWorld) { this.helloWorld = helloWorld; } @GetMapping public String hello() { return helloWorld.hello(); } }
HelloWorld
@Component public class HelloWorld { public String hello() { return "Hello World!"; } }
這里我們的HelloWorld或HelloController都沒(méi)有@AutoWired注解(@Autowired注釋可以對(duì)類(lèi)成員變量、方法及構(gòu)造函數(shù)進(jìn)行標(biāo)注,完成自動(dòng)裝配的工作。 通過(guò)@Autowired的使用來(lái)消除set,get方法)。因?yàn)镾pring的文檔寫(xiě)到了如果只有一個(gè)構(gòu)造函數(shù),就可以省略這個(gè)注釋。如果有多個(gè),則要加上。
@RestController("/hello")
public class HelloController {
private HelloWorld helloWorld;
@AutoWired
public HelloController(HelloWorld helloWorld) {
this.helloWorld = helloWorld;
}
...
}
@AutoWired會(huì)尋找和構(gòu)造函數(shù)參數(shù)類(lèi)型匹配的bean,把它們作為傳入?yún)?shù)來(lái)創(chuàng)建HelloController。
@Component泛指組件,一般用于普通POJO,當(dāng)組件不好歸類(lèi)的時(shí)候,也可以使用這個(gè)注解進(jìn)行標(biāo)注。
@Service用于標(biāo)注業(yè)務(wù)層組件
@RestController用于標(biāo)注控制層組件。@RestController同時(shí)包含了@Controller、@ResponseBody。
@GetMapping也是一個(gè)組合注解,相當(dāng)于@RequestMapping(method = RequestMethod.GET)的縮寫(xiě)。 類(lèi)似的還有@PostMapping、@PutMapping、@DeleteMapping。
3 運(yùn)行應(yīng)用
如圖所示,打開(kāi)右邊的gradle,找到bootRun運(yùn)行。跑起來(lái)后,下面的run工具窗口會(huì)一直顯示在運(yùn)行。此時(shí)打開(kāi)瀏覽器,輸入http://localhost:8080/hello,就可以看到Hello World!了。如果運(yùn)行出錯(cuò),則在Terminal工具窗口輸入`./gradlew bootRun’看錯(cuò)誤日志。
tomcat部署
之前提到過(guò)tomcat,但這個(gè)是可選的,如果你安裝了tomcat,那如何在tomcat里調(diào)試呢?
點(diǎn)擊菜單里的Run->EditConfigurations,在彈出的菜單的左上角點(diǎn)擊加號(hào),然后選擇tomcat server->local,做如下圖中的配置:
注意deployment標(biāo)簽內(nèi)的設(shè)置
完成以后,就可以從tomcat中調(diào)試了。
在線(xiàn)
客服
服務(wù)時(shí)間:周一至周日 08:30-18:00
選擇下列產(chǎn)品馬上在線(xiàn)溝通:
客服
熱線(xiàn)
7*24小時(shí)客服服務(wù)熱線(xiàn)
關(guān)注
微信
關(guān)注官方微信