文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

基于Maven怎么安装SpringBoot

2023-06-29 12:02

关注

这篇“基于Maven怎么安装SpringBoot”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“基于Maven怎么安装SpringBoot”文章吧。

1. SpringBoot 简介

Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。Spring Boot 可以轻松创建一个基于 Spring 且独立运行的生产级应用。

2. SpringBoot 安装

SpringBoot 的安装有很多种方式,最简单的一种是直接将 spring-boot-*.jar 等文件添加到工程的 classpath 下,这种你就可以运行并调试你的应用了。如果是企业级应用,推荐使用构建工具来管理项目的依赖,比如:Maven 或者 Gradle 等。对于直接添加 classpath 的方式,这里不做多余的介绍,下面主要描述基于构建工具的安装指导。

2.1. 基于 Maven 的安装

Spring Boot 与 Apache Maven 3.2兼容。如果你还没有安装 Maven,可以按照 maven.apache.org 上的说明进行操作。

Spring Boot 依赖使用 org.springframework.boot 作为 groupId。通常情况下,你的 POM 文件会继承 spring-boot-starter-parent 工程,然后再声明一个或多个 Starters 的依赖。Spring Boot 同时也提供了一个可选的Maven 插件用来生成可执行的 Jar 包。

典型的 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.example</groupId>    <artifactId>myproject</artifactId>    <!-- 继承 Spring Boot 的默认值 -->    <parent>        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-starter-parent</artifactId>        <version>1.5.3.RELEASE</version>    </parent>    <!-- 为 Web 应用添加能用依赖 -->    <dependencies>        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-web</artifactId>        </dependency>    </dependencies>    <!-- 打包成一个可执行 jar 包 -->    <build>        <plugins>            <plugin>                <groupId>org.springframework.boot</groupId>                <artifactId>spring-boot-maven-plugin</artifactId>            </plugin>        </plugins>    </build></project>

提示:

spring-boot-starter-parent 是使用 Spring Boot 的一种比较好的方式,但它并不适用于所有场景。有时,你可能需要继承一个不同的父级 Pom,或者你不喜欢这种默认的配置。你也可以通过声明一个 scope=import 的依赖来使用它:

<dependencyManagement>     <dependencies>        <dependency>            <!-- 从 Spring Boot 导入依赖管理 -->            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-dependencies</artifactId>            <version>1.5.3.RELEASE</version>            <type>pom</type>            <scope>import</scope>        </dependency>    </dependencies></dependencyManagement>

2.2. 基于 Gradle 的安装

相对 Maven 庞大的 XML 配置,我更喜欢 Gradle 多一点,不但简洁而且灵活性也好很多。Spring Boot 与 Gradle(2.9或以上)、Gradle 3兼容。如果你还没有安装 Gradle,你可以按照 www.gradle.org 上的操作说明来进行安装。

典型的 build.gradle 文件:

plugins {    id 'org.springframework.boot' version '1.5.3.RELEASE'    id 'java'}jar {    baseName = 'myproject' version = '0.0.1-SNAPSHOT'}repositories {    jcenter()    maven { url "http://maven.aliyun.com/nexus/content/groups/public/" }}dependencies {     compile("org.springframework.boot:spring-boot-starter-web")    testCompile("org.springframework.boot:spring-boot-starter-test")}

3. 创建 HelloWorld 应用

创建一个简单的 Java 类如下:

import org.springframework.boot.*;import org.springframework.boot.autoconfigure.*;import org.springframework.stereotype.*;import org.springframework.web.bind.annotation.*;@RestController@EnableAutoConfigurationpublic class Example {    @RequestMapping("/")    String home() {        return "Hello World!";    }    public static void main(String[] args) throws Exception {        SpringApplication.run(Example.class, args);    }}

Example 类上的第一个注解 @RestController 是 @Controller 及 @ResponseBody 的组合,表明这是一个控制器,且所有响应数据都会被序列化到响应体里面返回。而方法上的 @RequestMapping 注解会为请求处理提供路由信息。这些注解都是 Spring 的,而不是 Spring Boot 特有的。

类上的第二个注解 @EnableAutoConfiguration 会告诉 Spring Boot 去通过依赖的 Jar 包配置 Spring 工程。因为 spring-boot-starter-web 里面包含有 Tomcat 及 Spring MVC,所以它会认为这是一个 Web 工程,并进行相应的 Spring 配置。

应用的最后一部分是一个 main 方法,它通过调用 SpringApplication 的 run 方法将应用程序委托给 Spring Boot。SpringApplication 将引导我们的应用程序启动 Spring 及自动配置的 Tomcat Web 服务。我们需要将 Example.class 作为一个参数传递给 run 方法来告诉 SpringApplication 它是主要的 Spring 组件。

运行 main 方法后,即可以使用浏览器打开地址 localhost:8080 会得到输出:

Hello World!

4. 代码结构

一般的应用都会使用 域名的反转 + 项目名 作为项目的统一包名前缀。如:com.qchery.funda。在 SpringBoot 的项目中,推荐使用如下布局:

com
 +- qchery
     +- funda
         +- Application.java
         |
         +- entity
         |   +- Customer.java
         |
         +- dao
         |   +- CustomerRepository.java
         |
         +- service
         |   +- CustomerService.java
         |
         +- web
             +- CustomerController.java

其中,Application.java 文件如下:

import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.EnableAutoConfiguration;import org.springframework.context.annotation.ComponentScan;import org.springframework.context.annotation.Configuration;@Configuration@EnableAutoConfiguration@ComponentScanpublic class Application {    public static void main(String[] args) {        SpringApplication.run(Application.class, args);    }}

一般来说,我们会将 @EnableAutoConfiguration 注解放置在 主类上,也就是上面结构中的 Application.java。它隐式定义了包含某些搜索项的搜索包,例如,如果你正编写一个 JPA 的应用程序,那么带 @EnableAutoConfiguration 注解的类将会被用来搜索带有 @Entity 的类。

而 @ComponentScan 会用来自动扫描相应组件,由于 Application.java 是的根包名下,所以它不需要声明 basePackage 去指定需要扫描的包,默认为根包名,即:com.qchery.funda。

5. Configuration 类

SpringBoot 同时支持 Java-based 配置及 XML 文件配置。但推荐使用 Java-based 形式的配置,如果现在的系统中已经存在一些 XML 形式的配置,建议使用相同效果的 Java-based 配置进行替换,你可以通过搜索 Enable* 来查找对应的 Java-based 配置。

5.1. 导入其它配置

在 SpringBoot 工程里面,我们不需要把所有的配置放置到一个类文件里面。它的 @Import 注解可以帮助我们导入其它的配置类,如果想要导入 XML 形式的配置,可以使用 @ImportResource 注解。另外,还可以使用 @ComponentScan 注解去扫描所有带有 @Configuration 注解的类。

6. 自动化配置

当你在某一个带有 @Configuration 的类里加上 @EnableAutoConfiguration 或 @SpringBootApplication 注解时,SpringBoot 会根据所添加的依赖包自动完成项目配置。例如,如果你在类路径下添加 HSQLDB 的包,但你没有配置任何数据库属性,SpringBoot 会自动配置一个 In-Memory 数据库。其中 @EnableAutoConfiguration 只能添加一个类上,建议将其加在主要的 @Configuration 类上。

6.1. 逐渐替换自动化配置

自动化配置并不是侵入式的,在任何地方你都可以通过自定义配置来替换它。例如,如果你添加自己的数据库配置,那么默认的嵌入式数据库支持将会被退回。如果想要查看自动化配置是否生效,可以在运行程序时,加上 &ndash;debug 参数进行查看。

6.2. 禁止特定的自动化配置

当你发现自动化配置不能按自己的意愿进行工作的时候,可以通过 @EnableAutoConfiguration 的 exclude 属性来禁用掉它们。

import org.springframework.boot.autoconfigure.*;import org.springframework.boot.autoconfigure.jdbc.*;import org.springframework.context.annotation.*;@Configuration@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})public class MyConfiguration {}

7. 使用 @SpringBootApplication 注解

由于大多数情况下,@Configuration,@EnableAutoConfiguration 及 @ComponentScan 注解都是一起使用的。SpringBoot 提供了 @SpringBootApplication 这个更加方便的选择,它等同于前三个注解。

import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication // 等同于 @Configuration @EnableAutoConfiguration @ComponentScanpublic class Application {    public static void main(String[] args) {        SpringApplication.run(Application.class, args);    }}

以上就是关于“基于Maven怎么安装SpringBoot”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯