环境安装

安装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

欢迎一起讨论和学习;

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

转载于:https://www.cnblogs.com/snidget/p/11398235.html

springboot实践1相关推荐

  1. Springboot实践心得

    Springboot实践心得 刚入门Springboot,跟着B站小匠视频学习,基本上照着敲,但是实践过程中可能是因为版本的问题,在调用Request的时候出现了以下问题. 附带B站小匠视频原版地址: ...

  2. SpringBoot实践(三十二):5分钟搭建springboot单体应用开发框架

    熟悉语言和开发工具上基础快速使用框架构建应用是个机械工作,5分钟完成开发准备工作,没有冗余动作. 目录 准备工作 开发框架搭建 spring初始化 常规依赖 其他依赖 规范化开发 目录结构 依赖适配 ...

  3. SpringBoot实践:更换启动Logo字样

    2019独角兽企业重金招聘Python工程师标准>>> 第一步: 登录SpringBoot的Logo制作网站:http://patorjk.com/software/taag/#p= ...

  4. SpringBoot实践 - SpringBoot+MySql+Redis

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

  5. SpringBoot - 实践阿里巴巴【Manager 层_通用业务处理层】

    文章目录 规范 对比传统MVC 小栗子 V1.0 传统写法 V2.0 引入Manager层 源码 规范 对比传统MVC 说几个弊端 Service层代码臃肿 Service层易出现大事务,事务嵌套,易 ...

  6. SpringBoot实践总结

    两个人一起翘课啊 真是青春啊 -----<虞美人盛开的山坡> 1.持久层提示未绑定参数异常 org.apache.ibatis.binding.BindingException: Para ...

  7. SpringBoot实践(十七):与vue-element-admin登录集成

    前面博客有vue-element-admin的登录集成:登录集成,本次写个简易版,只需要前端需要的user/login.user/logout.user/info这3个接口,login实现token生 ...

  8. SpringBoot实践(十五):登录的token操作

    前后端的REST接口交互需要维持token信息作为鉴权依据,除了首次登录/login接口拿到用户信息外,其他所有接口都需要过interceptor拦截器进行拦截鉴权,而后进行数据交互,用户信息又对应一 ...

  9. SpringBoot实践(二十三):MybatisPlus代码生成器使用

    目录 增加依赖 代码生成器配置类 使用查询构造器 controller 一般在业务逻辑代码编写前的最重要步骤是进行关系模型的构建,也就是数据库表的设计,完成表设计后建立与Entity的对应关系.视图层 ...

最新文章

  1. php模块介绍,Python模块介绍
  2. 【安全漏洞】Resin解析漏洞分析
  3. angular2、ng2 http get post 传参
  4. 香港虚拟主机怎么转服务器,香港虚拟主机好慢怎么办
  5. 关于loader asyncTaskLoader AsyncTask的理解
  6. 有关 MyEclipse-export runnable jar file选项 launch configuration里面没有可以选择的东西的解决方法...
  7. leetcode144. 二叉树的前序遍历(迭代)
  8. java连接cdh集群_有一台电脑需要通过beeline的方式连接到CDHclouderahadoop集群,提示报错。...
  9. Mini C# Set class
  10. 海量数据挖掘MMDS week5: 计算广告Computational Advertising
  11. android屏幕点击录制脚本,Android录制屏幕脚本
  12. sikuli和Robotframework集成若干问题(一):TypeError: exists(): 2nd arg can't be coerced to double...
  13. Navicat连接SqlServer 提示远程主机关闭一个现有连接
  14. Iphone6/6s刷机常见问题
  15. [渝粤教育] 江西理工大学 机械之美——迷人的工程机械(双语) 参考 资料
  16. maven 项目中引入第三方jar包的方法
  17. 基于Html+Css+javascript的网页制作(旅游主题)
  18. 手把手教大家在自己的Windows电脑上搭建一个视频电话系统(基于开源项目FreeSwitch+Linphone)
  19. 大家一起学习用VBA查询数据
  20. 甲骨文华育兴业|【大数据调查】80%的程序员年薪都在10万以上,三分之一的人年薪20万以上

热门文章

  1. mysql查询不确定的信息_mysql 07.18
  2. matlab resample上采样,resample matlab实现
  3. java底层机制_Java同步机制的底层实现
  4. 百分比单位始终根据父元素相应值来计算_CSS Viewport 单位,很多人还不知道使用它来快速布局!...
  5. 【WebRTC---入门篇】(六)JavaScript基础
  6. C语言中#if,#if defined ,#ifdef,extern的用法描述
  7. java转换汇编,请问如何把JAVA程序转为汇编?
  8. 如何用illustrator做技术手册_做期货用什么技术指标分析?
  9. 暑期社会实践服务器维护,寒假网络维护社会实践报告
  10. vue php企业站案例,vue 开发企业微信整合案例分析