SpringBoot|第一章:第一个SpringBoot 应用

springboot简单介绍

概述

随着动态语言的流行(Ruby、Groovy、Scala、Node.js),Java的开发显得格外的笨重:繁多的配置、低下的开发效率、复杂的部署流程以及第三方技术集成难度大。

在上述环境下,Springboot应运而生。它使用”习惯优于配置”(项目中存在大量的配置,此外还内置一个习惯性的配置,让你无须手动进行配置)的理念让你的项目快速运行起来。使用springboot很容易创建一个独立运行(运行jar,内嵌servlet容器)、准生产级别的基于Spring框架的项目,使用springboot你可以不用或者只需要很少的Spring配置。

Spring Boot 的核心功能

独立运行的Spring项目

Spring Boot可以以jar包的形式独立运行,运行一个Spring Boot项目只需要通过java -jar xx.jar。

内置Servlet容器

Spring Boot可选择内嵌Tomcat、Jetty或者Undertow,这样无须以war包形式部署。

提供starter简化maven配置

Spring提供了一系列的starter pom来简化maven依赖加载,例如:当你使用了spring-boot-starter-web时,会自动加入相关依赖,无需你手动一个一个的添加坐标依赖。

自动配置Spring

Spring Boot会根据在类路径中的jar包、类,为jar包里的类自动配置Bean,这样会极大地减少我们要使用的配置。当然,Spring Boot只是考虑了大多数的开发场景,并不是所有场景,若在实际开发中,我们需要自动配置bean,而Spring Boot没有提供支持,则可以自定义自动配置。

无代码生成和xml配置

Spring Boot的神奇的不是借助于代码生成来实现的,而是通过条件注解来实现的,这是Spring 4.x提供的新特性,Spring 4.x提倡使用java配置和注解配置相结合,而Spring Boot不需要任何xml配置即可实现Sping Boot的所有配置。

优缺点

优点

快速构建项目:省略了繁琐且重复的xml配置,分分钟构建一个web工程;

对主流开发框架的无配置集成:提供了很多Starter 依赖包,开箱即用,无需多余配置;

项目可独立运行:无需外部依赖Servlet容器;

极大地提供了开发、部署效率;

监控简单:提供了actuator包,可以使用它来对你的应用进行监控。

缺点

依赖太多:一个简单的SpringBoot应用都有好几十M只有;

缺少监控集成方案、安全管理方案:只提供基础监控,要实现生产级别的监控,监控方案需要自己动手解决;(后期讲解soringCloud时,会结合pinpoint和skywalking分布式链路工具进行应用监控)

工程搭建

使用的工具为:Spring Tool Suite(3.9.3.RELEASE) SpringBoot:1.5.14.RELEASE

Spring Tool Suite 下载地址:https://spring.io/tools/sts/all

创建项目

利用**Spring Initializr**进行快速创建项目

选择Dashboard–>CREATE SPRING STARTER PROJECT进行创建项目,或者可以选择file–>new–>Spring Starter Project,打开创建面板

第一种方式:

第二种方式:

出现创建面板,填写项目信息

这里url建议直接填写:https://start.spring.io(默认是http方式)

maven相关命名说明

Group:一般为逆向域名格式,如本博客域名为lqdev.cn,则group一般以cn.lqdev开头

Artifact:唯一标识,一般为项目名称。 具体maven相关信息,可自行搜索,这里只简单阐述

选择依赖包和版本

除此下载包时,可能会比较慢,建议替换成阿里云的maven镜像

项目结构

- src

-main

-java

-cn.lqdev.learning.springboot.chapter1

#主函数,启动类,运行它如果运行了 Tomcat、Jetty、Undertow 等容器

-Chapter1Application

-resouces

#存放静态资源 js/css/images 等

- statics

#存放 html 模板文件

- templates

#主要的配置文件,SpringBoot启动时候会自动加载application.properties/bootstrap.properties

- application.properties

#测试文件存放目录

-test

# pom.xml 文件是Maven构建的基础,里面包含了我们所依赖JAR和Plugin的信息

- pom

pom依赖

由于使用了Spring Initializr直接创建项目,相关依赖自动添加好了。


xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

4.0.0

cn.lqdev.learning

springboot-chapter1

0.0.1-SNAPSHOT

jar

chapter-1

Spring Boot | 第一章:第一个Springboot应用


org.springframework.boot

spring-boot-starter-parent

1.5.14.RELEASE

UTF-8

UTF-8

1.8


org.springframework.boot

spring-boot-starter-web


org.springframework.boot

spring-boot-starter-test

test

org.springframework.boot

spring-boot-maven-plugin

主入口

/**

* 启动类

* @author oKong

*

*/

@SpringBootApplication

public class Chapter1Application {

public static void main(String[] args) {

SpringApplication.run(Chapter1Application.class, args);

}

}

编写controller

/**

* 第一个springboot应用

* @author oKong

*

*/

//@RestController = @Controller + @ResponseBody 默认直接返回json

@RestController

public class DemoController {

@RequestMapping(value = "/demo", method = RequestMethod.GET)

public String demo() {

return "hello,SpringBoot!";

}

}

启动应用

直接Chapter1Application,右键 run as –> Spring Boot App 即可。

看见以下提示,说明启动成功:

1

2018-07-11 22:47:38.170 INFO 15396 --- [ main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8080 (http)

简单说明

springboot 默认的端口号为:8080,此时浏览器访问:127.0.0.1:8080/demo即可查看。

需要修改默认端口号时及上下文路径时,只需要在application.properties设置以下属性:

# 端口号

server.port=8888

# 应用上下文路径

server.context-path=/chapter1

访问:http://127.0.0.1:8888/chapter1/demo

自此,一个简单的SpringBoot就开发完成了。比起原来的springmvc时的开发效率,简直是一个质的飞跃,无需再烦扰烦人的xml配置文件了。终于可以快乐的撸代码了~

总结

目前互联网上很多大佬都有springboot系列教程,如有雷同,请多多包涵了。

如果你现在在JAVA这条路上挣扎,也想在IT行业拿高薪,可以参加我们的训练营课程,选择最适合自己的课程学习,技术大牛亲授,7个月后,进入名企拿高薪。我们的课程内容有:Java工程化、高性能及分布式、高性能、深入浅出。高架构。性能调优、Spring,MyBatis,Netty源码分析和大数据等多个知识点。如果你想拿高薪的,想学习的,想就业前景好的,想跟别人竞争能取得优势的,想进阿里面试但担心面试不过的,你都可以来,q群号为:835638062

注:加群要求

1、具有1-5工作经验的,面对目前流行的技术不知从何下手,需要突破技术瓶颈的可以加。

2、在公司待久了,过得很安逸,但跳槽时面试碰壁。需要在短时间内进修、跳槽拿高薪的可以加。

3、如果没有工作经验,但基础非常扎实,对java工作机制,常用设计思想,常用java开发框架掌握熟练的,可以加。

4、觉得自己很牛B,一般需求都能搞定。但是所学的知识点没有系统化,很难在技术领域继续突破的可以加。

5.阿里Java高级大牛直播讲解知识点,分享知识,多年工作经验的梳理和总结,带着大家全面、科学地建立自己的技术体系和技术认知!

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

推荐阅读更多精彩内容