微服務架構之Spring Boot入門
阿新 • • 發佈:2019-02-16
今天我們來說說微服務,但是首先要說說我們目前開發的大部分專案,目前我們開發的專案都是比較集中的單體應用,就是將所有功能集中在一起,在專案擴充套件過程中,升級,優化某一部分就會影響所有的模組,在管理和升級中有利有弊,並且所有模組相對集中,依賴較強,為了解決模組相對集中,資源使用相對集中的問題就出現了分散式,分散式可有效降低模組間的耦合和資源爭用的問題。今天我們來說說spring的微服務,今天重入門開始,先說說Spring Boot。Spring是Spring推出的快速開發,內含容器的快速開發框架,Spring Boot使用約定大於配置的方式,自動根據依賴確定環境配置,達到快速開發快速上線的目的。
先上工程截圖,這個是個maven工程,結構如下,今天的例項就是一個演示,比較簡單,先不涉及yml和properties的配置說明,後續會專門詳細講解,因為spring boot是基於spring mvc的,如果你有spring mvc的相關開發經驗,那麼你就能很快的學會這個教程,並且理解他,接下來我們就先上程式碼,然後在進行講解。
這個是POM.Xml這裡我們將工程打成了war包,同時測試tomcat中的效能情況,我們今天主要配置了基本的spring boot依賴。<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>Demo2</groupId> <artifactId>Demo2</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.9.RELEASE</version> </parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <!-- 移除嵌入式tomcat外掛 --> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <scope>provided</scope> </dependency> </dependencies> <build> <finalName>Demo1</finalName> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
package org.demo2.controller; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }
package org.demo2.controller;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.support.SpringBootServletInitializer;
public class SpringBootStartApplication extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
// 注意這裡要指向原先用main方法執行的Application啟動類
return builder.sources(Application.class);
}
}
package org.demo2.controller;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@EnableAutoConfiguration
public class SampleController {
@RequestMapping("/sample")
public String home() {
return "Hello World!";
}
}
通過以上三個類就可以完成基於內容容器和外接容器的測試了,我們先說下基於外接容器,外接容器我們需要對啟動做些修改,需要初始化一個SpringApplicationBuilder
這個類,這類能被tomcat等servlet容器所識別並且執行。如果不需要,我們直接以java的執行形式,執行application即可。然後我們就可以在瀏覽器中訪問了。
如果我們是基於spring boot的方式訪問,我們在地址需要輸入http://IP:port/requestURI
如果我們是基於web的方式訪問,我們需要在實質輸入 http://IP:port/project/requestURI
區別還是很大的,需要我們去注意的地方還是很多。