Spring Boot 从入门到精通(一)HelloWorld(构建项目,热部署,测试)
文章目录
- 一、使用idea构建项目
- 二、项目结构
- 三、编写第一个程序Hello World
- 四、配置项目的热部署
- 五、单元测试
一、使用idea构建项目
1、选择 File -> New —> Project… 弹出新建项目的框
2、选择 Spring Initializr,Next 也会出现上述类似的配置界面,Idea 帮我们做了集成
3、填写相关内容后,点击 Next 选择依赖的包再点击 Next,最后确定信息无误点击 Finish。
在下面这个界面可以点选某些依赖dependency,这样就不用在pom里面手动写依赖啦
二、项目结构
src/main/java 程序开发以及主程序入口
src/main/resources 配置文件
src/test/java 测试程序
springboot推荐使用如下的目录结构:
com+- example+- myproject+- Application.java|+- domain| +- Customer.java| +- CustomerRepository.java|+- service| +- CustomerService.java|+- controller| +- CustomerController.java|
1、Application.java 建议放到跟目录下面,主要用于做一些框架配置
2、domain 目录主要用于实体(Entity)与数据访问层(Repository)
3、service 层主要是业务类代码
4、controller 负责页面访问控制
三、编写第一个程序Hello World
1、引入web依赖
如果在创建项目的时候,已经点选了web模块dependency,这里就不用处理,打开pom.xml文件,发现有如下代码
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>
web模块主要负责网络连接等当面的功能
pom.xml 文件中默认有两个模块:
spring-boot-starter:
核心模块,包括自动配置支持、日志和 YAML;
spring-boot-starter-test:
测试模块,包括 JUnit、Hamcrest、Mockito。
2、编写controller
在src/java/myproject目录下建立一个文件夹,controller,在controller文件夹下建立一个class文件,内容如下
@RestController
public class HelloWorldController {@RequestMapping("/hello")public String hello() {return "Hello World";}
}
- @RestController 的意思就是 controller 里面的方法都以 json 格式输出,不用再写什么 jackjson 配置的了
- RequestMapping 的意思是网络请求的映射,当url是:localhost:8080/hello的时候,请求会自动定位到hello这个方法
3、启动主程序,打开浏览器访问 http://localhost:8080/hello ,就可以看到效果了
四、配置项目的热部署
1、添加 依赖
在pom.xml文件中dependecies标签下添加
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope><optional>true</optional>
</dependency>
在pom.xml文件的plugins标签添加
<plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><fork>true</fork></configuration>
</plugin>
2、修改idea的设置
因为热部署依靠的是项目的自动编译,但是idea是默认是不能自动编译的,所以还需要修改一下idea的设置
file->settings->compiler
然后勾选 Build project automatically 复选框
使⽤快捷键 Ctrl + Shift + A,在输⼊框中输⼊ Registry,勾选 compile.automake.allow.when.app.running 复
选框
全部配置完成后, IDEA 就⽀持热部署了,但是这个时候,你修改完成之后,还需要使用ctrl+f9进行自动编译。因为类文件修改之后,需要重新编译之后才能进行热启动,上面的配置才会起作用。⼤家可以试着去改动⼀下代码就会发现 Spring Boot 会⾃动重新加载,不需要在重启项目。
五、单元测试
由于springboot是部署在服务端,很多功能测试如果从网页测试很不方便,所以springboot提供了单元测试模块
以往我们在测试 Web 请求的时候,需要⼿动输⼊相关参数在⻚⾯测试查看效果,或者⾃⼰写 post 请求。在Spring Boot 体系中, Spring 给出了⼀个简单的解决⽅案,使⽤ MockMVC 进⾏ Web 测试, MockMVC 内置了很多⼯具类和⽅法,可以模拟 post、 get 请求,并且判断返回的结果是否正确等,也可以利⽤ print() 打印
执⾏结果。
在test/java/下创建helloControllerTest测试类,代码如下
@RunWith(SpringRunner.class)
@SpringBootTest
public class helloTest {private MockMvc mvc;@Beforepublic void setup() throws Exception {mvc = MockMvcBuilders.standaloneSetup(new helloController()).build();}@Testpublic void helloControllerTest() throws Exception {mvc.perform(MockMvcRequestBuilders.post("/xsj?name=xsj").accept(MediaType.APPLICATION_JSON_UTF8)).andDo(print());}
}
@Before 注解的⽅法表示在测试启动的时候优先执⾏,⼀般⽤作资源初始化。
.accept(MediaType.APPLICATION_JSON_UTF8)) 这句是设置 JSON 返回编码,避免出现中⽂乱码的问题
运行结果如下:
MockHttpServletResponse:Status = 200Error message = nullHeaders = [Content-Type:"application/json;charset=UTF-8", Content-Length:"24"]Content type = application/json;charset=UTF-8Body = this is myself 1234!xsjForwarded URL = nullRedirected URL = nullCookies = []
Spring Boot 从入门到精通(一)HelloWorld(构建项目,热部署,测试)相关推荐
- Spring Boot从入门到精通(超详细)
Spring Boot从入门到精通(超详细) _kayden_ 2020-07-20 15:19:22 9491 正在上传-重新上传取消 收藏 184 分类专栏: springboot 文章标签: ...
- 快速开发架构Spring Boot 从入门到精通 附源码
- Spring Boot学习总结(4)——使用Springloaded进行热部署
我在开发的时候,总是会及时对自己的程序进行测试,总是频繁的重启web server,容器不烦我们都觉得烦了. dependencys目录下增加: <dependency> <grou ...
- @aspect注解类不生效_Spring Boot从入门到精通(三)常用注解含义及用法分析总结...
Spring Boot是目前非常流行的框架,而注解是Spring Boot的核心功能,接下来主要说一说Spring Boot常用注解的含义以及部分注解在项目中的使用方法. @RestControlle ...
- springboot sessionfactory_Spring Boot从入门到精通(五)多数据源配置实现及源码分析...
多数据源配置在项目软件中是比较常见的开发需求,Spring和Spring Boot中对此都有相应的解决方案可供大家参考.在Spring Boot中,如MyBatis.JdbcTemplate以及Jpa ...
- 视频教程-Spring boot快速入门-Java
Spring boot快速入门 十年项目开发经验,主要从事java相关的开发,熟悉各种mvc开发框架. 王振伟 ¥12.00 立即订阅 扫码下载「CSDN程序员学院APP」,1000+技术好课免费看 ...
- spring boot(一)入门
目录 spring boot(一)入门 一.简介 1.微服务的概念 2.什么是spring boot 3.快速入门 4.springboot的快捷部署 spring boot(一)入门 一.简介 1. ...
- Spring Cloud 微服务实战系列-Spring Boot再次入门(一)
导语 看到标题大家都疑惑,为什么叫做再入门呢?在之前的博客中也分享过相关的内容,但为了让Spring Cloud 微服务实战系列更加完整就再次编写一个入门的内容,也是为了这个系列的内容更加的完整, ...
- Spring Boot Mybatis入门示例
Spring Boot Mybatis 入门示例 基于Spring Boot 2.3.4,Junit5 步骤说明 整个工程的最终目录结构如下,添加文件或者新建的目录的参考: └─src├─ma ...
最新文章
- 采购订单建立增加客户数据增强示例
- OpenCV编写视频文件的实例(附完整代码)
- 【计算机组成原理】Chapter1-复习题
- 计算机控制系统b卷,计算机控制系统年期末考试b卷.docx
- 建立一个端口为8189的服务器,它无限期等待直到有客户连接这个端口。若客户在网上发送正确的请求连接了这个端口,则服务器与客户之间就建立了一个可靠的连接。
- 怎样把水货E72升级后英文变中文
- JS 判断是否为IP格式
- 手把手学ROR三——Rails的代码方式
- 度分秒换算题及答案C语言,度分秒的换算题(度分秒计算100题及答案)
- python实验总结与分析_Python实验报告二
- 特殊字符保存到SQL数据库的问题
- 数据分析——常见数据指标汇总
- 数据库查询数据去除重复
- 服务器2012系统登录密码忘记6,Server2012忘记管理员密码的处理方法
- 亚马逊推出FreeTime Android应用程序,开放适合儿童资源
- 给ecmall添加积分购物的功能
- 快速安装到安卓手机软件
- 基于ssl协议和基于openssl工具创建私有CA
- 利用OpenXml生成Word2007文档
- 在命令行中查看apk的签名信息
热门文章
- 【无标题】黑群辉DSM 6.2.3 系统安装图文教程 (2020-12-27更新)
- 世界杯10大影帝你造么?演技派的天下
- SQL 获取下一条数据
- xshell不能通过账户密码连接虚拟机
- Codeforces Round #620 (Div. 2)(D. Shortest and Longest LIS)(O(n log n)的最长上升子序列或者贪心)
- png图片怎么压缩大小又不损失画质?
- 锤子手机便签导入另一个手机云便签中怎么操作?
- matlab 打开xml文件怎么打开方式,导入 XML 文档
- 加密的压缩包文件如何解压
- 南京师范大学计算机考研难不难,南京师范大学考研难吗?