玖叶教程网

前端编程开发入门

Spring Boot入门:第一个Spring Boot程序

相信使用过Spring MVC框架的小伙伴,都感受过其繁琐的配置。过于细分的配置和与Servlet API的强耦合,使得无论开发还是部署都会费时费力,且容易出现问题。在此基础上,Spring Boot应运而生。

使用Spring Boot可以让我们快速创建一个基于Spring框架的项目,而这个项目,只需要极少的配置。

Spring Boot核心功能

Spring Boot主要有以下核心功能

1、独立运行的Spring项目

Spring Boot可以以jar包的形式独立运行,使用:java -jar xxx.jar 就可成功运行Spring Boot项目。

2、内嵌Servlet容器

Spring Boot内嵌Tomcat容器,无需使用war包的方式部署项目,可以通过执行项目的main函数,让项目快速运行。

3、提供starter简化Manen配置

Spring Boot提供了一系列的starter pom用来简化我们的Maven依赖

4、自动配置Spring

Spring Boot会根据我们项目中的jar包依赖,对项目进行自动配置。当然,这只是Spring考虑到的大多数使用场景,在一些特殊情况,还需要我们进行手动配置。

5、准生产的应用监控

Spring Boot提供了基于http、ssh、telnet对运行时的项目进行监控。

6、绝对没有代码生成并且对XML也没有配置要求

Spring Boot实现了自动配置,降低了项目搭建复杂度,包含一整套快速开发包。

如果这里没有搞明白上述核心功能描述的意思,不妨先往下看,等看完整篇文章再回来思索核心功能。

第一个Spring Boot程序

以IntelliJ IDEA为例。Create New Project,选择Spring Initializr,Next。

填写项目信息。

选择项目使用到的技术,这里Spring Boot版本建议选择最新的稳定版,然后下面找到Web勾选上即可。

最后一步,填写项目名和路径,Finish。

第一次创建Spring Boot项目时,系统会下载一些需要的依赖等,耗时较长,下载成功后等以后再新建项目时会很快创建好。

项目结构解析

项目创建成功之后,我们先来看下项目结构。

首先在项目创建完成之后,会自动创建一个类,命名规则是ProjectName+Application,比如我们这个项目的SpringBootDemoApplication,这就是Spring Boot项目的入口类。我们打开类之后会发现,类中有个@SpringBootApplication注解,这是整个Spring Boot的核心注解,作用是开启Spring Boot的自动配置。类中还有一个main方法,这是标准的Java应用程序的入口方法。

我们新建一个类,类结构如图所示。注意,在Spring Boot项目中,只有入口类(即SpringBootDemoApplication)所在的包及其子包中的类,才会被自动配置。

新建的类加上@RestController注解,使之成为一个Controller,然后在其内提供地址转换方法。

@RestController

public class GatewayController {

@RequestMapping(value = "/gateway")

public String gateway() {

return "Hello World";

}

}

启动项目

启动成功后就可在浏览器中直接访问。

至此,一个简单的Spring Boot项目就创建成功,并且能够成功访问。

项目分析

下面,我们来仔细分析下项目。

1、入口类SpringBootDemoApplication.java

回到入口类SpringBootDemoApplication,刚才说了,项目创建完成之后,会自动创建一个命名规则是ProjectName+Application的类,类中有个@SpringBootApplication注解和一个main方法,main方法是一个标准的Java应用程序的入口方法,而@SpringBootApplication注解作用是开启Spring Boot的自动配置。我们进入到@SpringBootApplication注解的源码,可以看到他是一个组合注解,组合了@SpringBootConfiguration、@EnableAutoConfiguration、@ComponentScan等。

@SpringBootConfiguration注解就是@Configuration注解,表示该类是一个配置类;

@ EnableAutoConfiguration注解作用是让Spring Boot根据jar包依赖为当前项目进行自动配置。比如,如果spring-boot-starter-web已经添加了Tomcat和Spring MVC,这个注解会自动假设正在开发一个Web应用程序并添加相应的Spring设置;

@ComponentScan注解的作用是告诉Spring自动扫描并且装入bean容器。

刚才我们就提醒过,使用@SpringBootApplication注解进行自动配置,系统会去入口类的同级包以及子级包中去扫描实体类。


  1. @Target({ElementType.TYPE})
  2. @Retention(RetentionPolicy.RUNTIME)
  3. @Documented
  4. @Inherited
  5. @SpringBootConfiguration
  6. @EnableAutoConfiguration
  7. @ComponentScan(
  8. excludeFilters = {@Filter(
  9. type = FilterType.CUSTOM,
  10. classes = {TypeExcludeFilter.class}
  11. ), @Filter(
  12. type = FilterType.CUSTOM,
  13. classes = {AutoConfigurationExcludeFilter.class}
  14. )}
  15. )
  16. public @interface SpringBootApplication {
  17. }

2、配置文件application.properties

Spring Boot使用一个全局的配置文件application.properties或者application.yml,放在src/main/resources目录下。Spring Boot不仅支持常见的properties类型的配置文件,也支持yaml语言的配置文件。

修改Tomcat默认端口号和默认访问路径

Tomcat默认端口号是8080,默认访问路径是http://localhost:8080,这里我们将端口号改为8090,访问路径改为http://localhost:8090/springbootdemo。

在application.properties文件中添加如下代码:


  1. server.port=8090
  2. server.servlet.context-path=/springbootdemo

重启项目,浏览器访问

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言