美文网首页Java软件工程师的进阶修炼
【无为则无心&SpringBoot】— 4.创建第一个Sprin

【无为则无心&SpringBoot】— 4.创建第一个Sprin

作者: 繁华似锦Fighting | 来源:发表于2020-10-04 00:21 被阅读0次

    1、步骤

    • 创建一个Spring Boot的java项目。

    • 导入依赖Spring Boot相关的依赖。

    • 编写一个java类,用于启动Spring Boot项目(helloword.java)。

    • 编写相关业务类(hellocontroller.java)。

    • 运行helloword.java中的main函数,启动Spring Boot项目。

    • 通过浏览器访问Spring Boot项目。

    2、操作

    (1)创建一个Spring Boot的java项目

    具体可以看博客:https://www.jianshu.com/p/9e9a2613e901,不通过骨架创建Maven的Java项目。文章里已经总结好。

    (2)导入依赖Spring Boot相关的依赖

    在项目中的pom.xml文件中,添加下面内容,配置Spring Boot相关依赖。

    <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>1.5.9.RELEASE</version>
        </parent>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
        </dependencies>
    

    (3)编写一个java类,用于启动Spring Boot项目

    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    /**
     * 用来来标注一个java的主程序类,
     * 说明这是一个Spring Boot应用。
     */
    @SpringBootApplication
    public class helloword {
    
        public static void main(String[] args) {
    
            // Spring应用启动起来
            SpringApplication.run(helloword.class,args);
        }
        
    }
    

    (4)编写相关业务类

    业务类就是需要我们写的Controller层、Service层。

    我们这里只写一个Controller层,能够返回一个数据就可以。

    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.ResponseBody;
    
    @Controller
    public class hellocontroller {
    
        @ResponseBody
        @RequestMapping("/hello")
        public String hello() {
            return "Hello Spring Boot!";
        }
    }
    
    

    (5)运行helloword.java中的main函数,启动Spring Boot项目

    我们不用在IDEA中配置tomcat服务器,只有就可以运行main()函数。

    可以看到控制台结果如下,开启了一个8080端口的tomcat服务器。

    (6)通过浏览器访问Spring Boot项目

    在浏览器中输入访问地址:localhost:8080/hello

    可以看到输出了Hello Spring Boot!,表示Spring Boot项目创建成功,并运行起来。

    是不是非常的方便,我们根本不需要做过多的配置,如SpringMVC的包扫描、视图解析器、前端控制器等都不需要进行配置了。

    (7)Spring Boot部署非常简化

    在部署的时候Spring Boot项目部署起来也非常方便,如果我们所在的服务器中,没有配置tomcat之类的Servlet容器。我们可以把Spring Boot项目打成一个可执行的jar包。通过java -jar 包名.jar直接运行Spring Boot项目。

    • 在Maven的pom.xml文件中配置打jar包插件。

    spring-boot-maven-plugin插件,在很大程度上简化了应用的部署,只需要安装了 JRE 就可以运行。

    <!-- 将应用打包成一个可执行的jar包;-->
    
       <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                    <version>1.5.4.RELEASE</version>
                </plugin>
            </plugins>
        </build>
    
    • 执行Maven的打包命令

    在项目的target目录就能找到打包好的项目spring-boot-01-helloword-1.0-SNAPSHOT.jar

    • 执行java -jar命令启动项目

      我们可以把Spring Boot项目的jar包放到一个方便执行的地方,来执行命令。


    • 在浏览器中访问项目

    可见Spring Boot中部署一个项目是非常的方便。

    (8)关于spring-boot-maven-plugin插件的总结

    spring-boot-maven-plugin插件介绍

    Spring Boot Maven plugin能够将Spring Boot应用打包为可执行的jar或war文件,然后以java -jar命令的方式运行Spring Boot应用。Spring Boot Maven plugin在2017.6.8发布的1.5.4.RELEASE版本,要求Java 8, Maven 3.2及以后。(需要配置阿里云Maven镜像仓库)

    Spring Boot Maven plugin的5个Goals(目标)

    • spring-boot:repackage,默认goal。在mvn package之后,再次打包可执行的jar/war,同时保留mvn package生成的jar/war为.origin。
    • spring-boot:run,运行Spring Boot应用。
    • spring-boot:start,在mvn integration-test阶段,进行Spring Boot应用生命周期的管理。
    • spring-boot:stop,在mvn integration-test阶段,进行Spring Boot应用生命周期的管理。
    • spring-boot:build-info,生成Actuator使用的构建信息文件build-info.properties。

    关于Maven插件系列之spring-boot-maven-plugin的用法,可以网上自己搜索。

    总结:spring-boot-maven-plugin插件,是一个可以把Spring Boot项目打成一个可以使用java -jar命令执行的jar包,Maven中的打包命令打成的jar不能直接运行,需要放入Servlet容器中运行。

    (9)关于spring-boot-maven-plugin插件在使用过程中遇到的问题

    在Maven中配置spring-boot-maven-plugin插件的时候遇到的问题就是,我们直接把上边的spring-boot-maven-plugin插件坐标复制到pom.xml中,不能直接下载。

    原因

    • 在Maven中,plugin插件是有专属的配置的,在没有的配置的时候就去普通的仓库里面找。

    • 我们平时使用的plugin,都是maven官方的,然而这插件不是他家的,对此阿里有一个仓库https://maven.aliyun.com/repository/spring-plugin可以下载。

    • 在项目代码里面,如果加上以下这段配置,就可以正常打包部署了!

    <pluginRepositories>
        <pluginRepository>
                <id>alimaven spring plugin</id>
                <name>alimaven spring plugin</name>
                <url>https://maven.aliyun.com/repository/spring-plugin</url>
        </pluginRepository>
    </pluginRepositories>
    
    • 为了不让每个项目都如此烦所的加上上面的配置,需要在Maven的settings.xml配置代码如下:
    <profiles>
         <profile>
          <id>spring plugins</id>
    
          <activation>
            <jdk>spring plugins</jdk>
          </activation>
    
          <pluginRepositories>
            <pluginRepository>
              <id>spring plugins</id>
              <name>Spring plugins</name>
              <url>https://maven.aliyun.com/repository/spring-plugin</url>
              <layout>default</layout>
              <snapshotPolicy>always</snapshotPolicy>
            </pluginRepository>
          </pluginRepositories>
        </profile>
      </profiles>
    

    或者简单一点,直接配置阿里云的Maven镜像仓库。

    <mirror>
          <id>alimaven</id>
          <name>aliyun maven</name>
          <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
          <mirrorOf>central</mirrorOf>        
     </mirror>
    

    参考:https://blog.csdn.net/MVP_PhoeNix/article/details/84925399
    第九点是记录一下,以后出现问题可以做个参考。

    相关文章

      网友评论

        本文标题:【无为则无心&SpringBoot】— 4.创建第一个Sprin

        本文链接:https://www.haomeiwen.com/subject/apqnphtx.html