1. 程式人生 > >Springboot簡單介紹

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其實不是什麼新的框架,它預設配置了很多框架的使用方式,就像

maven整合了所有的jar包,spring boot整合了所有的框架(不知道這樣比喻是否合適)。

2.2、SpringBoot四個主要特性

1SpringBoot Starter:他將常用的依賴分組進行了整合,將其合併到一個依賴中,這樣就可以一次性新增到專案的MavenGradle構建中;

2、自動配置:SpringBoot的自動配置特性利用了Spring4對條件化配置的支援,合理地推測應用所需的bean並自動化配置他們;

3、命令列介面:(Command-line-interface, CLI):SpringBootCLI發揮了Groovy程式語言的優勢,並結合自動配置進一步簡化

Spring應用的開發;

4Actuatir:它為SpringBoot應用的所有特性構建一個小型的應用程式。但首先,我們快速瞭解每項特性,更好的體驗他們如何簡化Spring程式設計模型。

2.3 SpringBoot開發的具體好處

回顧我們之前的 SSM 專案,搭建過程還是比較繁瑣的,需要:

1、配置web.xml,載入springspring mvc

2、配置資料庫連線、配置spring事務

3、配置載入配置檔案的讀取,開啟註解

。。。

配置完成之後部署tomcat 除錯

而使用 Spring Boot 來開發專案則只需要非常少的幾個配置就可以搭建起來一個 Web 專案,並且利用 IDEA 可以自動生成生成,這簡直是太爽了...

華麗的分割線----------------------------------------------------------------------------------------------------

三、使用IDEA快速搭建SpringBoot專案

1file->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.3pom檔案介紹

<?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);
    }
}

@SpringBootApplicationspringBoot的核心註解註解: 該註解是@Configuration@EnableAutoConfiguration@ComponentScan 註解的合體版

4.5. properties介紹

springBoot 使用一個全域性的配置檔案 application.properties application.yml,放置在【src/main/resources】目錄

Tomcat 預設埠設定為 9090 ,並將預設的訪問路徑從 / 修改為 /test 時,使用 properties 檔案