詳解使用Spring快速創(chuàng)建web應(yīng)用的兩種方式
介紹
本篇文章主要介紹,如何使用 Spring 開發(fā)一個 Web 應(yīng)用。
我們將研究用 Spring Boot 開發(fā)一個 web 應(yīng)用,并研究用非 Spring Boot 的方法。
我們將主要使用 Java 配置,但還要了解它們的等效的 XML 配置。
使用 Spring Boot
Maven 依賴
首先,我們需要引用 spring-boot-starter-web 依賴:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>2.1.1.RELEASE</version> </dependency>
該依賴包含:
- Spring Web 應(yīng)用程序所需的 spring-web 和 spring-webmvc 模塊
- Tomcat 容器,這樣我們就可以直接運行 Web 應(yīng)用程序,而無需安裝 Tomcat
創(chuàng)建一個Spring Boot 應(yīng)用程序
使用 Spring Boot 的最直接的方法是創(chuàng)建一個主類,并添加 @SpringBootApplication 注解:
@SpringBootApplication
public class SpringBootRestApplication {
public static void main(String[] args) {
SpringApplication.run(SpringBootRestApplication.class, args);
}
}
此單個注釋等效于使用 @Configuration ,@EnableAutoConfiguration 和 @ComponentScan 。
默認情況下,它將掃描本包和它的子包中的所有組件。
接下來,對于基于 Java 的 Spring Bean 配置,我們需要創(chuàng)建一個配置類,并使用 @Configuration 注解:
@Configuration
public class WebConfig {
}
該注解是 Spring 主要使用的配置。 它本身使用 @Component 進行元注解,這使注解的類成為標準 bean,因此也成為組件掃描時的候選對象。
讓我們看看使用核心 spring-webmvc 庫的方法。
使用 spring-webmvc
Maven 依賴
首先,我們需要引用 spring-webmvc 依賴:
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.0.0.RELEASE</version> </dependency>
基于 java 的 Web 配置
@Configuration
@EnableWebMvc
@ComponentScan(basePackages = "com.qulingfeng.controller")
public class WebConfig {
}
在這里與 Spring Boot 的方式不同,我們必須顯式定義 @EnableWebMvc 來設(shè)置默認的 Spring MVC 配置,而
@ComponentScan 可以指定用于掃描組件的包。
@EnableWebMvc 注解提供了 Spring Web MVC 配置,比如設(shè)置 dispatcher servlet、啟用 @Controller 和 @RequestMapping 注解以及設(shè)置其他默認值。
@ComponentScan 配置組件掃描指令,指定要掃描的包。
初始化類
接下來,我們需要添加一個實現(xiàn) WebApplicationInitializer 接口的類:
public class AppInitializer implements WebApplicationInitializer {
@Override
public void onStartup(ServletContext container) throws ServletException {
AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext();
context.scan("com.qulingfeng");
container.addListener(new ContextLoaderListener(context));
ServletRegistration.Dynamic dispatcher =
container.addServlet("mvc", new DispatcherServlet(context));
dispatcher.setLoadOnStartup(1);
dispatcher.addMapping("/");
}
}
在這里,我們使用 AnnotationConfigWebApplicationContext 類創(chuàng)建 Spring 上下文,這意味著我們僅使用基于注釋的配置。 然后,我們指定要掃描組件和配置類的包。
最后,我們定義 Web 應(yīng)用程序的入口點 — DispatcherServlet 。
此類可以完全替換 < 3.0 Servlet 版本中的 web.xml 文件。
XML配置
讓我們快速看一下等效的XML web配置:
<context:component-scan base-package="com.qulingfeng.controller" /> <mvc:annotation-driven />
我們可以用上面的 WebConfig 類替換這個 XML 文件。
要啟動應(yīng)用程序,我們可以使用一個初始化器類來加載 XML 配置或 web.xml 文件。
結(jié)束語
在篇文章中,我們研究了兩種用于開發(fā) Spring Web 應(yīng)用程序的流行方式,一種使用 Spring Boot Web 啟動程序,另一種使用核心 spring-webmvc 庫。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
使用Spirng Boot Admin監(jiān)控Spring Cloud應(yīng)用項目
這篇文章主要介紹了使用Spirng Boot Admin監(jiān)控Spring Cloud應(yīng)用項目,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-05-05
.properties文件讀取及占位符${...}替換源碼解析
本篇文章主要介紹了.properties文件讀取及占位符${...}替換源碼解析的相關(guān)知識,具有很好的參考價值。下面跟著小編一起來看下吧2017-05-05
JAVA讀取文件流,設(shè)置瀏覽器下載或直接預(yù)覽操作
這篇文章主要介紹了JAVA讀取文件流,設(shè)置瀏覽器下載或直接預(yù)覽操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-10-10

