springboot 精简搭建过程

新建一个maven项目,并修改其pom文件

<?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">
    <groupId>com.cjustsinging</groupId>
    <artifactId>c1-base</artifactId>
    <version>1.0-SNAPSHOT</version>

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

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>

</project>


重点在于spring-boot-starter-web这个依赖,这个starter把web所需的依赖全部都打包好了。
继承parent好处在于,其下的许多依赖都已经配置版本号,无需再手动配置。也可以不继承,不过那样的话,所有的dependency都要指定一下version,稍微要麻烦那么一点点,建议还是继承好一些。

新建启动类Application

package com.cjustsinging;

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

@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class);
    }
}

重点在于使用@SpringBootApplication注解,开发过程中启动的时候,直接启动该启动类的main函数即可。如果是打成了jar包,通过java -jar 方式启动的时候,也是会启动该类的main的函数。
至此,一个最简单的springboot的项目就搭好了。
此时,直接run启动类的main函数,就能看到启动成功了,最后几行如下:

2018-11-21 17:16:49.811  INFO 66938 --- [           main] o.s.j.e.a.AnnotationMBeanExporter        : Registering beans for JMX exposure on startup
2018-11-21 17:16:50.134  INFO 66938 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8080 (http) with context path ''
2018-11-21 17:16:50.147  INFO 66938 --- [           main] com.cjustsinging.Application             : Started Application in 8.759 seconds (JVM running for 12.549)

拦截请求

项目起了,但是空空如也也没什么用,接下来就弄个controller来拦截请求

package com.cjustsinging.controller;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/")
public class TxController {
    private Log log = LogFactory.getLog(TxController.class);

    @RequestMapping("test")
    public Object test() {
        log.info("test");
        return "Hello";
    }
}


  • @RestController注解的作用在于标识该类是一个基于restful的controller。也可以用@Controller这个注解的,不过这个就还需要做一些额外的操作,使用 @RestController会更爽一些。
  • @RequestMapping注解的作用在于指定拦截适配的规则,@RequestMapping("/")这样就是全拦截了,@RequestMapping("test")这样就是拦截test字符串,这个注解可以作用在类上,也可以作用在方法上,最后的结果就是类上的+方法上的才是最终拦截规则。像上面的类来说,/test这个请求就会匹配到test方法上。
    新增controller类之后,重启服务,在浏览器上请求一下localhost:8080/test,请求就会进入到test这个方法。这个简单的方法的效果比较简单,页面上就会打印一个Hello,应用日志会打印一行test。
    入口弄好了,剩下想干嘛就各随所好了,手动奸笑。

访问静态资源

maven项目的资源文件都是放在resources目录下,而springboot的静态资源默认访问目录就是resources目录下的static目录,即resources/static目录。
这个目录下的静态资源可以直接访问,在static目录下放置一个index.html,直接请求localhost:8080/index.html就可以访问到index.html了。

打成可执行jar包

springboot默认情况下,已经内嵌了一个可运行的tomcat,所以一般建议直接打成一个可执行的jar,然后通过java -jar命令的形式就可以跑,会使用内嵌的tomcat直接起一个服务。
默认情况下,打包方式就是配置的jar,不过打包还需要配合springboot的maven打包工具来使用,稍微修改了一下pom文件,

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

这样修改之后,通过mvn clean package出来的jar包就可以执行运行了。

后话

springboot真的很方便,简简单单的几步就完事了。
妈妈再也不用担心我的spring了…
好吧,其实这个只是最简单的几步打通了,真正干事的时候还需进一步深入,后续再接着聊。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,045评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,114评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 147,120评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,902评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,828评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,132评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,590评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,258评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,408评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,335评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,385评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,068评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,660评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,747评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,967评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,406评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,970评论 2 341

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,566评论 18 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,714评论 6 342
  • Spring Web MVC Spring Web MVC 是包含在 Spring 框架中的 Web 框架,建立于...
    Hsinwong阅读 22,275评论 1 92
  • 今天,我去一年一班的时候,我在那块看到二班大哥哥在做彩灯手工,中间的小球球可以变色,就有一个大哥哥的球没亮,其他的...
    曹喆120423阅读 133评论 0 0