Springboot簡單介紹
Springboot入門介紹
一、Spring框架概述
1.1 什麼是Spring
Spring是一個開源框架,Spring是於2003 年興起的一個輕量級的Java 開發框架,由Rod Johnson 在其著作《Expert One-On-One J2EE Development and Design》。Spring是為了解決企業級應用開發的複雜性而建立的,使用Spring可以讓簡單的JavaBean實現之前只有EJB才能完成的事情。但是Spring不僅僅侷限於伺服器端開發,任何Java應用都能在簡單性、可測試性和鬆耦合性等方面從Spring中獲益。
1.2 Spring是如何簡化Java開發的
為了降低Java開發的複雜性,Spring採用了以下4種關鍵策略:
1、基於POJO的輕量級和最小侵入性程式設計;
2、通過依賴注入(DI)和麵向介面實現鬆耦合;
3、基於切面(AOP)和慣例進行宣告式程式設計;
4、通過切面和模版減少樣式程式碼;
二、SpringBoot簡介
2.1什麼是SpringBoot
Spring Boot 是所有基於 Spring 開發的專案的起點。Spring Boot 的設計是為了讓你儘可能快的跑起來 Spring 應用程式並且儘可能減少你的配置檔案。簡單來說就是SpringBoot其實不是什麼新的框架,它預設配置了很多框架的使用方式,就像
2.2、SpringBoot四個主要特性
1、SpringBoot Starter:他將常用的依賴分組進行了整合,將其合併到一個依賴中,這樣就可以一次性新增到專案的Maven或Gradle構建中;
2、自動配置:SpringBoot的自動配置特性利用了Spring4對條件化配置的支援,合理地推測應用所需的bean並自動化配置他們;
3、命令列介面:(Command-line-interface, CLI):SpringBoot的CLI發揮了Groovy程式語言的優勢,並結合自動配置進一步簡化
4、Actuatir:它為SpringBoot應用的所有特性構建一個小型的應用程式。但首先,我們快速瞭解每項特性,更好的體驗他們如何簡化Spring程式設計模型。
2.3 SpringBoot開發的具體好處
回顧我們之前的 SSM 專案,搭建過程還是比較繁瑣的,需要:
1、配置web.xml,載入spring和spring mvc
2、配置資料庫連線、配置spring事務
3、配置載入配置檔案的讀取,開啟註解
。。。
配置完成之後部署tomcat 除錯
而使用 Spring Boot 來開發專案則只需要非常少的幾個配置就可以搭建起來一個 Web 專案,並且利用 IDEA 可以自動生成生成,這簡直是太爽了...
華麗的分割線----------------------------------------------------------------------------------------------------
三、使用IDEA快速搭建SpringBoot專案
1、file->new project 在彈出的視窗選擇Spring Initializr
2、修改專案資訊
3、選擇版本及專案需要的依賴
4、最終目錄結構
專案結構還是看上去挺清爽的,少了很多配置檔案,我們來了解一下預設生成的有什麼:
- EurekaServerApplication: 一個帶有 main() 方法的類,用於啟動應用程式
- EurekaServerApplicationTests:一個空的 Junit 測試了,它載入了一個使用 Spring Boot 字典配置功能的 Spring 應用程式上下文
- application.properties:一個空的 properties 檔案,可以根據需要新增配置屬性
- pom.xml: Maven 構建說明檔案
四、專案簡單介紹及helloworld編寫
4.1、寫一個helloWorld介面
@RestController @RequestMapping("/") public class HelloWorldController { @RequestMapping("hello") public String index() { return "Hello World"; } }
@RestController 註解: 該註解是 @Controller 和 @ResponseBody 註解的合體版
4.2、單位測試
@RunWith(SpringRunner.class)@SpringBootTestpublic class ServiceAuthApplicationTests { private MockMvc mvc; @Before public void setUp() { mvc = MockMvcBuilders.standaloneSetup(new HelloController()).build(); } @Test public void contextLoads() throwsException { mvc.perform(MockMvcRequestBuilders.get("/hello").accept(
MediaType.APPLICATION_JSON)) .andExpect(MockMvcResultMatchers.status().isOk()) .andDo(MockMvcResultHandlers.print()) .andReturn(); } }
4.3、pom檔案介紹
<?xml version="1.0" encoding="UTF-8"?> <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>com.test</groupId> <artifactId>springboot</artifactId> <version>1.0-SNAPSHOT</version> <packaging>pom</packaging>
<name>spring-cloud-demo</name> <description>Demo project for Spring Boot</description> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.18.BUILD-SNAPSHOT</version> <relativePath/> <!-- lookup parent from repository --> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> </properties> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> <repositories> <repository> <id>spring-snapshots</id> <name>Spring Snapshots</name> <url>https://repo.spring.io/snapshot</url> <snapshots> <enabled>true</enabled> </snapshots> </repository> <repository> <id>spring-milestones</id> <name>Spring Milestones</name> <url>https://repo.spring.io/milestone</url> <snapshots> <enabled>false</enabled> </snapshots> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>spring-snapshots</id> <name>Spring Snapshots</name> <url>https://repo.spring.io/snapshot</url> <snapshots> <enabled>true</enabled> </snapshots> </pluginRepository> <pluginRepository> <id>spring-milestones</id> <name>Spring Milestones</name> <url>https://repo.spring.io/milestone</url> <snapshots> <enabled>false</enabled> </snapshots> </pluginRepository> </pluginRepositories> </project>
這個標籤是在配置 Spring Boot 的父級依賴
有了這個,當前的專案才是 Spring Boot 專案,spring-boot-starter-parent 是一個特殊的 starter ,它用來提供相關的 Maven 預設依賴,使用它之後,常用的包依賴就可以省去 version 標籤。
4.4、啟動類介紹(*Application)
@SpringBootApplication public class EurekaServerApplication { public static void main(String[] args) { SpringApplication.run(EurekaServerApplication.class, args); } }
@SpringBootApplication是springBoot的核心註解註解: 該註解是@Configuration、@EnableAutoConfiguration、@ComponentScan 註解的合體版
4.5. properties介紹
springBoot 使用一個全域性的配置檔案 application.properties 或 application.yml,放置在【src/main/resources】目錄下
將 Tomcat 預設埠設定為 9090 ,並將預設的訪問路徑從 “/” 修改為 “/test” 時,使用 properties 檔案