Spring從入門到入土——概述以及HelloWorld

第一篇本文主要介紹了Spring的基本概念以及如何快速編寫一個Spring項目,並讓它運行起來。html

Spring 概述

優勢

  • Spring是一個開源免費的框架、容器
  • Spring是一個輕量級的框架、非侵入式的
  • 控制反轉Ioc、面向切面Aop
  • 對事務的支持以及對框架的支持

總之:java

spring是一個輕量級的控制反轉(Ioc)和麪向切面(AOP)的非侵入式框架。web

學習網址: Spring-core學習網址

組成

image

  • 組成Spring框架的每一個模塊均可以單獨存在,或者與其餘一個或多個模塊聯合實現:
    • 核心容器:核心容器提供Spring框架的基本功能,主要組件是BeanFactory,是工廠模式的實現。其BeanFactory使用控制反轉(IOC)模式將應用程度的配置和依賴性規範與實際的應用程序代碼分開
    • Spring上下文:是一個配置文件,向Spring框架提供上下文信息。其主要包括:企業服務,例如JNDI、EJB、電子郵件、國際化、校驗和調度功能
    • Spring AOP:經過配置管理特性,將面向切面的編程功能,集成到了Spring框架中,因此能夠很方便的使Spring框架管理任何支持AOP的對象。也爲基於Spring的應用程序中的對象提供了事務管理服務。使用SpringAOP能夠不依賴組件,就能夠將聲明性事務管理集成到應用程序中。
    • Spring DAO:Spring DAO抽象層提供了有意義的異常層次結構,能夠用該結構來管理異常處理和不一樣數據庫供應商拋出的錯誤信息。異常層次結構簡化了錯誤的處理,而且下降了須要編寫的異常代碼數量。
    • Spring ORM:Spring 框架插入了若干個 ORM 框架,從而提供了 ORM 的對象關係工具,其中包括 JDO、Hibernate 和 iBatis SQL Map。全部這些都聽從 Spring 的通用事務和 DAO 異常層次結構。
    • Spring Web 模塊:Web 上下文模塊創建在應用程序上下文模塊之上,爲基於 Web 的應用程序提供了上下文。因此,Spring 框架支持與 Jakarta Struts 的集成。Web 模塊還簡化了處理多部分請求以及將請求參數綁定到域對象的工做。
    • Spring MVC 框架:MVC 框架是一個全功能的構建 Web 應用程序的 MVC 實現。經過策略接口,MVC 框架變成爲高度可配置的,MVC 容納了大量視圖技術,其中包括 JSP、Velocity、Tiles、iText 和 POI。

現代化的Java開發

  • Spring Boot:構建一切
    • 一個快速開發的腳手架,能夠快速開發單個微服務。
    • 約定大於配置
  • Spring Cloud:協調一切
    • SpringCloud是基於SpringBoot實現的
  • Spring Cloud Data Flow:鏈接一切

Hello World

經過上面的介紹咱們知道了Spring的優勢以及Spring的組成,下面咱們就經過官網的指引來快速開始創建一個Spring Boot項目spring

開始一個Spring Boot項目

使用快速開始來建立一個web項目,以下圖所示:數據庫

image.png

有一下幾點須要特別的注意:編程

  • 咱們須要在依賴關係中手動添加web依賴關係
  • 而後完成屬於本身的個性化配置,而後點擊生成。

點擊生成後咱們就會獲得一個壓縮包,而後只須要解壓,而後用idea打開,就完成了一個Spring Boot的建立。瀏覽器

image.png

須要手動來引入pom文件

編寫本身的代碼

在Application.java文件是咱們的啓動文件,也是咱們程序的主方法,在裏面咱們能夠編寫咱們本身的代碼,以下所示app

package com.zhonghu.springhelloworlddemo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
//使用此註解將類被標記爲Controller,而且Controller類中的方法返回值不會解析爲路徑跳轉,只會返回一個字符串在response中。
@RestController
public class SpringHelloworldDemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringHelloworldDemoApplication.class, args);
    }

    //告訴Spring咱們用hellodemo方法來響應/hello
    @GetMapping("/hello")
    //@Requestparam告訴Spring在請求中指望的一個值,若是不存在,則使用後面的默認值
    public String hellodemo(@RequestParam(value = "name",defaultValue="World")String name){
        return String.format("Hello %s!",name);
    }
}

啓動程序

啓動剛纔咱們編寫的程序框架

image.png

可能遇到的意外狀況諸如:8080端口被佔用ide

image

  • 查看端口8080被那個進程佔用
    • netstat -ano | findstr "8080"
  • 查看對應進程號的進程
    • tasklist | findstr "5768"
  • 殺死進程
    • taskkill -pid 進程pid -f

啓動成功後訪問咱們的連接:http://localhost:8080/hello訪問頁面以下:

image

由於咱們沒有拼接咱們的名字因此顯示的默認名字World,咱們也能夠在瀏覽器後面先臨時拼接上咱們的名字以下所示:

image

這樣咱們就完成了第一行代碼的編寫,而且成功讓其運行起來了。這裏咱們用到的代碼,將會在咱們往後的學習中學習到,想要繼續學習Spring相關的知識請持續關注我!

總結

  • spring是一個輕量級的控制反轉(Ioc)和麪向切面(AOP)的非侵入式框架。
  • Spring的組成
    • Spring Core :核心容器
    • Spring AOP : 經過配置管理特性,面向Spring切面的編程功能
    • Spring ORM :對象——關係映射
    • Spring DAO : DAO抽象層
    • Spring Web : 提供了建立Web應用程序的支持
    • Spring context : 是一個配置文件,向Spring框架提供上下文信息
    • Spring Web MVC

最後

  • 若是以爲看完有收穫,但願能給我點個贊,這將會是我更新的最大動力,感謝各位的支持
  • 歡迎各位關注個人公衆號【java冢狐】,專一於java和計算機基礎知識,保證讓你看完有所收穫,不信你打我
  • 若是看完有不一樣的意見或者建議,歡迎多多評論一塊兒交流。感謝各位的支持以及厚愛。

image

歡迎關注公衆號「 Java冢狐」,獲取最新消息
相關文章
相關標籤/搜索