Maven构建第一个Spring Boot应用

Posted nuist__NJUPT

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Maven构建第一个Spring Boot应用相关的知识,希望对你有一定的参考价值。

第一个Spring Boot应用

Spring框架非常优秀,但问题在于配置过多,造成开发效率低,部署流程复杂以及集成难度大等问题。为了解决上述问题,SpringBoot应用而生。

Spring Boot的设计目的室用来简化新Spring应用的初始搭建以及开发过程,使用SpringBoot框架可以做到专注于Spring应用的开发,无需过多的关注样板化的配置。

在SpringBoot框架中,使用约定优于配置的理念,针对企业应用开发,提供了符合各种应用场景的自动配置依赖模块,这些模块都是基于开箱即用的原则,进而使得企业应用开发更加快捷和高效。
其实,可以认为Spring Boot是开发者和框架的中间层,目的是帮助开发者管理应用的配置,提供应用开发中常见配置的漠然处理,简化Spring的开发和运行维护,降低开发人员对框架的关注度,使得开发人员把更多的精力集中在业务逻辑代码上。

Spring Boot之所以能够应运而生,是因为它具有以下优点:
1-使编码变得更简单:推荐使用注解。
2-使配置变得更快捷:具有自动配置,快速构建项目,快速集成第三方技术的能力。
3-使部署变得更简便:内嵌Tomcat,Jetty等web容器。
4-使监控变得更容易:自带项目监控。

Spring Boot的主要特性
1-约定优于配置
只使用很少的配置,大多数情况只使用默认配置即可。
2-独立运行的Spring应用
SpringBoot可以以jar包的形式独立运行。
3-内嵌web容器
内嵌Servlet容器,无需以war包形式部署。
4-提供starter简化Maven配置
提供了一系列的starter pom简化Maven的依赖和加载,基本上可以做到自动化配置,高度封装,开箱即用。
5-自动配置Spring
SpringBoot根据项目依赖自动配置Spring框架,极大减少了项目的配置。
6-提供准生产的应用监控
Spring Boot提供基于HTTP、SSH、TELNET对运行项目进行跟踪监控。
7-无代码生成和XML配置
SpringBoot不用借助代码生成来实现,而是通过条件注解来实现,提倡使用Java配置和注解配置相结合的配置方式。

接下来我们开始学习第一个SpringBoot应用
因为需要使用Maven构建SpringBoot应用,下面我们学习一下Maven
Apache Maven是一个软件项目管理工具,基于项目对象模型的理念,通过一段核心描述信息来管理项目构建,报告和文档信息,在Java项目中,Maven主要完成两件工作:
1-统一开发规范与工具
2-统一管理jar包
Maven统一管理项目开发所需的jar包,这些jar包将不再包含在项目内,而是放在仓库中。仓库包括中央仓库和本地仓库,Maven项目手心啊会从本地仓库获取所需要的jar包,当无法获取指定jar时,本地仓库会从远程仓库下载jar包,并放入本地仓库以备用。
Maven是基于项目对象模型的理念管理项目的,所以Maven的项目都有有个pom,xml配置文件来管理项目的依赖以及项目的编译功能。
在Maven Web项目中,重点关注三个元素
1-properties元素
在propeties元素中可以定义变量,在dependency中引用
2-dependencies元素
此元素包含多个项目依赖需要使用的dependency元素。
3-dependency元素
该元素通过groupId,artifactId,version三个元素确定唯一依赖,也可以称为三个坐标。
groupId:组织的唯一标识
artifactId:项目的唯一标识
version:版本的唯一标识

下面学习Maven手工构建第一个Spring Boot应用
1-在pom.xml文件中配置SpringBoot的核心启动器并添加starter模块。

<?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>org.example</groupId>
    <artifactId>SpringBoot11</artifactId>
    <version>1.0-SNAPSHOT</version>

    <!-- 配置SpringBoot的核心启动器,指定Spring Boot的版本 2.1.4.RELEASE -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.4.RELEASE</version>
    </parent>

    <dependencies>
        <!-- 添加starter模块,导入Spring Boot  web 所需的jar包 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

    </dependencies>
</project>

2-编写测试代码,在src/main/java目录下,创建com.test包,并在该包中创建TestController类

注意:@RestController注解是一个组合注解,相当于@Controller和@ResponseBody注解的组合。具体如下:
(1)如果使用@RestController注解Controller,则Controller中的方法无法返回JSP或者html页面,返回的内容就是return的内容。
(2)如果需要返回指定页面,需要使用@Contoller来注解,如果需要返回JSON,XML或者自定义的mediaType内容到页面,则需要在对应的方法上加上@ResponseBody注解。

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class TestController {
    @RequestMapping("/hello")
    public String hello(){
        return "你好,加油追梦人,一起学习Spring Boot吧" ;
    }
}

3-创建应用程序的启动类,在com.test包中创建SpringBoot11Application类,用于启动SpringBoot项目
注意:@SpringBoot11Application也是一个组合注解,是三个注解的组合,三个注解分别为
(1)-@SpringBootConfiguration注解是SpringBoot应用配置注解。
(2)-@EnableAutoConfiguration注解可以让SpringBoot根据当前所依赖自动配置相关配置。
(3)-@ComponentScan注解,该注解的功能自动扫描@SpringBootApplication类的同级包以及子包的配置。


import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

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

4-运行main方法,启动springBoot应用,并通过访问地址访问:http://localhost:8080/hello

以上是关于Maven构建第一个Spring Boot应用的主要内容,如果未能解决你的问题,请参考以下文章

只需两步!Eclipse+Maven快速构建第一个Spring Boot项目

Gradle maven-publish 不构建独立的 spring-boot 应用程序

为spring boot应用程序生成war包时maven构建失败?

用spring boot 来创建第一个application

Spring Boot Maven插件

使用 Maven 部署多个 Spring Boot 模块