spring boot(一)入门
目錄
- spring boot(一)入門
- 一、簡介
- 1、微服務的概念
- 2、什么是spring boot
- 3、快速入門
- 4.springboot的快捷部署
- 一、簡介
spring boot(一)入門
一、簡介
1、微服務的概念
說起spring boot,我們不得不說一下“微服務”一詞的興起,微服務一詞最早起源于2014年,martin fowler發表的一篇文章Microservices,martin fowler在文中這樣描述了微服務的概念。
In short, the microservice architectural style [1] is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API.
簡而言之,微服務就是一種架構風格,即服務微化,一個服務應該是一組小型服務;服務之間通過HTTP的方式進行互通,相較于傳統的ALL IN ONE單體架構方式,微服務將每一個功能元素最終都是一個可獨立替換和獨立升級的軟件單元。
2、什么是spring boot
Spring Boot是由Pivotal團隊提供的全新框架,其設計目的是用來簡化新Spring應用的初始搭建以及開發過程。該框架使用了特定的方式來進行配置,從而使開發人員不再需要定義樣板化的配置。通過這種方式,Spring Boot致力于在蓬勃發展的快速應用開發領域(rapid application development)成為領導者 ——百度百科
眾所周知,最流行的、最受Java開發者喜好的框架當屬Spring,Spring也成為了在Java EE開發中真正意義上的標準,但是隨著新技術的發展隨著新技術的發展,在這個腳本語言大行其道的時代(Node JS,Ruby,Groovy,Scala等),Java EE使用Spring逐漸變得笨重起來,大量的XML文件存在于項目中,繁瑣的整合配置,復雜的監控,低下的開發效率和部署效率等等問題。spring boot的出現解決了上述的問題,讓我們更加高效快速的使用spring框架。
3、快速入門
3.1 環境及工具
- jdk1.8:Spring Boot 推薦jdk1.7及以上;我們使用java version "1.8.0_152"。
- 目前最新的springboot,spring boot 2.1.0 BUILD-SNAPSHAT 要求Java 8 or 9 和 Spring Framework 5.1.0.BUILD-SNAPSHOT 以上。
- IntelliJIDEA2018:我使用的是 IntelliJ IDEA 2018.1.3 x64、STS。
- SpringBoot : 使用1.5.10.RELEASE。
3.2 Maven設置
給maven 的settings.xml配置文件的profiles標簽添加指定jdk版本
<profile><id>jdk‐1.8</id><activation><activeByDefault>true</activeByDefault><jdk>1.8</jdk></activation><properties><maven.compiler.source>1.8</maven.compiler.source><maven.compiler.target>1.8</maven.compiler.target><maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion></properties> </profile>3.3 IDEA設置
3.4 Hello World
創建一個maven工程(jar工程)
pom.xml中導入spring boot的依賴,根據官方文檔的快速開始,引入一下依賴:
<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.5.10.RELEASE</version> </parent><!-- Additional lines to be added here... --><!-- (you don't need this if you are using a .RELEASE version) --><repositories><repository><id>spring-snapshots</id><url>https://repo.spring.io/snapshot</url><snapshots><enabled>true</enabled></snapshots></repository><repository><id>spring-milestones</id><url>https://repo.spring.io/milestone</url></repository></repositories><pluginRepositories><pluginRepository><id>spring-snapshots</id><url>https://repo.spring.io/snapshot</url></pluginRepository><pluginRepository><id>spring-milestones</id><url>https://repo.spring.io/milestone</url></pluginRepository></pluginRepositories>Spring Boot提供了許多“Starters”,可以將jar添加到類路徑中,spring-boot-starter-parent是一個特殊的啟動器,提供有用的Maven默認值,其他“Starters”提供了在開發特定類型的應用程序時可能需要的依賴項。由于我們正在開發Web應用程序,因此我們添加了 spring-boot-starter-web依賴項。在此之前,我們可以通過運行以下命令來查看當前的內容
$ mvn dependency:tree [INFO] com.example:myproject:jar:0.0.1-SNAPSHOT也可以在idea中 使用ctrl+alt+shift+u 查看依賴圖如下:
可以看到它spring-boot-starter-parent本身不提供依賴關系。要添加必要的依賴項,請編輯pom.xml并spring-boot-starter-web在該parent部分的正下方添加 依賴項:
<dependencies> <dependency> <groupId> org.springframework.boot </ groupId> <artifactId> spring-boot-starter-web </ artifactId> </ dependency> </ dependencies>再次查看依賴圖:如下
3.5 編寫主程序啟動應用
import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;/*** @program: springboot-01-HelloWorrld** @description: springboot主程序類** @author: cxw** @create: 2018-09-07 14:34**///springmvc的注解,提供web服務,接收瀏覽器請求并,向瀏覽器響應等同 @controller和@responseBody注解 @RestController @EnableAutoConfiguration public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);} }3.6 編寫controller響應瀏覽器請求
/*** home方法 向瀏覽器響應 Hello World*/@RequestMapping("/hello")public String home(){return "Hello World";}3.7 運行main方法,啟動程序
瀏覽器訪問localhost:8080/hello
可以看到,我們第一個spring boot項目已經啟動了。另外我們看到,這里Applicationjava被配置為自動配置的控制器,而且對于@EnableAutoConfiguration注解我們使用不熟悉,很容易忘記在控制層添加注解,其實spring boot 是可以使用一個主程序啟動spring bot項目,然后我們按照我們傳統的controller,service,dao三層編寫我們的程序,我們改進一下項目如下:
首先springboot的主程序入口:
//@SpringBootApplication?來標注一個主程序類, //說明這是一個Spring?Boot應用 @SpringBootApplication public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);} }我們定義兩個Controller控制層HelloController和HomeController,按照springmvc的方式,接收請求,返回響應。
package cn.news.chen.controller;/*** Project springboot-01-HelloWorrld* User cxw* Date 2018/9/7* Time 16:08* Description:*/import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody;/*** @program: springboot-01-HelloWorrld** @description: springboot控制層** @author: cxw** @create: 2018-09-07 16:08**/ @Controller @RequestMapping("/a") public class HomeController {@RequestMapping("/b")@ResponseBodypublic String hello(){return "這是我的第一個spring boot應用";} }HelloController.java
package cn.news.chen.controller;/*** Project springboot-01-HelloWorrld* User cxw* Date 2018/9/7* Time 16:39* Description:*/import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody;/*** @program: springboot-01-HelloWorrld** @description: 控制層HelloController** @author: cxw** @create: 2018-09-07 16:39**/ //@RestController和這個注解都是類級別的,使用@RestController說明該類下的所有方法都是向瀏覽器 //響應 @Controller public class HelloController {/*** home方法 向瀏覽器響應 Hello World*/@RequestMapping("/hello")@ResponseBodypublic String home(){return "Hello World";} }啟動訪問:
注意:如果按照`@SpringBootApplication`主程序的方式使用springboot,類Application.java 要在需要控制的springboot 組件的頂級包或者同一級的包下,才能使用主程序類啟動spring boot程序,springboot建議的目錄結構如下:com+- myproject+- demo+- Application.java|+- domain| +- User.java| +- UserRepository.java|+- service| +- UserService.java|+- controller| +- UserController.java|1、Application.java 建議放到根目錄下面,主要用于做一些框架配置。2、domain目錄主要用于實體(Entity)與數據訪問層(Repository)。3、service 層主要是業務邏輯層。4、controller 負責頁面訪問控制。4.springboot的快捷部署
首先,我們要在pom.xml文件中添加spring boot的打包(jar)插件,官網文檔中,給我們指出了使用的依賴,如圖:
pom.xml添加如下內容:
<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins> </build>然后,我們使用maven將我們的spring boot項目打包
可以看到在我們項目的target目錄下,已經打包成功了。我們使用jar包啟動的方式,啟動一下我們的springboot項目。
使用java -jar 的方式依然可以啟動我們的springboot項目,并且可以正常訪問,由此可以看到我們的springboot 使用嵌入式的Servlet容器,應用無需打成WAR包, starters自動依賴與版本控制,大量的自動配置,簡化開發,真正做到了 J2EE一站式解決方案。
轉載于:https://www.cnblogs.com/cxwzss/p/9593062.html
總結
以上是生活随笔為你收集整理的spring boot(一)入门的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: axios请求报Uncaught (in
- 下一篇: 201771010120 苏浪浪 《