环境安装

安装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. Git入门基础教程

    目录 一.Git的安装 1.1 图形化界面 1.2 命令行界面 二.本地仓库的创建与提交 2.1 图形化界面 2.1.1 首先在电脑上有一个空白目录 2.1.2 打开SourceTree 2.1.3 ...

  2. 原生js放大镜效果

    效果: 1.  鼠标放上去会有半透明遮罩.右边会有大图片局部图 2.  鼠标移动时右边的大图片也会局部移动 放大镜的关键原理: 鼠标在小图片上移动时,通过捕捉鼠标在小图片上的位置,定位大图片的相应位置 ...

  3. 网易发起“疾风”智造IoT联盟,深化“互联网+先进制造业”发展

    7月26日,2019网易云创峰会在杭州拉开序幕,本次峰会以“连接•洞察•进化”为主题,汇聚行业领袖.技术大咖及业界代表,探讨技术演进与行业应用趋势,研商生态合作升级.共赢未来的道路.上午的主论坛中,网 ...

  4. 你必须知道的Docker数据卷(Volume)

    本篇已加入<.NET Core on K8S学习实践系列文章索引>,可以点击查看更多容器化技术相关系列文章. 一.将Docker数据挂载到容器 在Docker中,要想实现数据的持久化(所谓 ...

  5. java之封装

    java中通过将成员变量声明为private,再提供公共的public方法:setXxx()和getXxx()实现对该属性的操作,以实现以下目的: 隐藏一个类中不需要对外提供的实现: 使用者只能通过事 ...

  6. 【c&c++】变量初始化

    /* 全局变量会默认初始化为0 空 和 false,局部变量要手动初始化,或者直接scanf输入值进去.如果不初始化,n可能是0也有可能是其他数,大多数情况下会是0,但不初始化是不安全的,所以Dev直 ...

  7. Thinkphp 5.0.15 设计缺陷导致Insert/update-SQL注入 分析

    分析 与上一个漏洞类似,这个也是前端可以传入一个数组变量,如['exp','123','123'],后端根据array[0]来将array[1]和array[2]直接拼接到SQL语句中. 由于TP只是 ...

  8. Centos7 下 PHP 添加缺少的组件 sockets 和 openssl

    环境是 centos7 + nginx 1.14 + php 7.2.18,由于新增邮件发送功能,使用的是 socket 通讯的方式,需要开启 php 的 sockes 和 openssl 扩展 安装 ...

  9. java基础(2):注释、关键字、标识符、数据

    1. 注释.关键字与标识符 大家可以安装一个文本编辑软件notepad++,有利于java代码的查看与编写. 1.1 程序注释 通常我们需要在源代码中添加文字用来对进行代码解释说明,但这些文字并不是J ...

  10. js实现post方式的异步请求

    <%@ page contentType="text/html;charset=UTF-8" language="java" %><html& ...