【Spring MVC】之一 環(huán)境搭建

一冀续、Spring的主要功能:

IOC 依賴注入(控制反轉(zhuǎn))和AOP (面向切面的編程)
正常情況下,有A對象需要B對象時糠聪,我們直接New B對象婆排。這樣A声旺、B兩對象間耦合度比較高。Spring提供一種實(shí)現(xiàn)段只,對象的創(chuàng)建由第三方統(tǒng)一腮猖、集中管理,A對象如需B對象時赞枕,直接申請即可得到澈缺,無需自已NEW 對象,以實(shí)現(xiàn)解耦炕婶。也就是A對象需B對象姐赡,B對象由第三方創(chuàng)建,并注入給A對象柠掂。這種思想稱為依賴注入项滑。這個第三方也稱為IOC容量,ApplcationContext陪踩。

Spring中提供統(tǒng)一管理的容器是ApplicationContext,也稱為應(yīng)用上下文杖们。

二、ApplicationContext的配置方式

ApplicationContext是Bean的生產(chǎn)工廠,是Bean的容器肩狂。容量根據(jù)配置信息進(jìn)行生產(chǎn)和管理Bean摘完。那如何定義或表示Bean及Bean之間的關(guān)系。
Spring提供了三種方式:1傻谁、XML孝治;2、注解审磁;3谈飒、Java配置

先介紹XML方式,如建立ApplicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean id="login" class="com.stu.users.login"></bean>
</beans>

其中<bean>中的ID和Class屬性也定義bean

Spring通過裝載配置文件來實(shí)例化ApplicationContext,實(shí)例化之化态蒂,通過Application
ApplicationContext的getBean來獲得bean實(shí)例杭措。

根據(jù)配置文件的不同格式和存放位置,Spring提供了多種ApplicationContext的實(shí)現(xiàn)钾恢。

三手素、ApplicationContext如何啟動

那ApplicationContext 本身是如何實(shí)例化的。在WEB中瘩蚪,可以通過Listener方式來啟動spring容器泉懦。ApplicationContext的缺省配置文件是存放在WEB-INF目錄下的ApplicationContext.XML。當(dāng)然疹瘦,你也可以定義崩哩。在WEB.XML中配置

<context-param>

<param-name>contextConfigLocation</param-name>

<param-value>/WEB-INF/Root-Context.xml</param-value>

</context-param>
<listener>

<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

</listener>

四、通過IDEA建立Spring 項(xiàng)目

1言沐、File->New Project->選左邊的Maven邓嘹,選擇Create from archetype中的org.apache.archetypes.maven-archetype-webapp

Paste_Image.png

2、修改POM.XML, 增加Spring的類庫

<properties>
      <spring.servison>4.3.7.RELEASE</spring.servison>
  </properties>

  <dependencies>
      <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-context</artifactId>
          <version>${spring.servison}</version>
      </dependency>

3险胰、修改WEB.XML
修改為Servlet 3.1格式

<?xml version="1.0" encoding="ISO-8859-1"?>

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
                      http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
  version="3.1">

      <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>

</web-app>

增加ApplicationContext的配置文件和Listener

<context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/Root-Context.xml</param-value>
    </context-param>

    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

五吴超、建立SpringMVC 項(xiàng)目

1、在POM.XML 增加Spring MVC的類庫鸯乃。

      <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${spring.servison}</version>
        </dependency>

2鲸阻、在WEB.XML中增加DispatcherServlet

<servlet>
        <servlet-name>DispatcherServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/springmvc.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>DispatcherServlet</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

3、創(chuàng)建springmvc.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/mvc
">

    <mvc:annotation-driven/>
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
        <property name="prefix" value="/WEB-INF/Viwe/"/>
        <property name="suffix" value=".jsp"/>
    </bean>

</beans>

4缨睡、創(chuàng)建Controler

package com.edu.web;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

/**
 * Created by User on 2017/3/31.
 */
@Controller
public class Index {
    @RequestMapping(value="/",method = RequestMethod.GET )
    public String hello(){
        return "index";
    }
    @RequestMapping(value="/world",method = RequestMethod.GET    )
    public String helloworld(){
        return "world";
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末鸟悴,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子奖年,更是在濱河造成了極大的恐慌细诸,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,482評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件陋守,死亡現(xiàn)場離奇詭異震贵,居然都是意外死亡利赋,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評論 2 382
  • 文/潘曉璐 我一進(jìn)店門猩系,熙熙樓的掌柜王于貴愁眉苦臉地迎上來媚送,“玉大人,你說我怎么就攤上這事寇甸√临耍” “怎么了?”我有些...
    開封第一講書人閱讀 152,762評論 0 342
  • 文/不壞的土叔 我叫張陵拿霉,是天一觀的道長吟秩。 經(jīng)常有香客問我,道長绽淘,這世上最難降的妖魔是什么涵防? 我笑而不...
    開封第一講書人閱讀 55,273評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮沪铭,結(jié)果婚禮上武学,老公的妹妹穿的比我還像新娘。我一直安慰自己伦意,他們只是感情好火窒,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,289評論 5 373
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著驮肉,像睡著了一般熏矿。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上离钝,一...
    開封第一講書人閱讀 49,046評論 1 285
  • 那天票编,我揣著相機(jī)與錄音,去河邊找鬼卵渴。 笑死慧域,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的浪读。 我是一名探鬼主播昔榴,決...
    沈念sama閱讀 38,351評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼碘橘!你這毒婦竟也來了互订?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,988評論 0 259
  • 序言:老撾萬榮一對情侶失蹤痘拆,失蹤者是張志新(化名)和其女友劉穎仰禽,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,476評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡吐葵,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,948評論 2 324
  • 正文 我和宋清朗相戀三年规揪,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片温峭。...
    茶點(diǎn)故事閱讀 38,064評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡猛铅,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出诚镰,到底是詐尸還是另有隱情,我是刑警寧澤祥款,帶...
    沈念sama閱讀 33,712評論 4 323
  • 正文 年R本政府宣布清笨,位于F島的核電站,受9級特大地震影響刃跛,放射性物質(zhì)發(fā)生泄漏抠艾。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,261評論 3 307
  • 文/蒙蒙 一桨昙、第九天 我趴在偏房一處隱蔽的房頂上張望检号。 院中可真熱鬧,春花似錦蛙酪、人聲如沸齐苛。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽凹蜂。三九已至,卻和暖如春阁危,著一層夾襖步出監(jiān)牢的瞬間玛痊,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評論 1 262
  • 我被黑心中介騙來泰國打工狂打, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留擂煞,地道東北人。 一個月前我還...
    沈念sama閱讀 45,511評論 2 354
  • 正文 我出身青樓趴乡,卻偏偏與公主長得像对省,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子晾捏,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,802評論 2 345

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理官辽,服務(wù)發(fā)現(xiàn),斷路器粟瞬,智...
    卡卡羅2017閱讀 134,599評論 18 139
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,748評論 6 342
  • 文章作者:Tyan博客:noahsnail.com 3.4 Dependencies A typical ente...
    SnailTyan閱讀 4,128評論 2 7
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法同仆,類相關(guān)的語法,內(nèi)部類的語法裙品,繼承相關(guān)的語法俗批,異常的語法俗或,線程的語...
    子非魚_t_閱讀 31,581評論 18 399
  • 文章作者:Tyan博客:noahsnail.com 3.5 Bean scopes When you create...
    SnailTyan閱讀 1,879評論 0 1