Spring boot 学习 入门

Posted 刘大飞

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring boot 学习 入门相关的知识,希望对你有一定的参考价值。

1: 需要的环境:

         JDK:至少JDK7才支持Spring boot

         maven:至少3.2 

         spring-boot:1.2.5.RELEASE(在pom.xml中指定)

2: 创建一个maven工程:其中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/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
<groupId>com.xxx</groupId>
<artifactId>myboot</artifactId>
<version>1.0-SNAPSHOT</version>
<!--
引入spring-boot-starter-parent做parent是最好的方式,
但是有时我们可能要引入我们自己的parent,此时解决方式看后面;

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

<!-- 引入实际依赖 -->
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>

<build>
<plugins>
<!--
用于将应用打成可直接运行的jar(该jar就是用于生产环境中的jar)
值得注意的是,如果没有引用spring-boot-starter-parent做parent,
且采用了上述的第二种方式,这里也要做出相应的改动
在添加了该插件之后,当运行“mvn package”进行打包时,会打包成一个可以直接运行的 JAR 文件,
使用“Java -jar”命令就可以直接运行。这在很大程度上简化了应用的部署,只需要安装了 JRE 就可以运行。
可以在POM中,指定生成 的是Jar还是War;
你还可以指定要执行的类,如果不指定的话,Spring会找有这个【public static void main(String[] args)】方法的类,当做可执行的类。

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

maven是个项目管理工具,如果我们不告诉它我们的代码要使用什么样的jdk版本编译的话,
它就会用maven-compiler-plugin默认的jdk版本来进行处理,这样就容易出现版本不匹配,以至于可能导致编译不通过的问题。

maven的默认编译使用的jdk版本貌似很低,使用maven-compiler-plugin插件可以指定项目源码的jdk版本,编译后的jdk版本,以及编码。
-->
        
<groupId>org.apache.maven.plugins</groupId>
        
<artifactId>maven-compiler-plugin</artifactId>
        
<configuration>
          
<source>1.8</source>
          
<target>1.8</target>
<encoding>UTF-8</encoding><!-- 字符集编码 -->
<skipTests>true</skipTests><!-- 跳过测试 -->
<verbose>true</verbose>
<showWarnings>true</showWarnings>
<fork>true</fork><!-- 要使compilerVersion标签生效,还需要将fork设为true,用于明确表示编译版本配置的可用 -->
<executable><!-- path-to-javac --></executable><!-- 使用指定的javac命令,例如:<executable>${JAVA_1_4_HOME}/bin/javac</executable> -->
<compilerVersion>1.3</compilerVersion><!-- 指定插件将使用的编译器的版本 -->
<meminitial>128m</meminitial><!-- 编译器使用的初始内存 -->
<maxmem>512m</maxmem><!-- 编译器使用的最大内存 -->
<compilerArgument>-verbose -bootclasspath ${java.home}\\lib\\rt.jar
</compilerArgument><!-- 这个选项用来传递编译器自身不包含但是却支持的参数选项 -->
        
</configuration>
      
</plugin>
</plugins>
</build>
</project>

spring-boot-starter-parent的具体作用,可以查看如下2个文件:它用来提供相关的Maven默认依赖。使用它之后,常用的包依赖可以省去version标签
已经定义好了很多包的依赖,可以统一项目的依赖,避免后续的版本冲突. 
spring-boot-starter-parent-2.2.6.RELEASE.pom

spring-boot-dependencies-2.2.6.RELEASE.pom
当然我们自己可以覆盖掉parent中定义的一些依赖:
<properties>
<java.version>1.8</java.version>
</properties>

实际上,spring-boot-starter-web.jar这个jar引入5各方面的jar:

  • spring-boot的启动jar:spring-boot-starter.jar
  • tomcat相关jar(spring-boot-1.2.5-->tomcat8)
  • jackson
  • hiberbate-validator
  • spring相关jar(spring-boot-1.2.5-->spring4.1)

使用 mvn clean compile 编译。

3. FirstBoot.java

package com.xxx.firstboot;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
* @RestController:spring mvcd的注解,
* 相当于@Controller与@ResponseBody的合体,可以直接返回json
*
* @EnableAutoConfiguration:spring boot的注解
* 是无配置启动的关键部分
*/
@RestController
@EnableAutoConfiguration
public class FirstBoot {

@RequestMapping("/hello")
public String testFirstMethod(){
return "Hello jigang!!!";
}

/**
* spring boot的入口,在整个项目中,包括其子项目在内,
* 只能有一个main方法,否则spring boot启动不起来
*/
public static void main(String[] args) {
SpringApplication.run(FirstBoot.class, args);
}

}

4.  启动Spring boot

 首次启动,采用 “mvn spring-boot : run”(会下载一些东西)

 之后启动,直接在主类(含有main方法)上 run as --> java application

         之后在浏览器输入路径"http://localhost:8080/hello",输出信息"Hello jigang!!!",则成功!!!

5:  打包:

      成可以执行的jar, 该jar将是在生产环境下可用的jar。

      生产jar的过程依赖于引入的spring-boot-maven-plugin.jar(所以pom.xml要配置这个)。

       执行"mvn package",查看target下的文件:可以生成jar包。

6: 运行打包好的jar

        进入myboot文件夹下,执行命令"java -jar target/myboot-1.0-SNAPSHOT.jar",得出如下结果:

之后访问浏览器即可。

7:若不采用spring-boot-starter-parent做parent,想使用自己的parent,该怎么配置?

解决方案:

加入以下代码即可。

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

spring-boot-starter-parent

8: Springboot自动帮助创建Springboot工程,并添加依赖:https://start.spring.io/

 

 

以上是关于Spring boot 学习 入门的主要内容,如果未能解决你的问题,请参考以下文章

Spring Boot入门——使用模板FreeMaker

Spring Boot 2从入门到入坟 | 基础入门篇:你会看Spring Boot的官方文档吗?

Spring Boot 2从入门到入坟 | 基础入门篇:你会看Spring Boot的官方文档吗?

Spring Boot学习大全(入门)

Spring boot 学习 入门

1spring-boot学习笔记简单入门