第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

關(guān)于spring boot在eclipse中怎么用?

關(guān)于spring boot在eclipse中怎么用?

spring boot在eclipse中怎么用
查看完整描述

4 回答

?
偶然的你

TA貢獻(xiàn)1841條經(jīng)驗(yàn) 獲得超3個(gè)贊

要SpringBoot進(jìn)行功能開(kāi)發(fā),需要使用Gradle或者M(jìn)aven作為構(gòu)建工具。在本例中,我們會(huì)使用Eclipse和Maven插件進(jìn)行開(kāi)發(fā)。要使用SpringBoot,首先創(chuàng)建一個(gè)Maven工程,并修改Maven主要的配置文件pom.xml

查看完整回答
反對(duì) 回復(fù) 2019-09-14
?
jeck貓

TA貢獻(xiàn)1909條經(jīng)驗(yàn) 獲得超7個(gè)贊

Spring Boot充分利用了JavaConfig的配置模式以及“約定優(yōu)于配置”的理念,能夠極大的簡(jiǎn)化基于Spring
MVC的Web應(yīng)用和REST服務(wù)開(kāi)發(fā)。

Spring
4倡導(dǎo)微服務(wù)的架構(gòu),針對(duì)這一理念,近來(lái)在微博上也有一些有價(jià)值的討論,如這里和這里。微服務(wù)架構(gòu)倡導(dǎo)將功能拆分到離散的服務(wù)中,獨(dú)立地進(jìn)行部署,Spring
Boot能夠很方便地將應(yīng)用打包成獨(dú)立可運(yùn)行的JAR包,因此在開(kāi)發(fā)模式上很契合這一理念。目前,Spring
Boot依然是0.5.0的里程碑版本,因此相關(guān)的文檔尚不完善,本文將會(huì)以一個(gè)簡(jiǎn)單的樣例來(lái)介紹基于這個(gè)項(xiàng)目的開(kāi)發(fā)過(guò)程。

要Spring
Boot進(jìn)行功能開(kāi)發(fā),需要使用Gradle或者M(jìn)aven作為構(gòu)建工具。在本例中,我們會(huì)使用Eclipse和Maven插件進(jìn)行開(kāi)發(fā)。要使用Spring
Boot,首先創(chuàng)建一個(gè)Maven工程,并修改Maven主要的配置文件pom.xml,如下所示:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>0.5.0.M7</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.thymeleaf</groupId>
<artifactId>thymeleaf-spring3</artifactId>
</dependency>
</dependencies>

<properties>
<start-class>com.levin.Application</start-class>
</properties>

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

<repositories>
<repository>
<id>spring-milestone</id>
<url>http://repo.spring.io/libs-milestone</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>

<pluginRepositories>
<pluginRepository>
<id>spring-milestone</id>
<url>http://repo.spring.io/libs-milestone</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>

在上面的配置中,需要將工程的parent設(shè)置為spring-boot-starter-parent,并添加對(duì)spring-boot-starter-web的依賴,這樣我們就無(wú)需設(shè)置各個(gè)依賴項(xiàng)及其版本信息了。并且在構(gòu)建中要聲明使用spring-boot-maven-plugin這個(gè)插件,它會(huì)對(duì)Maven打包形成的JAR進(jìn)行二次修改,最終產(chǎn)生符合我們要求的內(nèi)容結(jié)構(gòu)。

在我們的應(yīng)用中將要發(fā)布一個(gè)REST服務(wù),顯示一個(gè)基本的用戶信息,首先定義一個(gè)簡(jiǎn)單的模型類:

package com.levin;

public class Person {
private String name;
private String email;

public Person(String name, String email) {
this.name = name;
this.email = email;
}

public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}

}

接下來(lái),我們需要聲明一個(gè)Spring MVC的Controller,響應(yīng)對(duì)實(shí)體的請(qǐng)求:
@Controller
public class ShowPersonController {
@RequestMapping("/showPerson")
public @ResponseBody Person showPerson() {
return new Person("levinzhang","levinzhang1981@gmail.com");
}
}

這個(gè)類與我們?cè)谑褂肧pring MVC定義Controller時(shí)并無(wú)任何差別。接下來(lái),我們需要聲明一個(gè)主類啟動(dòng)這個(gè)應(yīng)用程序:
@ComponentScan
@EnableAutoConfiguration
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}

這個(gè)類的main方法中使用了SpringApplication幫助類,并以Application這個(gè)類作為配置來(lái)啟動(dòng)Spring的應(yīng)用上下文。在這個(gè)類中使用了ComponentScan以及EnableAutoConfiguration注解,其中ComponentScan注解會(huì)告知Spring掃描指定的包來(lái)初始化Spring
Bean,這能夠確保我們聲明的Bean能夠被發(fā)現(xiàn)。EnableAutoConfiguration將會(huì)啟動(dòng)自動(dòng)配置模式,在我們的配置中會(huì)將對(duì)Tomcat的依賴級(jí)聯(lián)進(jìn)來(lái),因此在應(yīng)用啟動(dòng)時(shí)將會(huì)自動(dòng)啟動(dòng)一個(gè)嵌入式的Tomcat,因?yàn)樵跇永惺褂昧薙pring
MVC,所以也會(huì)自動(dòng)注冊(cè)所需的DispatcherServlet,這都不需要類似web.xml這樣的配置。

在Eclipse中要運(yùn)行這個(gè)應(yīng)用的話,可以直接以Java
Application的形式來(lái)運(yùn)行這個(gè)main函數(shù),此時(shí)會(huì)啟動(dòng)應(yīng)用,我們?cè)跒g覽器中可以看到如下的運(yùn)行效果,這就是我們想要的REST服務(wù):

在開(kāi)發(fā)調(diào)試完成之后,可以將應(yīng)用打成JAR包的形式,在Eclipse中可以直接使用Maven插件的package命令,最終會(huì)形成一個(gè)可運(yùn)行的JAR包。我們使用java
–jar命令就可以運(yùn)行這個(gè)JAR包了。所呈現(xiàn)出的效果與在調(diào)試期是一樣的?,F(xiàn)在看一下這個(gè)JAR包解壓后的目錄結(jié)構(gòu)

這個(gè)JAR包與傳統(tǒng)JAR包的不同之處在于里面有一個(gè)名為lib的目錄,在這個(gè)目錄中包含了這個(gè)簡(jiǎn)單應(yīng)用所依賴的其他JAR包,其中也包含內(nèi)置的嵌入式Tomcat,正是使用它,才能發(fā)布服務(wù)和訪問(wèn)Web資源。除了我們編寫的源碼所編譯形成的CLASS以外,在org目錄下還有許多Spring所提供的CLASS,正是依賴這些CLASS,才能夠加載位于lib目錄下JAR中的類。這樣的加載機(jī)制與在OSGi
bundle中聲明Bundle-Classpath很類似,不過(guò)在OSGi中會(huì)由容器來(lái)負(fù)責(zé)加載指定路徑下的類。這大致闡述了這樣一個(gè)JAR包能夠發(fā)布服務(wù)的原因。

如果我們想要使用HTML、JSP等Web資源的話,在Controller中直接返回對(duì)應(yīng)的視圖就可以了。

如果我們想要將這個(gè)JAR包轉(zhuǎn)換成可以在Servlet容器中部署的WAR的話,就不能依賴于Application的main函數(shù)了,而是要以類似于web.xml文件配置的方式來(lái)啟動(dòng)Spring應(yīng)用上下文,此時(shí)我們需要聲明這樣一個(gè)類:
public class HelloWebXml extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(Application.class);
}

}

這個(gè)類的作用與在web.xml中配置負(fù)責(zé)初始化Spring應(yīng)用上下文的監(jiān)聽(tīng)器作用類似,只不過(guò)在這里不需要編寫額外的XML文件了。

如果要將最終的打包形式改為WAR的話,還需要對(duì)pom.xml文件進(jìn)行修改,除了需要將packaging的值修改為war以外,還需要對(duì)依賴進(jìn)行適當(dāng)?shù)呐渲茫ㄟ@一部分在Spring
Boot的樣例和文檔中均未提及,提醒大家注意):
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>

在這里需要移除對(duì)嵌入式Tomcat的依賴,這樣打出的WAR包中,在lib目錄下才不會(huì)包含Tomcat相關(guān)的JAR包,否則將會(huì)出現(xiàn)啟動(dòng)錯(cuò)誤。另外,在移除對(duì)Tomcat的依賴后,為了保證編譯正確,還需要添加對(duì)servlet-api的依賴,因此添加如下的配置:

<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-servlet-api</artifactId>
<version>7.0.42</version>
<scope>provided</scope>
</dependency>

在這里將scope屬性設(shè)置為provided,這樣在最終形成的WAR中不會(huì)包含這個(gè)JAR包,因?yàn)門omcat或Jetty等服務(wù)器在運(yùn)行時(shí)將會(huì)提供相關(guān)的API類。此時(shí),執(zhí)行mvn
package命令就會(huì)得到一個(gè)WAR文件,我們可以直接將其放到Tomcat下運(yùn)行(需要7.0.42版本以上)。

以上介紹了基于Spring Boot開(kāi)發(fā)應(yīng)用的過(guò)程,目前它的文檔尚不完善,但是在GitHub上有不少的樣例,包括與Spring
Data集成訪問(wèn)數(shù)據(jù)庫(kù)(關(guān)系型以及非關(guān)系型)、安全、WebSocket等,讀者感興趣可以下載運(yùn)行,需要注意的是有些樣例中使用的是0.5.0.M6版本,這個(gè)版本有問(wèn)題,運(yùn)行時(shí)會(huì)出錯(cuò),建議手動(dòng)修改為0.5.0.M7或快照版本。

基于以上的介紹,希望讀者能夠?qū)pring
Boot這個(gè)新項(xiàng)目有所了解。它簡(jiǎn)化了JAR包管理和相關(guān)基礎(chǔ)設(shè)施環(huán)境的配置,能夠幫助我們快速開(kāi)發(fā)Web應(yīng)用或構(gòu)建REST服務(wù),希望它能夠盡快完善成熟,更多地用于實(shí)踐,提升開(kāi)發(fā)效率。



查看完整回答
反對(duì) 回復(fù) 2019-09-14
  • 4 回答
  • 0 關(guān)注
  • 813 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)