SpringBoot开发实用篇1

这篇具有很好参考价值的文章主要介绍了SpringBoot开发实用篇1。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、热部署

1.手工启动热部署

经过测试当前是没有启动热部署的:
SpringBoot开发实用篇1
SpringBoot开发实用篇1
再将sout的信息多复制几份,刷新功能,发现控制台还是只打印一行信息。说明当前热部署是没有生效的。
手动开启热部署:
在pom.xml文件中加入开发者工具配置热部署:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
</dependency>

运行程序后,修改代码发现热部署没有生效。
需要配合项目构建工具共同使用:
SpringBoot开发实用篇1
修改代码后,点击Build Project,热部署就成功了(激活热部署)。
关于热部署:
重启(Restart):自定义开发代码,包含类、页面、配置文件等,加载位置restart类加载器;
重载(ReLoad):jar包,加载位置base类加载器。
热部署是不需要将jar包再加载一遍的,热部署仅仅是restart过程,而不包括relload过程。(热部署仅仅加载当前开发者自定义开发的资源,不加载jar资源)
程序第一次启动的时候既有restart,也有reload过程。

2.自动启动热部署

设置自动构建项目:
SpringBoot开发实用篇1
SpringBoot开发实用篇1
IDEA失去焦点5秒后,自动热部署。

3.热部署配置范围

页面不参与热部署,页面更改后,一刷新,就显示出来了。
配置文件参与热部署。
自定义重启排除项:下面设置的文件不参与热部署

spring:
  datasource:
    druid:
      driver-class-name: com.mysql.cj.jdbc.Driver
      url: jdbc:mysql://localhost:3306/ssm_db?serverTimezone=UTC&useSSL=false
      username: root
      password: "****"
  devtools:
    restart:
      #设置不参与热部署的文件或文件夹
      exclude: static/**,public/**,config/application.yml

4.关闭热部署

设置高优先级属性(Java系统属性)禁用热部署:为了覆盖所有配置文件。
在这个配置文件中设置是不行的,可能有更高优先级的配置文件开启了热部署。
SpringBoot开发实用篇1
设置在引导类中:
SpringBoot开发实用篇1

二、配置高级(围绕配置中数据的读取)

1.@ConfigurationProperties可以为第三方的bean绑定属性

@ConfigurationProperties属性可以将配置文件的内容加载到bean容器中。

加载自定义的属性到bean中

配置文件中:
SpringBoot开发实用篇1
这个类加载配置文件中的内容,并将这个类交给bean来管理
SpringBoot开发实用篇1
测试一下,bean中有配置文件的内容:
SpringBoot开发实用篇1

加载第三方依赖的属性到bean中

使用Durid数据源连接池进行测试:
SpringBoot开发实用篇1
使用@ConfigurationProperties属性为第三方bean绑定属性:
把datasource改成驼峰命名法,就会报错,为什么?(宽松绑定/松散绑定)
SpringBoot开发实用篇1
SpringBoot开发实用篇1

@ConfigurationProperties不仅可以为自己开发的组件做bean的属性绑定,还可以为第三方的bean绑定属性,格式相同。
@EnableConfigurationProperties和@ConfigurationProperties的区别:
Enable可以看作是一个开关,开启配置属性的功能,向对应的类里做属性注入,要设定目标是谁,@EnableConfigurationProperties注解可以将使用@ConfigurationProperties注解对应的类加入Spring容器,使用所以不用写@Component

SpringBoot开发实用篇1
SpringBoot开发实用篇1

2.宽松绑定/松散绑定

@ConfigurationProperties绑定属性支持属性名宽容绑定
在配置文件中任意写,注解都能认出来

ipAddress: 192.168.1.1
ip_address: 192.168.1.1
ip-address: 192.168.1.1
IP_ADDRESS: 192.168.1.4

@Value注解不能用松散绑定,在配置文件中写什么,注解里就应该写什么:
SpringBoot开发实用篇1
@ConfigurationProperties注解的前缀有格式,写成全小写或烤肉串命名。

@ConfigurationProperties(prefix = "datasource")

3.常用计量单位绑定

SpringBoot支持JDK8提供的时间与空间计量单位
SpringBoot开发实用篇1
SpringBoot开发实用篇1

4.数据校验 开启bean数据校验

1.添加JSR303规范坐标与Hibernate校验框架对应坐标:
SpringBoot开发实用篇1
2.开启Bean校验功能
3.使用具体校验规则规范数据校验格式
SpringBoot开发实用篇1

三、与测试有关

基于基础篇测试之上的补充:web环境、表现层的测试、数据层的测试。

1.加载测试属性专用属性

应用场景:测试环境中使用临时的属性。
1.使用properties属性可以为当前测试用例添加临时的属性配置
配置文件中有属性:
SpringBoot开发实用篇1
测试文件中通过properties设置属性:临时配置有效。
SpringBoot开发实用篇1
SpringBoot开发实用篇1
2.使用args属性为当前测试用例添加临时的命令行参数
SpringBoot开发实用篇1
3.同时使用 properties级别高

SpringBoot开发实用篇1

2.加载测试专用配置

如何在测试环境中临时加第三方bean?
例如Mybatis-plus用的分页的拦截器,配置了一个第三方bean加入到容器中,本次测试环境中加入一个临时的bean,辅助测试。这本bean只服务于本次的测试过程,不服务于其他的,不定义到源码级别。

使用@Import注解加载当前测试类专用的配置
SpringBoot开发实用篇1
SpringBoot开发实用篇1

3.Web环境模拟测试

如何在测试用例测表现层?需要启动web环境的模拟
可以选用的参数有:DEFINED_PORT,RANDOM_PORT,NONE
SpringBoot开发实用篇1
发送虚拟请求:虚拟请求测试
SpringBoot开发实用篇1
匹配响应体:进行状态的匹配
先去设定一个预计值,再添加预计值到本次调用结果中进行匹配,成功过,失败给出信息。
SpringBoot开发实用篇1
匹配响应体:执行内容的匹配
匹配字符串:
SpringBoot开发实用篇1
匹配json
SpringBoot开发实用篇1
匹配响应头:匹配是不是json
SpringBoot开发实用篇1
在实际测试中,可以并列使用,预定义一个,匹配一个。

/**
     * 在实际开发中应该怎么写
     * @param mvc
     * @throws Exception
     */
    @Test
    void testGetById(@Autowired MockMvc mvc) throws Exception {
        MockHttpServletRequestBuilder builder= MockMvcRequestBuilders.get("/books");
        ResultActions action = mvc.perform(builder);

        StatusResultMatchers status = MockMvcResultMatchers.status();
        ResultMatcher ok = status.isOk();
        action.andExpect(ok);

        ContentResultMatchers content = MockMvcResultMatchers.content();
        ResultMatcher result = content.json("{\"id\":1,\"name\":\"springboot\",\"type\":\"springboot\",\"description\":\"springboot\"}");
        action.andExpect(result);

        HeaderResultMatchers header = MockMvcResultMatchers.header();
        ResultMatcher contentType = header.string("Content-Type", "application/json");
        action.andExpect(contentType);

    }

4.数据层测试回滚

为测试用例添加事务,SpringBoot会对测试用例对应的事务提交操作进行回滚;
如果想在测试用例中提交事务,可以通过@Rellback注解设置。
true进行回滚,false不进行回滚。
SpringBoot开发实用篇1

5.测试用例数据设定

测试用例中的数据不能写死,应该用随机值。
测试用例数据通常采用随机值进行测试,使用SpringBoot提供的随机数为其赋值。
SpringBoot开发实用篇1
SpringBoot开发实用篇1
SpringBoot开发实用篇1文章来源地址https://www.toymoban.com/news/detail-456444.html

到了这里,关于SpringBoot开发实用篇1的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SpringBoot【开发实用篇】---- 整合第三方技术(缓存)

    企业级应用主要作用是信息处理,当需要读取数据时,由于受限于数据库的访问效率,导致整体系统性能偏低。 应用程序直接与数据库打交道,访问效率低 为了改善上述现象,开发者通常会在应用程序与数据库之间建立一种临时的数据存储机制,该区域中的数据在内存中保

    2024年02月05日
    浏览(55)
  • 【SpringBoot】springboot启动热部署

    个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ 在SpringBoot工程的pom.xml配置文件中,添加以下依赖 IDEA中激活热部署 快捷键: Ctrl + F9 图形化界面 Build Proje

    2024年02月02日
    浏览(31)
  • SpringBoot实用开发(五)-- RedisTemplate处理String类型的数据

    目录 1. 新增操作 2. 查看操作  3. 批量获取value值 4. 返回value的长度 5.

    2024年02月03日
    浏览(41)
  • SpringBoot项目(jar)部署,启动脚本

    SpringBoot项目(jar)部署,需要先关闭原来启动的项目,再启动新的项目。直接输入命令,费时费力,还容易出错。所以,使用脚本启动。 脚本名: start.sh 此脚本需要放置在jar包的同级目录,才能正确找到jar包。 在脚本所在目录,执行如下命令: 一开始,我在给pid赋值时,

    2024年02月10日
    浏览(43)
  • springboot 项目非docker 部署自动启动

    springboot 项目非docker 部署,需要杀死进程重新启动,并打印对应的日志,以下是一个好用的shell脚本。

    2024年02月06日
    浏览(42)
  • Java项目:118SpringBoot手工艺术品商城

    博主主页:Java旅途 简介:分享计算机知识、学习路线、系统源码及教程 文末获取源码 一、项目介绍 手工艺术品商城是由SpringBoot+Mybatis开发的,是一个简易商城,代码简而整洁,满足商城的需求又没有繁琐的代码,分为前台和后台,前台为用户浏览,后台进行数据管理 后台

    2024年01月23日
    浏览(36)
  • Docker 部署SpringBoot项目,使用外部配置文件启动项目

    一、Springboot项目引入配置文件的方式: 二、docker启动SpringBoot项目饮用外部部署文件

    2024年02月09日
    浏览(45)
  • springboot整合Activiti-常用方法(部署、启动、查询、执行任务)

    ps:activiti7强依赖security,所以还需要整合security,这里就当整合成功了。 真不会整合,就看我下面这个博文 日常记录-SpringBoot整合SpringSecurity(前后分离)+JWT+Redis 启动成功后就看到下面的表 activiti7默认不生成act_hi历史表 如果不生成历史表,还需要禁用插入历史数据【sprin

    2024年01月20日
    浏览(39)
  • 基于Java+SpringBoot+Vue前后端分离手工艺品销售系统设计和实现

    博主介绍 : ✌ 全网粉丝30W+,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行交流合作 ✌ 主要内容: SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、P

    2024年02月03日
    浏览(46)
  • SpringBoot项目 Tomcat部署war程序时启动成功但是访问404异常处理

    Springboot项目 使用IntelliJ IDEA 将maven项目打war包,pom.xml文件中引入了依赖 并通过maven的package打包完后,放入tomcat的web-apps文件下 同时修改了打开conf文件夹下的server.xml文件,启动tomcat时出现了以下问题 SpringApplicationBuilder用于构建 Spring 应用,是SpringApplication和ApplicationContext实例

    2024年02月14日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包