2.SpringBoot快速上手
2.SpringBoot快速上手
SpringBoot介绍
javaEE的开发经常会涉及到3个框架Spring ,SpringMVC,MyBatis.但是这三个框架配置极其繁琐,有大量的xml文件,spring Boot对之前的配置进行极大的简化
- Spring Boot 是由Pivotal团队提供的基于Spring的全新框架,简化Spring应用的初始搭建和开发过程
- Spring Boot 是所有基于Spring开发项目的起点
- Spring Boot就是进最大可能的简化应用开发的门槛,让应用的开发,测试,部署变得更加简单
Spring Boot特点
- 遵循“约定优于配置”的原则,只需要很少的配置或使用默认的配置
例如默认使用8080端口
- 能够使用内嵌的Tomcat,jetty服务器,不需要部署war文件。
因为tomcat上运行的应用必须是war格式,有了Spring Boot只需要打成jar包就行
- 提供定制化的启动器Starters,简化Maven配置,开箱即用。
- 纯java配置,没有代码生成,也不需要XML配置
- 提供了生产级的服务监控方案,如安全监控,应用监控,健康监控
创建
内置tomcat 不用打成war包了
项目结构
java 文件夹一般放Java代码
resources 文件夹放资源,和配置文件
static目录:一般放图片,css,js等关于网站的静态资源
templates: html的一些模板
pom.xml: Maven的核心文件,项目管理,依赖管理
application.properties: Spring boot 的核心配置文件
如果做的是前后端分离的项目resources目录下一般是不放东西的,一般用vue框架完成
在控制器包下创建一个控制类
//声明为控制器类
@RestController
public class HelloController {
// 网址由协议(http://),域名(如www.baidu.com,localhost)
// 接口(:后面可以加接口,默认是80接口)
// 路径(/hello)组成,@GetMapping括号里面指定的是路径
// 由于Tomcat默认是8080端口所以要加上:8080
// http://localhost:8080/hello
@GetMapping("/hello")
public String hello(){
return "hello world";
}
}
可以看到确实是8080端口
开发环境热部署
- 在实际的项目开发调试中会频繁修改后台类文件,导致需要重新编译,重新启动,过程麻烦影响开发效率
- Spring boot提供了spring-boot-devtools组件,使得无需手动重启SpringBoot应用即可重新编译,启动项目,大大缩短编译启动的时间
- devtools会监听classpath下的文件变动,触发Restart类加载器重新加载该类
- 并不是所有的更改都需要重启应用(如静态资源,视图模板),可以通过设置spring.devtools.restart.exclude属性来指定一些文件或目录的修改不用重启目录
<!--开发环境热部署-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
- 修改pom.xml配置文件
可以看到devtools框架已经加载
- 修改 application.properties文件夹
spring.application.name=demo
# 项目热部署
spring.devtools.restart.enabled=true
# 设置重启目录
spring.devtools.restart.additional-paths=src/main/java
# 设置classpath目录下的static文件夹修改不重启
spring.devtools.restart.exclude=static/**
- 修改设置
第三条改到高级设置里了
- 最后可以修改默认端口,在properties文件下
# 可以改成80端口这样就不需要再指明8080端口了,因为80端口是浏览器默认值
server.port=80
2.SpringBoot快速上手的更多相关文章
- SpringBoot快速上手系列01:入门
1.环境准备 1.1.Maven安装配置 Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件. 下载Maven可执行文件 cd /usr/local ...
- 【快学SpringBoot】快速上手好用方便的Spring Cache缓存框架
前言 缓存,在开发中是非常常用的.在高并发系统中,如果没有缓存,纯靠数据库来扛,那么数据库压力会非常大,搞不好还会出现宕机的情况.本篇文章,将会带大家学习Spring Cache缓存框架. 原创声明 ...
- SpringBoot+SpringDataJpa快速上手(基本CRUD)
以及表结构和数据 依赖 <!-- 如果有SpringBoot启动器,就不加--> <parent> <groupId>org.springframework.boo ...
- 简明易懂,将细节隐藏,面向新手树立web开发概念——学完Java基础语法,超快速上手springboot+mybatiJavaWeb开发
简明易懂,将细节隐藏,面向新手树立web开发概念 --学完Java基础语法,超快速上手JavaWeb开发 Web本质(先忽视各种协议) Web应用可以理解为浏览器和服务器之间的交互. 我们可以看一个简 ...
- 快速上手SpringBoot
快速上手SpringBoot SpringBoot是用来简化Spring应用的初始化搭建以及开发过程 三个不需要,这是springboot使用mvc区别于其它框架的特点 tomcatd的端口 下一行是 ...
- SpringBoot快速开发REST服务最佳实践
一.为什么选择SpringBoot Spring Boot是由Pivotal团队提供的全新框架,被很多业内资深人士认为是可能改变游戏规则的新项目.早期我们搭建一个SSH或者Spring Web应用,需 ...
- Spring Boot 揭秘与实战(一) 快速上手
文章目录 1. 简介 1.1. 什么是Spring Boot 1.2. 为什么选择Spring Boot 2. 相关知识 2.1. Spring Boot的spring-boot-starter 2. ...
- 想要快速上手 Spring Boot?看这些教程就足够了!| 码云周刊第 81 期
原文:https://blog.gitee.com/2018/08/19/weekly-81/ 想要快速上手 Spring Boot?看这些教程就足够了!| 码云周刊第 81 期 码云周刊 | 201 ...
- Gradle快速上手——从Maven到Gradle
[本文写作于2018年7月5日] 本文适合于有一定Maven应用基础,想快速上手Gradle的读者. 背景 Maven.Gradle都是著名的依赖管理及自动构建工具.提到依赖管理与自动构建,其重要性在 ...
- SpringBoot学习(七)—— springboot快速整合Redis
目录 Redis缓存 简介 引入redis缓存 代码实战 Redis缓存 @ 简介 redis是一个高性能的key-value数据库 优势 性能强,适合高度的读写操作(读的速度是110000次/s,写 ...
随机推荐
- webstorm上的Element提示插件
https://zhuanlan.zhihu.com/p/34735529 首先说明下,这个插件是用idea开发的,在idea上同样适用.有兴趣的朋友可以直接git下来开发自己的小插件. 插件基于的w ...
- 仅1.0MB,开源压缩软件7-Zip
首发微信公众号:SQL数据库运维 原文链接:https://mp.weixin.qq.com/s?__biz=MzI1NTQyNzg3MQ==&mid=2247485212&idx=1 ...
- 开发环境需要同时安装2个nodejs版本
由于同时有vue2和vue3的项目开发情况,vue2项目的nodejs版本是12,vue3项目在node12版本下运行不了,要求最低14版本,因此要用nvm同时安装和控制2个版本. 安装步骤: 1.卸 ...
- 带有声音/音频的 Mac 远程桌面
一言以蔽之:如果你用远程桌面软件访问mac电脑遇到声音问题,改用Splashtop就好了.Splashtop对于Mac 的远程桌面支持非常棒. 尽管有几种远程桌面工具可提供对 Mac 的远程访问,但许 ...
- C 语言编程 — 高级数据类型 — 结构体与位域
目录 文章目录 目录 前文列表 结构体 定义结构体 初始化结构体变量 访问结构体成员 将结构体作为实参传入函数 指向结构体变量的指针 位域 定义位域 使用位域结构体的成员 前文列表 <程序编译流 ...
- pyqt5 子线程如何操作主线程GUI
一.简介 在使用pyqt5编写gui时遇到两个问题,会导致界面崩溃,今天就围绕这两个问题来简单说明和改进. 1.在主线程中使用while无限循环会导致界面崩溃 2.在子线程中操作主线程gui会导致界面 ...
- go新手常踩的坑
作为一个5年的phper,这两年公司和个人都在顺应技术趋势,新项目慢慢从php转向了go语言,从2021年到现在,笔者手上也先后开发了两个go项目.在学习go语言的过程中也学习并总结了一些相关的东西, ...
- deeplearning4j训练MNIST数据集以及验证
训练模型官方示例 MNIST数据下载地址: http://github.com/myleott/mnist_png/raw/master/mnist_png.tar.gz GitHub示例地址: ht ...
- TypingLearn解决了我在学习英语中的一大痛点
上一次在博客园发贴还是在上一次(2021年),那个时候博客园就遇到了危机(被罚款).彼时在疫情期间,我个人生活也受到了影响,先后去了多个城市,最终在上海找到了 .NET Web开发的岗位,还是比较幸运 ...
- Java JVM——1.JVM与Java体系结构
前言 作为Java工程师的你曾被伤害过吗?你是否也遇到过这些问题? ✘ 运行着的线上系统突然卡死,系统无法访问,甚至直接OOMM! ✘ 想解决线上JVM GC问题,但却无从下手. ✘ 新项目上线,对各 ...