环境安装

安装jdk

推荐安装jkd1.8+,我使用的是mac,假设已经安装好homebrew,则jdk的安装指令是:

brew install java

在 ~/zshrc ,添加两行
export JAVA_HOME=你的jdkPath
export PATH=$PATH:$JAVA_HOME; 然后保存;
输入 echo ${JAVA_HOME}
回车,显示你的jdkPath,则jdk的路径环境变量配置成功;
然后在任意目录下输入 java -version 回车
能够回显出jdk的信息,则表示jdk安装成功;

安装IDE

推荐安装最智能的ide, idea ,用的都说好,谁用谁知道。

安装maven

推荐安装maven3以上;
下载之后,解压到硬盘上,把路径配置到path中;
我使用的mac电脑,步骤如下; wget maven下载地址 tar包;
tar -xvf maven包 -d 你的解压路径
cd 你的maven解压路径 export M2_HOME=你的maven解压路径/bin
export PATH=$PATH:$M2_HOME;
然后保存。
在任意路径输入 mvn -v 回车
能够回显maven信息,标识maven安装成功;

安装git

使用mac电脑,直接使用 命令安装git客户端;

brew install git 

安装成功之后,输入 git --version 回车
如果可以回显git的版本号,则标识安装成功; 生成自己的ssh公钥私钥对; ssh-keygen -b 4096 余下步骤都直接回车; 可以在 ~/.ssh中生成rsa公钥私钥对; 在github,或者 oschina上注册一个账号,登录进去,把生成的公钥配置进去; 即可免密码,拉取和提交代码到远程的git仓库;

安装docker

	todo

创建项目

推荐使用idea的 Spring Initializr方法来创建springboot项目;

选择类型:
配置内容 建议选择 说明
Type maven maven还是主流
java version 1.8 jdk8是主流
packaging jar 方便运维
springboot版本 2.1.7.realease 最新的稳定版本
依赖 web 后端主要是接口,接口主要是web项目
项目名称 com.carterspring.demo-helloworld 第一个项目
按照表格中的配置要点,最后完成,即完成了一个可以直接运行的项目;

使用springboot

使用maven管理依赖

默认创建的项目采用了springboot的父pom,即:
<parent>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
</dependency>
</parent>

工程会自动引入对应的二级依赖;

spring-boot-starter-web的核心依赖

模块 说明
autoconfigure 自动配置
logging 日志配置,默认使用的logback框架,可以直接看依赖
slf4j 日志门面
jackson json库
tomcat 内置的tomcat web容器

hello world

代码如下:

说明:

关键点 说明
@SpringBootApplication 标识是一个springboot应用,是程序的入口
@RestController 标识本类是一个控制器

运行和发布

idea下调试运行

idea下的configuration,已经有一个主类的配置,有很多可以定制的东西;

来个图先:

evernotecid://B4F8A571-9491-40EA-8316-292E2C3A57B2/appyinxiangcom/562396/ENResource/p1405

可以配置主类;

是否打印debug信息;

是否隐藏banner;

选择运行的 profile ;

输入参数等;

运行起来可以通过浏览器进行验证,这个大家都懂,略过;

应用打包

主要使用到了一个maven插件,spring-boot-maven-plugin ; 增加了一个打包原语: jar

使用maven指令打包:

在源码根路径下,输入指令:

mvn package ;

即可在源码路径下生成target目录,里面有

然后运行:

java -jar xxx.jar

推荐使用jar的方式进行部署,这也是它的优点所在。

使用传统的war包发布,见我的另外一篇文章。 todo

docker下发布

todo

springboot的配置

推荐采用yml的方式进行配置管理

application.yml

采用了结构化的方式,支持嵌套;

也可以使用springboot预定义的一些配置参数;

小结

主要介绍springboot的开发环境的搭建,工具的安装;

然后使用环境开发了一个简单的helloworld程序;

最后讲了一下spring的开发调试方法以及部署的方式。

当下微服务流行,使用docker+k8s的方式发布应用到云上是必备技能,这块也有就简单实例。

代码路径:

github.com:carterbrother/springbootpractice.git/hello-world

欢迎一起讨论和学习;

原创不易,转载请注明出处。

springboot实践1的更多相关文章

  1. SpringBoot实践 - SpringBoot+mysql

    关于springBoot是个神马东西以及优缺点,请自行搜索了解. LZ看到很多关于SpringBoot的Demo,单看一篇总是没法整合SpringBoot与Mysql.没法子,还是自己操刀来一发为妙. ...

  2. SpringBoot实践 - SpringBoot+MySql+Redis

    大家都知道redis的强大之处,在目前应用上也是大显神威. 先说说他的优点: 1 读写性能优异 2 支持数据持久化,支持AOF日志和RDB快照两种持久化方式 3 支持主从复制,主机会自动将数据同步到从 ...

  3. springboot+Jib+Maven+Idea+Docker 实践

    Jib - Containerize your Maven project 2. Jib+Maven+Springboot 实践代码例子 2.1在maven项目中的pom.xml文件中配置Jib插件 ...

  4. springboot之activemq安装与实践

    环境:腾讯云centos7 注意:activemq安装插件,可能会报错.本人是主机名的问题,所以修改了主机名. vim /etc/hosts vim /etc/hostname 修改这两个文件,并重启 ...

  5. 全栈开发——动手打造属于自己的直播间(Vue+SpringBoot+Nginx)

    前言 大学的学习时光临近尾声,感叹时光匆匆,三年一晃而过.同学们都忙着找工作,我也在这里抛一份简历吧,欢迎各位老板和猎手诚邀.我们进入正题.直播行业是当前火热的行业,谁都想从中分得一杯羹,直播养活了一 ...

  6. 14 微服务电商【黑马乐优商城】:day01-springboot(理论篇)

    本项目的笔记和资料的Download,请点击这一句话自行获取. day01-springboot(理论篇) :day01-springboot(实践篇) :day01-springboot(Thyme ...

  7. 30分钟带你了解Springboot与Mybatis整合最佳实践

    前言:Springboot怎么使用想必也无需我多言,Mybitas作为实用性极强的ORM框架也深受广大开发人员喜爱,有关如何整合它们的文章在网络上随处可见.但是今天我会从实战的角度出发,谈谈我对二者结 ...

  8. 2017-09-26 发布 SpringBoot多模块项目实践(Multi-Module)

    https://segmentfault.com/a/1190000011367492?utm_source=tag-newest 2017-09-26 发布 SpringBoot多模块项目实践(Mu ...

  9. springboot+logback日志输出企业实践(下)

    目录 1.引言 2. 输出 logback 状态数据 3. logback 异步输出日志 3.1 异步输出配置 3.2 异步输出原理 4. springboot 多环境下 logback 配置 5. ...

随机推荐

  1. 阿里云ECS服务器部署HADOOP集群(六):Flume 安装

    本篇将在阿里云ECS服务器部署HADOOP集群(一):Hadoop完全分布式集群环境搭建的基础上搭建. 1 环境介绍 一台阿里云ECS服务器:master 操作系统:CentOS 7.3 Hadoop ...

  2. Data Guard Physical Standby - RAC Primary to RAC Standby 使用第二个网络 (Doc ID 1349977.1)

    Data Guard Physical Standby - RAC Primary to RAC Standby using a second network (Doc ID 1349977.1) A ...

  3. python(二) jupyter 快捷键

    jupyter notebook 中的快捷键介绍 当你熟练使用notebooks的基本功能后,掌握他的快捷键是十分必要的,这样可以大大提高你的工作效率.下面是一些比较常用的快捷键: 编辑模式:点击单元 ...

  4. 解决无法修改日志时间的问题(Local time zone must be set--see zic manual page 2019 )

    故障现象 系统日志时间晚了整整8个小时,比如现在是中午12点,日志时间为凌晨4点 date命令报错(Local time zone must be set--see zic manual page) ...

  5. dnf & yum

    CentOS8 配置软件源 在 CentOS8 中.使用了基于DNF技术(YUM v4)的 YUM 工具. YUM v4 与之前在 CentOS7 上使用的 YUM v3 相比具有以下优点: 提高性能 ...

  6. R-5 相关分析-卡方分析

    本节内容: 1:相关分析 2:卡方分析 一.相关分析 相关系数: 皮尔逊相关系数:一般用来计算两个连续型变量的相关系数. 肯德尔相关系数:一个连续一个分类(最好是定序变量) 斯皮尔曼相关系数:2个变量 ...

  7. verilog常见错误列表

    Error/Warning 来源:https://hdlbits.01xz.net/wiki/ 题目: 1.Quartus Warning 10235: Warning (): Verilog HDL ...

  8. vue--过滤与动画

    什么是过渡和动画 元素在显示和隐藏时,实现过渡或者动画的效果,常用的过滤和动画都是使用CSS来实现的. 在CSS中操作transition(过渡)或 animation(动画)达到不同效果 为目标元素 ...

  9. IT兄弟连 HTML5教程 HTML5表单 小结及习题

    小结 HTML表单提交的方法有get方法和post方法,get方法的作用是从指定的资源请求数据,post方法的作用是向指定的资源提交要被处理的数据.HTML表单一直都是Web的核心技术之一,有了它我们 ...

  10. mkdir函数 (创建文件夹函数)

    mkdir函数 #include <stdio.h> int main(){ mkdir("C:\\Users\\admin\\desktop\\test"); ; }