使用Spring Boot创建Web应用程序的示例代码

在这篇文章中,我们将探讨使用Spring Boot创建Web应用程序的细节。 我们将探索Spring Boot如何帮助你加速应用程序开发。

我们将使用Spring Boot构建一个简单的Web应用程序,并为其添加一些有用的服务。

1. 介绍

启动一个新项目的主要挑战之一是该项目的初始设置。 我们需要对不同的目录结构进行调用,并且需要确保我们遵循所有行业标准。对于使用Spring Boot创建Web应用程序,我们需要以下工具:

  1. 我们自己喜欢的IDE (我将使用IntelliJ)
  2. Maven
  3. JDK 1.8+

2. 创建项目结构

有多种方式可以使用Spring Boot Initializr为你生成项目结构:

  1. 使用Spring InitializrWeb界面。
  2. 使用Spring Boot CLI工具。
  3. 使用你的IDE

为了简化这篇文章,我们使用Spring Initializer的网页界面来生成项目结构。

用你的浏览器访问Spring Initializr Web界面,你将看到一个向导来开始你的配置。

你需要填写网页界面中的一些信息才能开始。

  1. 你想要生成什么类型的项目(Maven或Gradle)
  2. 你选择什么语言(除了Java,你还可以选择Kotlin或Groovy)?
  3. Spring Boot版本
  4. 标准的项目组和工件细节。
  5. 依赖

依赖是Web界面中的一个有趣功能,根据你选择的依赖,Web界面会自动在生成的pom.xml文件中添加Spring Boot Starter依赖。如果你希望对生成的项目结构进行更多控制,或者不确定所有你想要添加到项目中的依赖,请单击“Switch to the full version”按钮。

在本文中,我们将使用Web和Thymeleaf(用于用户界面)两个Starter。

3. 项目结构

Spring Boot不需要任何特定的代码布局或结构。我们始终可以遵循Spring Boot团队提出的一些最佳实践,但最终结构将由你的项目需求驱动。

下图是我们例子应用的项目结构:

4. pom.xml

我们来看看pom.xml文件,详细地了解Spring Boot配置。 我将仅涵盖pom.xml中与Spring Boot相关的更改。 以下是我们示例项目中的pom.xml文件。

 <?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.javadevjournal</groupId>
  <artifactId>javadevspringboot</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>
  <name>javadevspringboot</name>
  <description>Java Dev Journal project for Spring Boot</description>
  <parent>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-parent</artifactId>
   <version>1.5.4.RELEASE</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>
  <dependencies>
   <dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-thymeleaf</artifactId>
   </dependency>
   <dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-web</artifactId>
   </dependency>
   <dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-tomcat</artifactId>
     <scope>provided</scope>
   </dependency>
   <dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-test</artifactId>
     <scope>test</scope>
   </dependency>
  </dependencies>
</project>

Spring Boot的主要特性之一是“Starter”,它们是在我们的类路径中添加所需依赖项(jar包)的简单方法。 当使用Spring Boot时,我们不必在我们的类路径中添加jar包或依赖项(如果starter不可用,你可能必须将这些依赖项添加到pom.xml中,或者可以创建自己的自定义starter)。 我们只需要在我们的pom.xml文件中添加正确的“Starter”,Spring Boot将确保自动添加这些依赖。

5. 主应用

如下所示是我们的Spring Boot应用程序主类,它也是一个Spring配置类。 注解@SpringBootApplication启用Spring上下文以及Spring Boot的所有启动魔法。

@SpringBootApplication
public class WebApplication extends WebMvcConfigurerAdapter {
  public static void main(String[] args) {
   SpringApplication.run(WebApplication.class, args);
  }
}

5. 1 @SpringBootApplication 注解

@SpringBootApplication相当于使用@Configuration,@EnableAutoConfiguration和@ComponentScan以及它们的默认值。如果要开始项目,建议使用这个注解。

在主类中使用@SpringBootApplication相当于同时使用以下3个注解:

  1. @Configuration作为bean定义的来源。
  2. @EnableAutoConfiguration,它为Spring Boot提供了如何配置应用程序。
  3. @ComponentScan自动获取所有Spring组件,包括@Configuration类。

5. 2 主方法

我们主类的另一个有趣特点是主方法。 这是遵循标准Java工作流程的标准方法。 我们的主类将把控制权交给Spring Boot SpringApplication类。

SpringApplication类的run方法将用于引导一个应用程序。

6. Welcome Controller

我们设置的最后一部分,我们将创建一个welcome controller,负责通过返回View的名称(在本例中为“welcome”)处理/greeting的GET请求。 视图负责呈现HTML内容。

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class WelcomeController {
  @RequestMapping("/welcome")
  public String welcome() {
    return "welcome";
  }
}

这是一个非常简单的控制器,但在我们的设置中涵盖了很多要点。

  1. @Controller注解表示被注解的类是“控制器”(例如Web controller)。
  2. @RequestMapping注解可确保将对/welcome的HTTP请求映射到welcome()方法。
  3. 我们没有为@RequestMapping注解指定任何HTTP方法,因此默认情况下,映射所有HTTP方法。
  4. 由于我们使用Thymeleaf进行视图技术并从welcome()方法返回“welcome”,因此Thymeleaf会解析模板welcome.html并生成输出。

6. 1 UI Template

如下我们简单的Thymeleaf HTML模板。

<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
  <title>Getting Started: Serving Web Content</title>
</head>
<body>
Hello and Welcome to our Web Application
</body>
</html>

当使用Thymeleaf作为我们的模板引擎时,Spring Boot将通过在视图名称前后加上前缀和后缀(配置参数分别是:spring.thymeleaf.prefix和spring.thymeleaf.suffix,它们的默认的值是:'classpath:/templates/‘和'html')。

7. 运行程序

我们完成了我们简单的Web应用程序,现在是时候运行我们的应用程序了。 尽管可以将此服务作为传统WAR文件打包以部署到外部应用程序服务器上,但更简单的方法是创建独立应用程序。 要从IDE运行我们的应用程序,我们需要将我们的Web应用程序作为独立的Java应用程序运行。

  1. 如果使用Maven,我们可以使用mvn spring-boot:run命令运行应用程序。
  2. 我们可以使用mvn clean package命令构建Jar包,并使用java -jar target/demo-app-0.1.0.jar运行这个jar包。

现在,该网站已启动并正在运行,请访问 http://localhost:8080/welcome ,如果一切正常,则应在Web浏览器中输出以下内容。

Hello and Welcome to our Web Application

8. 总结

在这篇文章中,我们学习了使用Spring Boot创建Web应用程序。 Spring Boot具有许多功能,可以更快,更轻松地创建和运行Web应用程序。

原文链接: https://www.javadevjournal.com/spring/creating-a-web-application-with-spring-boot/

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • SpringCloud如何创建一个服务提供者provider

    前几篇主要集中在注册中心eureka的使用上,接下来可以创建服务提供者provider来注册到eureka. demo源码见: https://github.com/Ryan-Miao/spring-cloud-Edgware-demo/tree/master/provider-demo 为了方便版本控制,接下来的项目都是基于https://github.com/Ryan-Miao/spring-cloud-Edgware-demo 这个parent配置的. 创建子moudle provider

  • 5分钟快速创建spring boot项目的完整步骤

    前言 上一篇博客说了如何创建spring boot项目,但是有些同学会觉得有点麻烦,有没有什么快速学会能快速创建spring boot项目的方法,答案是肯定的.接下来我们就一起来快速创建一个spring boot项目并让它跑起来. 我们今天用两种方式创建,分别是在线创建和使用IntelliJ IDEA创建. 1 在线创建 1.1 在浏览器中打开https://start.spring.io/,我们看到的是如下图所示: 1.2 Project选择Maven Project,Language选择Ja

  • Spring创建Bean的6种方式详解

    前言 本文讲解了在Spring 应用中创建Bean的多种方式,包括自动创建,以及手动创建注入方式,实际开发中可以根据业务场景选择合适的方案. 方式1: 使用Spring XML方式配置,该方式用于在纯Spring 应用中,适用于简单的小应用,当应用变得复杂,将会导致XMl配置文件膨胀 ,不利于对象管理. <bean id="xxxx" class="xxxx.xxxx"/> 方式2: 使用@Component,@Service,@Controler,@R

  • 解决Spring session(redis存储方式)监听导致创建大量redisMessageListenerContailner-X线程问题

    待解决的问题 Spring session(redis存储方式)监听导致创建大量redisMessageListenerContailner-X线程 解决办法 为spring session添加springSessionRedisTaskExecutor线程池. /** * 用于spring session,防止每次创建一个线程 * @return */ @Bean public ThreadPoolTaskExecutor springSessionRedisTaskExecutor(){ T

  • 详解Spring Cloud Gateway 限流操作

    开发高并发系统时有三把利器用来保护系统:缓存.降级和限流. API网关作为所有请求的入口,请求量大,我们可以通过对并发访问的请求进行限速来保护系统的可用性. 常用的限流算法比如有令牌桶算法,漏桶算法,计数器算法等. 在Zuul中我们可以自己去实现限流的功能 (Zuul中如何限流在我的书 <Spring Cloud微服务-全栈技术与案例解析>  中有详细讲解) ,Spring Cloud Gateway的出现本身就是用来替代Zuul的. 要想替代那肯定得有强大的功能,除了性能上的优势之外,Spr

  • 创建网关项目(Spring Cloud Gateway)过程详解

    创建网关项目 加入网关后微服务的架构图 创建项目 POM文件 <properties> <java.version>1.8</java.version> <spring-cloud.version>Greenwich.SR3</spring-cloud.version> </properties> <dependencies> <dependency> <groupId>org.springfram

  • springcloud gateway聚合swagger2的方法示例

    问题描述 在搭建分布式应用时,每个应用通过nacos在网关出装配了路由,我们希望网关也可以将所有的应用的swagger界面聚合起来.这样前端开发的时候只需要访问网关的swagger就可以,而不用访问每个应用的swagger. 框架 springcloud+gateway+nacos+swagger 问题分析 swagger页面是一个单页面应用,所有的显示的数据都是通过和springfox.documentation.swagger.web.ApiResponseController进行数据交互,

  • Spring Boot 项目创建的详细步骤(图文)

    一. 简单介绍一下Spring Boot 世界惯例,在学习一个框架之前,我们需要了解一下这个框架的来历. 下面我们引用一下百度百科的解释. Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置.通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者 Spring Boo

  • 使用Spring Boot创建Web应用程序的示例代码

    在这篇文章中,我们将探讨使用Spring Boot创建Web应用程序的细节. 我们将探索Spring Boot如何帮助你加速应用程序开发. 我们将使用Spring Boot构建一个简单的Web应用程序,并为其添加一些有用的服务. 1. 介绍 启动一个新项目的主要挑战之一是该项目的初始设置. 我们需要对不同的目录结构进行调用,并且需要确保我们遵循所有行业标准.对于使用Spring Boot创建Web应用程序,我们需要以下工具: 我们自己喜欢的IDE (我将使用IntelliJ) Maven JDK

  • Spring Boot 实现Restful webservice服务端示例代码

    1.Spring Boot configurations application.yml spring: profiles: active: dev mvc: favicon: enabled: false datasource: driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://localhost:3306/wit_neptune?createDatabaseIfNotExist=true&useUnicode=true&

  • Spring Boot加密配置文件特殊内容的示例代码详解

    有时安全不得不考虑,看看新闻泄漏风波事件就知道了我们在用Spring boot进行开发时,经常要配置很多外置参数ftp.数据库连接信息.支付信息等敏感隐私信息,如下 ​ 这不太好,特别是互联网应用,应该用加密的方式比较安全,有点类似一些应用如电商.公安.安检平台.滚动式大屏中奖信息等显示身份证号和手机号都是前几位4109128*********和158*******.那就把图中的明文改造下1. 引入加密包,可选,要是自己实现加解密算法,就不需要引入第三方加解密库 <dependency> &l

  • Java spring boot 实现支付宝支付功能的示例代码

    一.准备工作: 1.登陆支付宝开发者中心,申请一个开发者账号. 地址:https://openhome.alipay.com/ 2.进入研发服务: 3.点击链接进入工具下载页面: 4.点击下载对应版本的RSA公钥生成器: 5.生成公钥密钥(记录你的应用私钥): 6.在支付宝配置公钥(点击保存): 二.搭建demo 1.引入jia包: <dependency> <groupId>com.alipay.sdk</groupId> <artifactId>alip

  • 基于Spring Boot保护Web应用程序

    如果在类路径上添加了Spring Boot Security依赖项,则Spring Boot应用程序会自动为所有HTTP端点提供基本身份验证.端点"/"和"/home"不需要任何身份验证.所有其他端点都需要身份验证. 要将Spring Boot Security添加到Spring Boot应用程序,需要在构建配置文件中添加Spring Boot Starter Security依赖项. Maven用户可以在pom.xml 文件中添加以下依赖项. <depend

  • spring boot的拦截器简单使用示例代码

    1.spring boot拦截器默认有: HandlerInterceptorAdapter AbstractHandlerMapping UserRoleAuthorizationInterceptor LocaleChangeInterceptor ThemeChangeInterceptor 其中 LocaleChangeInterceptor 和 ThemeChangeInterceptor 比较常用. 2.实现自定义拦截器只需要3步: 1).创建我们自己的拦截器类并实现 Handler

  • Spring Boot实战之数据库操作的示例代码

    上篇文章中已经通过一个简单的HelloWorld程序讲解了Spring boot的基本原理和使用.本文主要讲解如何通过spring boot来访问数据库,本文会演示三种方式来访问数据库,第一种是JdbcTemplate,第二种是JPA,第三种是Mybatis.之前已经提到过,本系列会以一个博客系统作为讲解的基础,所以本文会讲解文章的存储和访问(但不包括文章的详情),因为最终的实现是通过MyBatis来完成的,所以,对于JdbcTemplate和JPA只做简单演示,MyBatis部分会完整实现对文

  • Spring Boot+AngularJS+BootStrap实现进度条示例代码

    Spring Boot+AngularJS+BootStrap实现进度条 原理 进度条的原理是在上传文件的时候,当程序运行到某一个部分,往Session中设置一个1到100的值.然后前台再每隔很小的一段时间去请求这个值. 在AngularJS中,$http对象有3种状态,分别是success,progress,error,其中progress方法就会在success方法调用之前(也就是上传完成之前),不断地调用.而我们要做的就是在progress中在添加一个请求,去后台拿我们设置在session

  • spring boot中使用http请求的示例代码

    因为项目需求,需要两个系统之间进行通信,经过一番调研,决定使用http请求. 服务端没有什么好说的,本来就是使用web 页面进行访问的,所以spring boot启动后,controller层的接口就自动暴露出来了,客户端通过调用对应的url即可,所以这里主要就客户端. 首先我自定义了一个用来处理http 请求的工具类DeviceFactoryHttp,既然是url访问,那就有两个问题需要处理,一个请求服务的url,和请求服务端的参数,客户端的消息头请求服务的url:请求服务端url我定义的是跟

  • Spring Boot应用的极速部署脚本示例代码

    前言 本文主要给大家介绍了关于Spring Boot应用极速部署脚本的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 部署方法如下: 在 pom.xml 路径下新建文件 start.sh #!/bin/bash #0.删除原有的日志文件 rm -f nohup.out #1.获取正在运行的 Spring Boot 应用的 pid appPid=`netstat -ntlp | grep java | awk '{print $7}' | head -1 | grep

随机推荐