SpringBoot从入门到精通—SpringBoot快速入门

1、入门环境准备

在本地安装3.3版本以上的Maven,以及JDK1.7以上的java环境,然后在IDEA【settings】=>【File | Settings | Build, Execution, Deployment】=>【Maven】,设置如下内容:

2、使用Maven构建SpringBoot工程

    第一个程序我们先创建一个Maven工程。创建好Maven项目后,首先导入Spring Boot的依赖包,他的依赖可以在Spring Boot的官网找到。

 <!-- Inherit defaults from Spring Boot -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.22.RELEASE</version>
    </parent>

    <!-- Add typical dependencies for a web application -->
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <!--这个插件可以把我们的应用打包成一个可以运行的jar包,后面有详细的说明-->
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

注意
    1.spring-boot-starter-parent的父项目是spring-boot-dependencies(Spring Boot的版本仲裁中心),他的作用是用来管理Spring Boot应用里面的所有依赖版本
    2.spring-boot-starter-web:spring-boot-starter我们称作spring-boot场景启动器,Spring Boot将所有的功能场景都抽取出来,做成一个个的starters(启动器),只需要在项目里面引入这些starter,相关场景的所有依赖都会导入进来(要用什么功能就导入什么场景的启动器)。spring-boot-starter-web的作用是帮我们导入了web模块正常运行所依赖的组件;

完成上面的操作后,在src/main/java下新建一个主程序类Application.java类

package com.xust.iot;

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

/**
 * 使用@SpringBootApplication 来标注主程序
 */
@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

注意!
    1、主程序类必须位于项目基包的根目录(具体原因下面会说),而且要使用@SpringBootApplication来告诉Spring Boot这是一个主程序类(配置类),这么标注后Spring Boot就会从这个类的main方法启动并加载配置。
    2、@SpringBootApplication是基于Spring Boot基本注解的一个复合注解,源码片段如下:

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(
    excludeFilters = {@Filter(
    type = FilterType.CUSTOM,
    classes = {TypeExcludeFilter.class}
), @Filter(
    type = FilterType.CUSTOM,
    classes = {AutoConfigurationExcludeFilter.class}
)}
)
public @interface SpringBootApplication {......

        2.1、@SpringBootConfiguration:标注在某个类上,表示这是一个Spring Boot的配置类;底层实际还是使用的是Spring的底层注解@Configuration
        2.2、@ComponnetScan:标注在类上,就是我们熟悉的包扫描
        2.3、@EnableAutoConfiguration:开启自动配置功能;以前我们需要配置的文件,在类上写上这个注解,Spring Boot帮我们自动配置。@EnableAutoConfiguration的源码片段如下:

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@AutoConfigurationPackage
@Import(AutoConfigurationImportSelector.class)
public @interface EnableAutoConfiguration {
    String ENABLED_OVERRIDE_PROPERTY = "spring.boot.enableautoconfiguration";

    Class<?>[] exclude() default {};

    String[] excludeName() default {};
}

             2.3.1、@AutoConfigurationPackage:自动配置包
             2.3.2、@Import(AutoConfigurationImportSelector.class):借助AutoConfigurationImportSelector这个类@EnableAutoConfiguration可以帮助SpringBoot应用将所有符合条件的@Configuration配置都加载到当前SpringBoot创建并使用的IoC容器。

Spring Boot在启动的时候从类路径下的META-INF/spring.factories中获取EnableAutoConfiguration指定的值,将这些值作为自动配置类导入到容器中,自动配置类就生效,帮我们进行自动配置工作;以前我们需要自己配置的东西,自动配置类都帮我们;

然后在src/main/java包下新建controller包,在这个包下新建HelloWordController.java

package com.xust.iot.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class HelloWordController {

    @ResponseBody
    @RequestMapping("/hello")
    public String hello(){
        return "Hello word,hello Spring Boot!";
    }
}

这样一个简单的SpringBoot程序就写好了,在主程序类中点击运行按钮启动它。下面是运行后的结果:

关于运行结果的说明:启动后我们访问http://localhost:8080,回车后就会出现Whitelable Error Page提示,这是Spring Boot默认的错误页面,由于我们没有指定初始页面,出错很正常,之后在地址栏中请求hello,就可以看到我们写的Hello word,hello Spring Boot!
1.2 SpringBoot使用可执行jar文件部署应用

    基于SpringBoot开发项目,不仅开发起来十分容易,而且由于他内置了Tomcat、Jetty等应用服务器,因此使得我们的部署也不再需要外部的应用服务器了,我们可以把SpringBoot使用Maven打包成jar文件后直接执行起来就可以了。

    把SpringBoot打包成jar文件需要spring-boot-maven-plugin这个插件(在上面有依赖文件中已经导入)。在POM文件中导入后,我们在IDEA有侧边栏点击【Maven】=>【项目名】=>【Lifecycle】=>【package】,双击package就会运行插件就可以我们的应用打包成一个可运行的jar包(或者在IDEA自带的控制台中在当前项目的根目录下使用命令mvn clean package)。打包后我们在target目录下可以找到他,然后复制在里一个目录中在命令行中cd到这个目录,执行java -jar jar包名这个命令可以执行打包后的应用。下面是执行后命令行的打印:

2、使用Spring Initializer快速创建Spring Boot项目【推荐】

除了使用Maven构建一个SpringBoot项目之外,我们还可以使用Spring官方提供的Spring Initializer来快速构建一个SpringBoot项目。在IDEA依次点击【New】=>【Project】然后选择【Spring Initializr】

使用Spring Initializr构建的SpringBoot项目中

  • 主程序类已经生成好了,我们只需要我们实现业务逻辑
  • resources文件夹中目录结构
  • static:保存所有的静态资源,如: js css images;
  • templates:保存所有的模板页面,Spring Boot默认jar包使用嵌入式的Tomcat,默认不支持JSP页面,可以使用模板引擎(freemarker、thymeleaf);
  • application.properties:SpringBoot的配置文件;可以修改一些默认设置。这个文件也支持YAML格式的文件,用YAML格式配置的文件结构更加简洁,清晰。

留言区

还能输入500个字符