springboot实践1
环境安装
安装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的更多相关文章
- SpringBoot实践 - SpringBoot+mysql
关于springBoot是个神马东西以及优缺点,请自行搜索了解. LZ看到很多关于SpringBoot的Demo,单看一篇总是没法整合SpringBoot与Mysql.没法子,还是自己操刀来一发为妙. ...
- SpringBoot实践 - SpringBoot+MySql+Redis
大家都知道redis的强大之处,在目前应用上也是大显神威. 先说说他的优点: 1 读写性能优异 2 支持数据持久化,支持AOF日志和RDB快照两种持久化方式 3 支持主从复制,主机会自动将数据同步到从 ...
- springboot+Jib+Maven+Idea+Docker 实践
Jib - Containerize your Maven project 2. Jib+Maven+Springboot 实践代码例子 2.1在maven项目中的pom.xml文件中配置Jib插件 ...
- springboot之activemq安装与实践
环境:腾讯云centos7 注意:activemq安装插件,可能会报错.本人是主机名的问题,所以修改了主机名. vim /etc/hosts vim /etc/hostname 修改这两个文件,并重启 ...
- 全栈开发——动手打造属于自己的直播间(Vue+SpringBoot+Nginx)
前言 大学的学习时光临近尾声,感叹时光匆匆,三年一晃而过.同学们都忙着找工作,我也在这里抛一份简历吧,欢迎各位老板和猎手诚邀.我们进入正题.直播行业是当前火热的行业,谁都想从中分得一杯羹,直播养活了一 ...
- 14 微服务电商【黑马乐优商城】:day01-springboot(理论篇)
本项目的笔记和资料的Download,请点击这一句话自行获取. day01-springboot(理论篇) :day01-springboot(实践篇) :day01-springboot(Thyme ...
- 30分钟带你了解Springboot与Mybatis整合最佳实践
前言:Springboot怎么使用想必也无需我多言,Mybitas作为实用性极强的ORM框架也深受广大开发人员喜爱,有关如何整合它们的文章在网络上随处可见.但是今天我会从实战的角度出发,谈谈我对二者结 ...
- 2017-09-26 发布 SpringBoot多模块项目实践(Multi-Module)
https://segmentfault.com/a/1190000011367492?utm_source=tag-newest 2017-09-26 发布 SpringBoot多模块项目实践(Mu ...
- springboot+logback日志输出企业实践(下)
目录 1.引言 2. 输出 logback 状态数据 3. logback 异步输出日志 3.1 异步输出配置 3.2 异步输出原理 4. springboot 多环境下 logback 配置 5. ...
随机推荐
- Git入门基础教程
目录 一.Git的安装 1.1 图形化界面 1.2 命令行界面 二.本地仓库的创建与提交 2.1 图形化界面 2.1.1 首先在电脑上有一个空白目录 2.1.2 打开SourceTree 2.1.3 ...
- 原生js放大镜效果
效果: 1. 鼠标放上去会有半透明遮罩.右边会有大图片局部图 2. 鼠标移动时右边的大图片也会局部移动 放大镜的关键原理: 鼠标在小图片上移动时,通过捕捉鼠标在小图片上的位置,定位大图片的相应位置 ...
- 网易发起“疾风”智造IoT联盟,深化“互联网+先进制造业”发展
7月26日,2019网易云创峰会在杭州拉开序幕,本次峰会以“连接•洞察•进化”为主题,汇聚行业领袖.技术大咖及业界代表,探讨技术演进与行业应用趋势,研商生态合作升级.共赢未来的道路.上午的主论坛中,网 ...
- 你必须知道的Docker数据卷(Volume)
本篇已加入<.NET Core on K8S学习实践系列文章索引>,可以点击查看更多容器化技术相关系列文章. 一.将Docker数据挂载到容器 在Docker中,要想实现数据的持久化(所谓 ...
- java之封装
java中通过将成员变量声明为private,再提供公共的public方法:setXxx()和getXxx()实现对该属性的操作,以实现以下目的: 隐藏一个类中不需要对外提供的实现: 使用者只能通过事 ...
- 【c&c++】变量初始化
/* 全局变量会默认初始化为0 空 和 false,局部变量要手动初始化,或者直接scanf输入值进去.如果不初始化,n可能是0也有可能是其他数,大多数情况下会是0,但不初始化是不安全的,所以Dev直 ...
- Thinkphp 5.0.15 设计缺陷导致Insert/update-SQL注入 分析
分析 与上一个漏洞类似,这个也是前端可以传入一个数组变量,如['exp','123','123'],后端根据array[0]来将array[1]和array[2]直接拼接到SQL语句中. 由于TP只是 ...
- Centos7 下 PHP 添加缺少的组件 sockets 和 openssl
环境是 centos7 + nginx 1.14 + php 7.2.18,由于新增邮件发送功能,使用的是 socket 通讯的方式,需要开启 php 的 sockes 和 openssl 扩展 安装 ...
- java基础(2):注释、关键字、标识符、数据
1. 注释.关键字与标识符 大家可以安装一个文本编辑软件notepad++,有利于java代码的查看与编写. 1.1 程序注释 通常我们需要在源代码中添加文字用来对进行代码解释说明,但这些文字并不是J ...
- js实现post方式的异步请求
<%@ page contentType="text/html;charset=UTF-8" language="java" %><html& ...