学习springboot
一般而言,写个Javaweb应用搭建环境都可能要几十分钟,下载个tomcat服务器,再加上各种xml配置等等,很烦躁,而且每个web应用的配置还差不多,都是什么web.xml,application.xml等等(注解版就是各种配置类@Configuration),既然每个web应用很多配置都一样,那为什么还要每次都动手写或者copy一份呢?假如有什么框架能够帮我们把常用的东西都配置好,有默认值,然后我们只需要关注一些逻辑的编写,那不就大大简化了编程效率吗?
所以就有了springboot,这里springboot的官方定义就不赘述了,简而言之,就是让你在一分钟就能写出helloword的web应用。
并且用springboot,就不用特别下载toncat,配置环境变量啊什么鬼一系列常规操作,springboot里面自动的有tomcat服务器(后期还可以手动指定服务器),而且springboot写的web应用可以打包成一个jar包(内置了tomcat),这就相当于一处编译,处处运行。在任何装有jdk(或者jre)的电脑都可以运行这个web应用。
假设我的jar包(HelloWorld.jar)在D:\java 你只需要在命令行,切换到该目录,运行java -jar HelloWorld.jar 就ok了,然后在浏览器网址可以测试了。
学前准备
学springbootboot的各位应该是会maven的吧,maven3及以上版本,jdk1.7及以上版本,我用的是idea,用eclipse也行,凭个人爱好。
基本设置
maven仓库:idea(maven)------maven本地仓库------距离你很远的远程仓库
用了maven管理jar包,当项目需要用jar包时,首先是会在你的本地仓库里面找看有没有,有的话就直接用,没有的话就去远程仓库下载到本地库,用本地库的。
我的maven下载位置D:\java\apache-maven-3.5.4
一般maven默认本地库目录(win7)C:\Users\asus\.m2\repository,重点是.m2\repository,前面是我自己的用户名,最好自己设置本地库位置,解放C盘空间,不然每次下载的东西都放在C盘,这是我们不喜欢看到的。
第一步:我把本地库就放在maven目录里面。首先我在maven安装目录 D:\java\apache-maven-3.5.4下新建目录repository

第二步:D:\java\apache-maven-3.5.4\conf下有个settings.xml,打开,修改这几项:本地库位置,远程库位置(就是你要下载jar包的地方,这里用阿里云镜像,听说比较快),还有和maven绑定的jdk版本,这里用的是1.8



到这里,maven本地库位置ok。
--------------------------------------------【下面发现问题,修改一下】--------------------------------------------------
注意注意,下面设置的本地库是一次性的,也就是说每次创建新项目时都要设置一次(后来发现的)
切换到IDEA,file---settings---Build Execution Deployment----BuildTools---Maven,然后如下设置,这就是指定idea和maven版本,xmisettings,本地库的绑定(这里有的人会有问题,本地库绑定没用jar包依旧是下载到C盘,或者等下又跳回了原来的设置,我的解决办法是:前面设置本地库位置settings.xml里面的双斜线;下图设置完之后记得点击右下角apply,ok;多试几次;)
要想一次性解决问题,必须要在这里设置,一定要在这里


到此为止,基本的搭建环境就成功了,一些细节,比如maven哪里下载,环境变量配置,idea和jdk版本的绑定就不说了,很容易。
--------------------------------------------------------------------------------------------------------------------------------------------------
最基本的HelloWorld(先不自动生成springboot模板项目)
1.新建一个基本的maven项目
file---new---project---Maven---next,输入一些基本的组id,模块id。。。一直点就是了,maven项目创建完成了

2.如上图目录,这个类有一个最基本的main方法,想必大家不会陌生了,这就是springboot应用的“门”,走过这个门才能进入springboot的世界(记住,只要是springboot应用的包,都必须要和这个类所在目录同级或者子包下面)

还有一个简单的controller,直接输出hello

3.pom文件的依赖
这个依赖还有一个父依赖spring-boot-dependencies,然后在spring-boot-dependencies里面放了默认的一些其他组件的版本控制,有兴趣的可以ctrl+鼠标左键点进去看看
所以我们看到的所有pom里面的依赖都没有版本控制,只要下图这个依赖的版本控制好,其他组件的版本就确定了。

这两个依赖,第一个是一个web场景下的依赖,会导入所有跟web相关的所有jar包;第二个依赖是一个插件依赖,这个依赖的作用就是可以将当前的springboot应用打包成一个jar包必须的一个依赖。

到此为止,一个基本的helloworld就写出来了,直接启动那个main方法,整个springboot应用就跑起来了,在浏览器下输入localhost:8080/hello,回车就看到了hello了

补充小知识:将springboot打包成jar包
第一步:点击左下角的小正方形,在最右边唤出工具栏,有工具栏的话就不用点击这个了


第二步:点击Maven Projects,选中你的项目

第三步:控制台输出这个表示打包成功。路径也有,右边的target文件下面,将jar包复制到桌面(嘿嘿,放在桐人的头上~)



第四步:打开cmd,切换到桌面目录,java -jar springboot-repeat01-1.0-SNAPSHOT.jar

结果却报错,emmmmmmm。。看错误信息是不支持版本,,懵逼了,于是想到了最牛逼的工具,百度一下,啪啪啪,一分钟之后找到答案了,原来是我的jdk版本的问题,我电脑上的jdk有两个,1.7和1.8,我环境变量配置的是1.7的,但是这个springboot应用是1.8环境的,机智的我赶紧去切换了一下jdk的环境变量


切换jdk环境之后,然后再java -jar springboot-repeat01-1.0-SNAPSHOT.jar,成功


成功之后。浏览器输入url,ok

后记:喝一口毒鸡汤----写代码碰到bug是很正常的事,要善于利用自己身边的工具,个人推荐自己独立解决问题,能不问别人就不问,因为当你自己独立解决问题解决多了,以后再出现什么bug,你一眼就能大概看出问题出在哪里,怎么解决,从哪里入手。
学习springboot的更多相关文章
- 从零开始学习springboot之热部署的配置
各位看官大家好,博主之前因为毕业设计以及毕业旅游耽搁了好长一段时间没有更新博客了,从今天起又会慢慢开始学习啦. 今天主要是来学习springboot热部署的配置. 一. 热部署 我们通常在修改某些文件 ...
- SpringBoot学习------SpringBoot使用Thymleaf模块访问不了静态页面
SpringBoot使用Thymleaf模块访问不了静态页面 最近学习SpringBoot的过程中使用了Thymeleaf模块引擎,页面发送请求后老是无法显示静态页面,所有的步骤都是参考资料来执行,自 ...
- 学习SpringBoot零碎记录——配置应用URL名称
学习SpringBoot配置应用名称,结果发现坑 到网上找 到 https://blog.csdn.net/qq_40087415/article/details/82497668 server: p ...
- 学习SpringBoot,整合全网各种优秀资源,SpringBoot基础,中间件,优质项目,博客资源等,仅供个人学习SpringBoot使用
学习SpringBoot,整合全网各种优秀资源,SpringBoot基础,中间件,优质项目,博客资源等,仅供个人学习SpringBoot使用 一.SpringBoot系列教程 二.SpringBoot ...
- 关于学习springboot和springcloud的很不错的教程
近日,逐步开始学习了springboot和springcloud.本以为很简单,但是随着学习的深入,发现其中有很多地方都需要认真揣摩.凡事都需要循序渐进,有一个好的开端就是成功的一半.于是在浩瀚的网络 ...
- 学习 spring-boot (一)
学习文章来自:http://www.ityouknow.com/spring-boot.html Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初 ...
- 最新学习springboot 配置注解
一.概述 Spring Boot设计目的是用来简化新Spring应用的初始搭建以及开发过程.Spring Boot并不是对Spring功能上的增强,而是提供了一种快速使用Spring的方式. ...
- 记一次学习SpringBoot RequestBodyAdvice ResponseBodyAdvice RestControllerAdvice
今天老板给我了一套代码,然后我就拿过去研究,代码的风格是SSM + Shiro + nginx + SpringBoot的MVC架构风格,springboot,是当下很火的一个框架,配合springc ...
- 学习springboot第一天~
1. springboot是对spring的缺点进行改善和优化,它的约定大于配置,开箱即用,没有代码生成,也不需要xml文件配置,可以修改属性值来满足需求 2. springboot的入门程序 在id ...
- 从零开始学习springboot之springboot搭建
博主刚开始实习不久,还是小白一枚,被公司的各种新奇技术搞得眼花缭乱了好久,主要是用springboot和dubbo构建起来的项目.看完之后才知道springboot真的是java开发者的福音啊 话不多 ...
随机推荐
- 基于Cmake+QT+VS的C++项目构建开发编译简明教程
目录 一.工具下载与安装 1. Qt 2. Visual Studio 2015 3. Cmake 二.C++及Qt项目构建 1. 基于VS构建Qt项目 2. ...
- 计蒜客 踏青 dfs
题目: https://www.jisuanke.com/course/2291/182234 思路: 紫书P163联通块问题. 1.遍历所有块,找到草地,判断合法性,合法其id值加一,最后加出来的i ...
- margin-top的兼容问题
产生的条件:子元素给了margin-top,并且父元素没有浮也没有其他样式,浏览器解析的结果是父元素下去了. 解决方法:1.给子元素或者父元素添加浮动,缺点:如果不需要浮动,添加浮动也页面布局会乱 2 ...
- <算法图解>读书笔记:第3章 递归
第3章 递归 3.1 递归 程序调用自身的编程技巧称为递归( recursion).递归做为一种算法在程序设计语言中广泛应用. 一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一 ...
- VS 2013Ultimate 开发过程中遇到的问题——listbox的隐藏问题,combobox.textchanged的中文问题
最近项目有需求,就是把一个combobox让它可以根据用户输入的汉字就行模糊查询出匹配的下拉框内容,很简单,是吧 但是!!!在开发中真是遇到了不少问题呢. 一.实现流程 1)我的实现思维是这样的,先把 ...
- 关于LP Wizard生成Allegro封装无焊盘的解决方案
最近在学Allegro,安装了软件后看网上说LP Wizard可以一键生成Allegro封装,就想去尝尝鲜.毕竟一直都是手动做封装,没怎么用过向导.但是按照网上教程用LP生成了一个封装,发现打开时没有 ...
- pip install –r ./requirements.txt 报错 改成 pip install -r requirements.txt 成功
Invalid requirement: '–r'Traceback (most recent call last): File "/home/dev/.pyenv/versions/3.6 ...
- Android SDK提供的常用控件Widget “常用控件”“Android原生”
Android提供一个标准的视图工具箱来帮助创建简单的UI界面.通过使用这些控件(必要时,可以对这些控件进行修改). 创建一个简单的.xml文件,从预览窗口可以看到Android SDK提供的原生控件 ...
- 将Redhat,CentOS,Ubuntu虚拟机的IP设为静态IP的方法
一般在主机上创建的虚拟机默认是通过DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)网络协议来动态生成的,这样会导致你安装的虚拟机的IP地址是动态变化 ...
- SSM框架mapper.xml模糊查询语句
SSM框架mapper.xml模糊查询语句 在用SSM框架时,如果想要实现模糊查询,可以在mapper.xml文件中进行数据库语句的书写,方法有很多种,在这里我选择了两种介绍: 方法1: <se ...