SpringBoot简单使用


写在前面

文章参考自 Spring Boot 官方文档。

官方给 Spring Boot 的定义是:

Spring Boot 是构建所有基于 Spring 的应用程序的起点。Spring Boot 的设计目的是让您尽可能快地启动和运行,并尽可能少地预先配置Spring。

Spring Boot 是基于 Spring framework 的,并在此之上,提供了自动配置等。对于 Spring framework , Spring Boot 更像是接管了它的配置;根据约定大于配置,我们只需要使用更少的配置,就能像我们之前一样使用 Spring。


添加依赖


Maven 用户可以从 spring-boot-starter-parent 项目继承以获得合理的默认值:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.2.1.RELEASE</version>
</parent>

当然,在某些情况下,你并不想使用 Spring Boot 作为父项目(或者说你已经有了父项目):

<dependencyManagement>
    <dependencies>
        <dependency>
            <!-- Import dependency management from Spring Boot -->
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-dependencies</artifactId>
            <version>2.2.1.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

现在,我们可以添加自己项目需要的依赖关系:

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
</dependencies>

编写代码


一个最简单的web应用程序应该是什么样子?

@RestController
@EnableAutoConfiguration
public class Example {

    @RequestMapping("/")
    String home(){
        return "Hello World!";
    }

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

仅仅这一个类,我们就能够通过 HTTP 请求 http://localhost:8080/ 获取到 Hello World! 结果了。尽管这里没有太多代码,但依然做了很多事。

  1. @RestController@RequestMapping 注解

示例类的第一个注释是@RestController。这就是所谓的原型注释。它为阅读代码的人和 Spring 提供了类扮演特定角色的提示。在本例中,我们的类是一个 web @Controller,因此 Spring 在处理传入的 web 请求时考虑它(经典的 MVC 当中的控制器)。


@RequestMapping 注释提供了“路由”信息。它告诉 Spring,任何带有/路径的 HTTP 请求都应该映射到home 方法。@RestController注释告诉 Spring 将结果字符串直接返回给调用者。

Rest 是一种互联网应用程序的 API 设计理念:URL定位资源,用HTTP动词(GET, POST, DELETE, PUT)描述操作。

  1. @EnableAutoConfiguration 注解

    这个注释告诉 Spring Boot 根据您所添加的 jar 依赖项“猜测”您希望如何配置 Spring。由于 Spring-boot-starter-web添加了 TomcatSpring MVC,因此自动配置假定您正在开发一个web应用程序,并相应地设置Spring。

想想我们以前运行一个 Spring 的 web 程序需要做什么?在我们加入了 Spring 繁琐的 jar 包依赖后,为了让程序能够在 tomcat 下运行,我们需要在 web.xml 中配置 org.springframework.web.context.ContextLoaderListenerorg.springframework.web.servlet.DispatcherServlet 。现在,导入了 spring-boot-starter-web 依赖后,Spring Boot 使用了嵌入式的 tomcat ,那么监听器 和DispatcherServlet 不需要了嘛?no!仍然需要,但不需要我们自己配置了。你可以通过控制台的日志信息,去追踪整个流程。


为什么常见的 @SpringBootApplication 注解不见了,我们可以看看 @SpringBootApplication 注解:

@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(excludeFilters = { @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),
		@Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) })

@SpringBootApplication 注解类上添加了上面三个注解。@SpringBootConfiguration 注解表示一个类应提供 @Configuration , 它可以作为 @Configuration 的替代品,但官方文档有说:

应用程序应该只包含一个 SpringBootConfiguration 注解,并且大多数情况下,仅仅需要从 @SpringBootApplication 继承。

@EnableAutoConfiguration 注解启动 Spring应用程序上下文的自动配置,尝试猜测和配置您可能需要的 bean。在我们上面的的程序中,取消该注解,你将在启动时,得到错误。

@ComponentScan 配置组件扫描指令,以与 @Configuration 一起使用。

我们可以结合自己的需要,自行添加注解。


创建一个可执行的 Jar


通过创建一个完全自包含的可执行jar文件来完成我们的示例,该文件可以在生产环境中运行。可执行 jar (有时称为 “ fat jar ” ) 是包含编译类以及代码需要运行的所有jar依赖项的归档文件。

要创建一个可执行 jar,我们需要将 spring-boot-maven-plugin 添加到pom.xml中:

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

运行 mvn pavkage ,查看 target 目录,则应该看到应用程序 jar 包,执行 java -jar app.jar 即可运行程序。

在应用程序目录下,我们还可以使用 mvn spring-boot:run 启动,退出程序,使用 ctrl+c 来关闭。

SpringBoot是一个基于Spring框架的开源项目,它可以帮助开发者快速构建基于Spring的应用程序。SpringBoot提供了许多使用示例,下面我们来简单介绍一些常见的SpringBoot使用示例: 1. Web应用程序开发:SpringBoot可以轻松地创建Web应用程序,包括RESTful API服务和基于MVC的网页应用程序。我们可以使用SpringBoot创建一个简单的Hello World Web应用程序,也可以实现用户登录、数据展示等功能。 2. 数据访问:SpringBoot提供了对各种数据访问技术的集成支持,比如JPA、Hibernate、MyBatis等。我们可以利用SpringBoot创建一个使用JPA的数据访问示例,也可以使用MyBatis来实现数据库操作。 3. 消息队列:SpringBoot支持集成各种消息队列技术,比如ActiveMQ、RabbitMQ等。我们可以用SpringBoot创建一个简单的消息队列应用程序,实现消息的发送和接收功能。 4. 定时任务:SpringBoot内置了定时任务的支持,我们可以在SpringBoot应用程序中轻松地创建定时任务,比如定时生成报表、数据备份等。 5. 安全认证:SpringBoot提供了对安全认证技术的集成支持,比如基于Spring Security的用户认证、授权功能。我们可以利用SpringBoot创建一个简单的用户登录认证示例,也可以实现基于角色的访问控制。 总的来说,SpringBoot提供了丰富的使用示例,可以帮助开发者快速了解和掌握SpringBoot的各种功能和特性,从而更高效地开发基于Spring的应用程序。希望以上内容能够对您有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值