zoukankan      html  css  js  c++  java
  • SpringBoot 第一篇:HelloWorld 跑起来

    背景

          金融行业从业快十年,作为银行系开发人员来说开源框架了解不多非常正常,因为银行系的运行平台,基本上不会采购小厂商集合开源框架自建的产品,竞标的产品没有几十个成功案例,你也进不了这个门槛(有关系的除外,这个内幕都不说了 )。所以大多数开发人员(我不是大多数,得意.jpg)在银行系接触的更多的是各大金融行业服务商自己的产品,这些产品里面也集成有像Spring、SpringBoot之类的框架,当然,你一个应用开发人员只需要写写业务逻辑,底层平台实现是接触不到的,会用就行了。

         平时工作也比较忙,每天客户的需求要分析、要讨论、要设计、要开发、要测试、要上线,相信做金融这行的人都明白,996虽然网上炒得不可开交,反正我们真的都是常态(心平气和.jpg),真的就是这么无限循环,哪有多余的时间给你研究这些网上的五花八门的框架(休假除外)。

          最近来了新人,啥都不太懂,又和我咨询SpringBoot框架的事,我也没实际弄过,了解的都是一点概念上的东西,心想怕给人教坏了所以来实操一下,顺便给人实际指导一下。

    环境

    开发工具: IntelliJ IDEA 2019.1.4  (不要跟我提Eclipse一样好用,不接受,用了你才有资格来讨论)

    基础环境: jre 1.8.0_211

    Maven:apache-maven-3.6.1

    SpringBoot:2.1.7.RELEASE 目前最新的正式版

    开发之前你要做的是

    1、下载IDEA,并安装好,并注册。度娘帮你搞定

    2、下载Maven对应的版本放到本地目录,然后IDEA配置 File-> Settings –> Build,Execution –> Maven ,修改 User settings file 里面为自己的maven配置文件。初期可以选择默认,我是由于用到了自己的私服所以有修改的必要性,有需要看私服的戳我之前的 Nexus3.0搭建私服上传JAR包

    开发步骤

    1、新建项目 Create New Project,选择 Spring Initializr –> 选择SDK 这里选择在你电脑上安装的JDK,如果没有显示则选择下图的2来添加自己的JDK目录,点击 Next 。

    image


    2、主要是填写建立项目的相关资料,根据自己的实际需求来填,点击Next 。

    image

    3、选择Web- > Spring Web Starter, 这是通过SpringBoot建立WEB项目的模式。

    image

    4、Next之后输入项目名称,这个项目名称就是最终显示在你左侧导航里面的项目名。这里保持不动。直接点击 Finish 。

    image

    查看下 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/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.1.7.RELEASE</version>
            <relativePath/> <!-- lookup parent from repository -->
        </parent>
        <groupId>com.mm</groupId>
        <artifactId>work</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <name>work</name>
        <description>First Project for Spring Boot</description>
    
        <properties>
            <java.version>1.8</java.version>
        </properties>
    
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
    
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
            </dependency>
        </dependencies>
    
        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
            </plugins>
        </build>
    
    </project>
    


    5、项目建立完成后,在com.mm.work包下新建 controller 包,新建一个类 HelloWorld如下:

    package com.mm.work.controller;
    
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    @RestController
    public class HelloWorld {
        @RequestMapping("/")
        public String test(){
            return "Hello World!";
        }
    }
    


    6、直接运行项目。

    image

    有没有发现一些情况?web项目我的中间件没有咋启动了,web.xml没配置,Spring 没配置 ,全部都不需要配置了。

    看启动日志能看到一些情况:

     /\ / ___'_ __ _ _(_)_ __  __ _    
    ( ( )\___ | '_ | '_| | '_ / _` |    
     \/  ___)| |_)| | | | | || (_| |  ) ) ) )
      '  |____| .__|_| |_|_| |_\__, | / / / /
     =========|_|==============|___/=/_/_/_/
     :: Spring Boot ::        (v2.1.7.RELEASE)
    
    2019-08-08 11:14:04.343  INFO 10172 --- [           main] com.mm.work.WorkApplication              : Starting WorkApplication on Locus with PID 10172 (E:Workspaceswork	argetclasses started by Locus in E:Workspaceswork)
    2019-08-08 11:14:04.347  INFO 10172 --- [           main] com.mm.work.WorkApplication              : No active profile set, falling back to default profiles: default
    2019-08-08 11:14:05.162  INFO 10172 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8080 (http)
    2019-08-08 11:14:05.178  INFO 10172 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
    2019-08-08 11:14:05.178  INFO 10172 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0.22]
    2019-08-08 11:14:05.267  INFO 10172 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
    2019-08-08 11:14:05.267  INFO 10172 --- [           main] o.s.web.context.ContextLoader            : Root WebApplicationContext: initialization completed in 870 ms
    2019-08-08 11:14:05.400  INFO 10172 --- [           main] o.s.s.concurrent.ThreadPoolTaskExecutor  : Initializing ExecutorService 'applicationTaskExecutor'
    2019-08-08 11:14:05.524  INFO 10172 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8080 (http) with context path ''
    2019-08-08 11:14:05.529  INFO 10172 --- [           main] com.mm.work.WorkApplication              : Started WorkApplication in 1.628 seconds (JVM running for 2.565)
    2019-08-08 11:14:13.708  INFO 10172 --- [nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring DispatcherServlet 'dispatcherServlet'
    2019-08-08 11:14:13.709  INFO 10172 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet        : Initializing Servlet 'dispatcherServlet'
    2019-08-08 11:14:13.714  INFO 10172 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet        : Completed initialization in 5 ms

    系统启动时自动全部给你做了,方便开发人员更需要关注的是业务逻辑而不是各种环境配置。

    打开页面访问:http://localhost:8080/,项目就完成了。

    image

    单元测试

    项目过程中很多自己单独的业务逻辑需要测试,每次通过修改-重启项目-验证-再次修改-再次重启项目验证会严重影响单元测试进度。

    项目的test包下有SpringBoot自动生成的测试类可以用来验证自己的业务逻辑调用。

  • 相关阅读:
    new对象数组时的内存布局
    写程序取自己进程的AEP
    类虚函数表原理实现分析(当我们将虚表地址[n]中的函数替换,那么虚函数的实现就由我们来控制了)
    测试 __try, __finally, __except(被__finally捕获的异常, 还会被上一级的__except捕获。反之不行)
    围观M$的new
    将258.369 double值转为内存表示(科学计数法)
    Broadcast Reveiver作用
    DEBUG模式下, 内存中的变量地址分析
    不包含SDK头文件, 补全API定义
    俄罗斯方块SDK版
  • 原文地址:https://www.cnblogs.com/laramia/p/11320206.html
Copyright © 2011-2022 走看看