文章目录

  • 前言
  • 第一章 构建简单WEB项目
  • 第二章 SpringBoot接口返回Json
  • 第三章 SpringBoot热部署
  • 第四章 SpringBoot资源文件属性

前言

    笔者近期在慕课网上学习了《Springboot框架开发技术整合》一系列课程,收益颇丰,于是结合笔记写下此文以作总结归纳。如有不当之处,敬请评论指出,笔者虚心接受。

第一章 构建简单WEB项目

    有两种方法可以快速构建SpringBoot项目。
    一. 通过SpringBoot官网的QuickStart构建一个项目。快速构建SpringBoot项目
    二. 使用Spring官方的Spring Tool Suite搭建SpringBoot项目。因为大多数开发者用的是idea和eclipse,这里就不作阐述,有兴趣的可以自行了解。

第二章 SpringBoot接口返回Json

    一. SpringBoot构造并返回一个json对象

@RestController
public class UserController {@RequestMapping("user")public User getUser() {User user = new User();user.setAddress("深圳");user.setAge(18);user.setUserName("老王");return user;}
}


    二. Jackson的基本演绎法
    类注解:

  • @JsonIgnoreProperties({“id”, “created”, “steps”, “copy”, “stepList”})
    指定序列化时忽略这些属性,可用于覆盖父类的属性

    属性注解:

  • @JsonInclude(Include.NON_EMPTY)
    当该属性为空时,不序列化
  • @JsonIgnore
    忽略该属性
  • @JsonFormat(pattern = “yyyy-MM-dd HH:mm:ss”, timezone = “GMT+8”)
    格式化时间戳,其中GMT+8指东八区

第三章 SpringBoot热部署

    只需要要引入一个starter就可以实现热部署。

<!-- 热部署 --><!-- devtools可以实现页面热部署(即页面修改后会立即生效,这个可以直接在application.properties文件中配置spring.thymeleaf.cache=false来实现) --><!-- 实现类文件热部署(类文件修改后不会立即生效),实现对属性文件的热部署。 --><!-- 即devtools会监听classpath下的文件变动,并且会立即重启应用(发生在保存时机),注意:因为其采用的虚拟机机制,该项重启是很快的 --><!-- (1)base classloader (Base类加载器):加载不改变的Class,例如:第三方提供的jar包。 --><!-- (2)restart classloader(Restart类加载器):加载正在开发的Class。 --><!-- 为什么重启很快,因为重启的时候只是加载了在开发的Class,没有重新加载第三方的jar包。 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><!-- optional=true, 依赖不会传递, 该项目依赖devtools;之后依赖boot项目的项目如果想要使用devtools, 需要重新引入 --><optional>true</optional></dependency>

    需要注意的是,IDEA中改完代码需要Build Project(CTRL+F9)后才会进行热部署。
    笔者认为,相对于IDEA的DEBUG模式,这种热部署方式显得有些笨拙。大多数场景是修改业务代码,使用DEBUG模式重构完项目就可以立即生效,而devtools会重启整个项目,用时更多。如果在项目构建初期,需要频繁地修改配置、注解、依赖的时候(DEBUG模式对这些的修改不能即时生效),可以使用devtools进行热部署,缩短项目重启时间。

第四章 SpringBoot资源文件属性

    一. 资源文件中的属性配置与映射到实体类
    1. 引入依赖

        <!--<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId><optional>true</optional></dependency>-->

     SpringBoot默认使用yml中的配置,但有时候要用传统的xml或properties配置,就需要使用spring-boot-configuration-processor。如果已经依赖了spring-boot-starter,可以不用再次引用spring-boot-configuration-processor,因为前者已经包含了后者。
    2. 创建配置文件并配置属性
    resource.properties:

com.mintc.opensourece.name = Mintc
com.mintc.opensourece.address = 深圳

    3. 创建需要映射的实体类

package com.mintc.springBootDemo.entity;import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;@Configuration
@ConfigurationProperties(prefix = "com.mintc.opensourece")
@PropertySource(value = "classpath:resource.properties")
public class Resource {/*** 名称*/private String name;/*** 地址*/private String address;public String getName() {return name;}public void setName(String name) {this.name = name;}public String getAddress() {return address;}public void setAddress(String address) {this.address = address;}
}

     @Configuration用于定义配置类,可替换xml配置文件,被注解的类内部包含有一个或多个被@Bean注解的方法,这些方法将会被AnnotationConfigApplicationContext或AnnotationConfigWebApplicationContext类进行扫描,并用于构建bean定义,初始化Spring容器。
     @ConfigurationProperties(prefix = “com.mintc.opensourece”)用于注入配置文件,其中prefix作用是定义配置文件中属性的前缀,结合第二步能够更好地理解。
     @PropertySource(value = “classpath:resource.properties”)用于指定配置文件的位置,其中classpath指的是resource目录。
    4. 测试Controller

package com.mintc.springBootDemo.Controller;import com.mintc.springBootDemo.entity.Resource;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class UserController {@Autowiredprivate Resource resource;@RequestMapping("getResource")public Resource getResource() {Resource a = new Resource();BeanUtils.copyProperties(resource, a);return a;}
}

    5. 运行效果

    二. SpringBoot资源文件配置Server

############################################################
#
# Server 服务端相关配置
#
############################################################
# 配置api端口号
#server.port=8088
# 配置context-path, 一般来说这个配置在正式发布的时候不配置
#server.servlet.context-path=/IMooc
# 错误页,指定发生错误时,跳转的URL --> BasicErrorController
#server.error.path=/error
# session最大超时时间(分钟),默认为30分钟
server.session-timeout=60
# 该服务绑定IP地址,启动服务器时如本机不是该IP地址则抛出异常启动失败,
# 只有特殊需求的情况下才配置, 具体根据各自的业务来设置
#server.address=192.168.1.2############################################################
# Server - tomcat 相关常用配置
############################################################
# tomcat最大线程数, 默认为200
#server.tomcat.max-threads=250
# tomcat的URI编码
server.tomcat.uri-encoding=UTF-8
# 存放Tomcat的日志、Dump等文件的临时文件夹,默认为系统的tmp文件夹
#(如:C:\Users\Shanhy\AppData\Local\Temp)
#server.tomcat.basedir=H:/springboot-tomcat-tmp
# 打开Tomcat的Access日志,并可以设置日志格式的方法:
#server.tomcat.access-log-enabled=true
#server.tomcat.access-log-pattern=
# accesslog目录,默认在basedir/logs
#server.tomcat.accesslog.directory=
# 日志文件目录
#logging.path=H:/springboot-tomcat-tmp
# 日志文件名称,默认为spring.log
#logging.file=myapp.log

《SpringBoot框架开发技术整合》笔记(一)相关推荐

  1. 【经济学】【综合篇】经济机器是怎样运行的

    原视频:经济机器是怎样运行的 (时长30分钟) Ray Dalio 前言:经济与我们每一个人息息相关,经济社会的一些变革或举措也会直接或间接的反映到我们每个个体身上.了解经济,提高自己的认知,可以帮助 ...

  2. 经济机器是怎样运行的

    经济机器是怎样运行的 经济机器是怎样运行的是桥水基金创始人/<原则>作者-瑞·达里奥,制作的一部30m的视频,如下是他的简单经济学观点原文所述: 经济就像一部简单的机器那样运行,由几个简单 ...

  3. 经济机器是怎么运行的

    近年来,随着全球化和信息技术的蓬勃发展,经济机器已经成为了社会发展必不可少的组成部分.那么,经济机器是如何运转的呢? 首先,我们需要了解经济机器的基本构成要素.经济机器由供求关系.产业链和市场三大要素 ...

  4. 《经济机器是怎样运行的》笔记(三)

    19:20-31:00 19:20 去杠杆化导致债务过重,减轻债务有四种办法: 削减支出:个人.企业.政府削减支出(紧缩) 减少债务:通过债务违约或重组(萧条) 财富再分配:将财富从富人转给穷人 发行 ...

  5. 《经济机器如何运转》笔记

    视频链接:[Ray Dalio]三十分钟看懂经济机器如何运转(比尔盖茨推荐) 影响经济的三要素 生产率的提高 短期债务周期 长期债务周期 理解交易 每次交易中:买方使用 货币/信用 向卖方获取 商品. ...

  6. arm-linux 程序开发入门(QT窗口应用程序、编码、交叉编译、调试)(三机器和双机器搭建方法)(笔记)

    Linux及Arm-Linux程序开发笔记(零基础入门篇) 文章目录 前言 一.Arm-Linux程序开发平台简要介绍 1.1程序开发所需系统及开发语言 1.2系统平台搭建方式 二.Linux开发平台 ...

  7. 《基于小型训练集的深度学习迁移的食用毒蘑菇机器视觉识别系统》论文笔记

    <基于小型训练集的深度学习迁移的食用毒蘑菇机器视觉识别系统>论文笔记 链接:Machine Vision Recognition System of Edible and Poisonou ...

  8. 让VC编译的Release版本程序在其他机器上顺利运行

    让VC编译的Release版本程序在其他机器上顺利运行 Posted on 2011-07-29 15:06 单鱼游弋 阅读(939) 评论(0) 编辑 收藏 链接的时候分静态链接和动态链接两种. 静 ...

  9. Qt5.5-msvc2013-x64编译的程序在其它机器上无法运行,提示0xc000007b错误

    问题描述:在win7系统上,使用Qt5.5+msvc2013-x64编译的程序在其它机器上无法运行,提示0xc000007b错误. 解决过程: 在网上查看解决方案,一度受到误导,看到大量的说需要安装D ...

  10. 基于神经网络的机器阅读理解综述学习笔记

    基于神经网络的机器阅读理解综述学习笔记 一.机器阅读理解的任务定义 1.问题描述 机器阅读理解任务可以形式化成一个有监督的学习问题:给出三元组形式的训练数据(C,Q,A),其中,C 表示段落,Q 表示 ...

最新文章

  1. WPF的图片操作效果(一):RenderTransform
  2. [MVC 4] ActionResult 使用示例
  3. 【深度学习】人群距离监测 DeepSOCIAL 最全汉化论文+源码导读
  4. python字典添加列表_【Python】对字典列表进行去重追加
  5. OpenCV使用Laplacian filtering和距离变换以及Laplacian滤波对重叠对象进行分段的实例(附完整代码)
  6. 文献学习(part80-B)--Do we Need Hundreds of Classifiers to Solve Real World Classification Problems?
  7. vue-cli起服务chrome不能打断点——每周汇总(第一周)
  8. MindSpore:基于本地差分隐私的 Bandit 算法
  9. java jtree 监听_Java JTree.addTreeExpansionListener方法代码示例
  10. 做抖音自媒体,如何搭建自己的账号?
  11. REPEATABLE-READ隔离级别 事务中无法读到其它事务提交了的最新数据
  12. Intellij IDEA导入外部项目javax.servlet.http不存在
  13. Visual Studio2022 运行代码时“发生生成错误,是否继续并运行上次的成功生成”
  14. 【python】用turtle画七巧板
  15. sql Server2005 master损坏处理
  16. Excel的简单编程
  17. php mysql 变量赋值_mysql存储过程中变量的定义赋值操作
  18. 添加Typora主题皮肤
  19. KKT condition --- Karush–Kuhn–Tucker conditions
  20. 什么是用户体验地图?该如何绘制?

热门文章

  1. 1、孟子·梁惠王上 孟子·梁惠王下
  2. 了解JavaScript的Flow、认识Flow及其简单用法
  3. 超微服务器做系统,超微服务器做系统
  4. 光敏电阻型号怎么命名和其主要参数
  5. 函数的调用(传值调用和传址调用)
  6. SKLEARN实例:【泰坦尼克号生存者预测】
  7. vs2017 html插件推荐,收藏!推荐12个超实用的Visual Studio插件
  8. MATLAB实现在不同Es/N0情况下,QPSK、16QAM、64QAM误码率结果仿真图(包含软硬判决)
  9. 「2020年大学生电子设计竞赛分享」电源题,省一等奖!
  10. linux中选取一行的命令,使用cut选择一行中的部分内容--用Enki学Linux系列(13)