Spring Boot应用总结更新

时间:2023-02-03 19:36:42

正文前先来一波福利推荐:

福利一:

百万年薪架构师视频,该视频可以学到很多东西,是本人花钱买的VIP课程,学习消化了一年,为了支持一下女朋友公众号也方便大家学习,共享给大家。

福利二:

毕业答辩以及工作上各种答辩,平时积累了不少精品PPT,现在共享给大家,大大小小加起来有几千套,总有适合你的一款,很多是网上是下载不到。

获取方式:

微信关注 精品3分钟 ,id为 jingpin3mins,关注后回复   百万年薪架构师 ,精品收藏PPT  获取云盘链接,谢谢大家支持!

Spring Boot应用总结更新

-----------------------正文开始---------------------------

一、SpringBoot的产生背景:

SpringBoot的产生背景伴随着微服务,微服务的相关概念参考上一篇的博客,分布式架构理论;

微服务的宏观概念理解:

将一个大应用拆分成多个小应用,一个小应用是一个小型的服务,可以通过协议进行互通;

每个小应用是一个可独立替换和独立升级的服务;

下面看SpringBoot的优点:

Spring Boot应用总结更新

SpringBoot构建应用构建的分布式简单框架:

Spring Boot应用总结更新

二、Srping Boot启动Web应用

使用的编辑工具: Intellij Idea;

项目管理工具Maven:maven的安装和配置以及原理性总结,请参考下一篇文章;

工程结构:

Spring Boot应用总结更新

项目遇到的问题:

在我们配置controller层的时候,使用@Controller注解的时候,如下:

Spring Boot应用总结更新

使用浏览器进行Request请求的时候,会遇到下面的问题:

Spring Boot应用总结更新

问题出现在:

没有使用模版。即@Controller 用来响应页面,@Controller必须配合模版来使用。spring-boot 支持多种模版引擎包括:
1 FreeMarker
2 Groovy
3 Thymeleaf (Spring 官网使用这个)
4 Velocity
5 JSP (貌似Spring Boot官方不推荐,STS创建的项目会在src/main/resources 下有个templates 目录,这里就是让我们放模版文件的,然后并没有生成诸如 SpringMVC 中的webapp目录)

本文以Thymeleaf为例介绍使用模版,具体步骤如下:

在pom.xml文件中添加如下模块依赖:

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

因此,我们就直接使用@RestController注解来处理http请求来,这样简单的多。

@RestController

Spring4之后新加入的注解,原来返回json需要@ResponseBody和@Controller配合。

即@RestController是@ResponseBody和@Controller的组合注解。

@RestController
public class HelloController { @RequestMapping(value="/hello",method= RequestMethod.GET)
public String sayHello(){
return "hello";
}
}

三、配置文件:

1、application.properties

2、application.yml

YAML的语法:

K:空格v    kv键值对 注意不要漏掉空格

以空格的缩进表示层级关系;只要左对齐的一列数据则表示同一个层级;

eg:

serve:
  port: 8080
  path: hello

字面量(数字,字符串,布尔)

  字符串默认不需要加上单引号或者双引号 eg: port: 8080

  如果加上双引号则不会转义字符串中的特殊字符

  如果加上单引号则会进行特殊字符进行转义;

对象,Map键值对

  在下一行写对象的属性和值的关系,需要注意缩进

  eg:

  friends:
    lastName: zhangsan
    age: 20   另一种写法:
  friends: {lastName: zhangsan, age: 20}

数组(List, Set):

  用 -空格 表示数组中的一个元素:

  eg:

  pets:
    - cat
    - dog
  行内写法:
  pets: [cat, dog]

@ConfigurationProperties and @Value

Spring Boot应用总结更新

Spring Boot应用总结更新Spring Boot应用总结更新

在Person类上加上ConfigurationProperties 注解;与配置文件信息进行绑定,

使用Application.properties的方式:

Spring Boot应用总结更新

除了使用使用ConfigurationProperties 方式外还可以使用@Values方式来获得配置文件中的信息;

eg:

Spring Boot应用总结更新

Spring Boot应用总结更新

@PropertySource

在Resource中配置resource.properties文件,使用 PropertySource  然后加载其中的内容:

Spring Boot应用总结更新

@importResource

使用配置Bean.XML方式配置Bean,然后通过 importResource 方式获得Bean对象;

eg:

Spring Boot应用总结更新

Spring Boot应用总结更新

通过定义配置类,然后同过@Bean方式产生对象;

Spring Boot应用总结更新

配置文件中的占位符

Spring Boot应用总结更新

Spring Boot应用总结更新

Profile 配置多文件环境:

application.properties

Spring Boot应用总结更新

Spring Boot应用总结更新

application.yml

Spring Boot应用总结更新

命令行的方式指定配置文件:

Spring Boot应用总结更新

******************************命令行的优先级高于配置文件!***********************************

使用打包的方式:

Spring Boot应用总结更新

使用虚拟机的方式:

Spring Boot应用总结更新

 配置文件位置的优先级:

Spring Boot应用总结更新

举一反三:在spring中classpath的路径是下面的路径,也就是java文件编译后存放的目录位置,classes文件夹位置。

Spring Boot应用总结更新

配置项目的访问路径:

Spring Boot应用总结更新

高低优先级文件实现 配置互补 高优先级配置大环境配置  低优先配置详细的配置

Spring Boot应用总结更新

还可以任意的指定磁盘上一个某个位置的的配置文件,前提是在项目打包好以后,进行命令号操作,一般用在运维的场景下使用;

Spring Boot应用总结更新

Spring Boot应用总结更新

加载顺序总结:

Spring Boot应用总结更新

除了万能的命令行方式以外,还有下边的方式;

Spring Boot应用总结更新

详细说明如下:

Spring Boot应用总结更新

@Conditional

Spring Boot应用总结更新

在application.properties文件中开启Debug模式,就可以在打印台上看到匹配报告;

Spring Boot应用总结更新

Spring Boot应用总结更新

Spring Boot应用总结更新的更多相关文章

  1. spring boot 框架 启动更新项目,以及生成 &quot&semi;实体&lowbar;&quot&semi;文件

    1.更新项目 clean  --->  更新项目 ---> package--->refresh 即可.(这几个步骤一个不能够少) 2.项目中的类的依赖关系存在,但是无法导入依赖 m ...

  2. spring boot 配置文件动态更新原理 以Nacos为例

    配置文件的动态更新 通常获取配置文件的方式 1, @Value 2. @ConfigurationProperties(Prefix) 如果是在运行时要动态更新的话, 第一种方式要在bean上加@Re ...

  3. spring boot 服务 正确关闭方式

    引言 Spring Boot,作为Spring框架对“约定优先于配置(Convention Over Configuration)”理念的最佳实践的产物,它能帮助我们很快捷的创建出独立运行.产品级别的 ...

  4. 40 篇原创干货,带你进入 Spring Boot 殿堂!

    两个月前,松哥总结过一次已经完成的 Spring Boot 教程,当时感受到了小伙伴们巨大的热情. 两个月过去了,松哥的 Spring Boot 教程又更新了不少,为了方便小伙伴们查找,这里再给大家做 ...

  5. 全网Star最多(近20k)的Spring Boot开源教程 2019 年要继续更新了!

    从2016年1月开始写博客,默默地更新<Spring Boot系列教程>,从无人问津到千万访问,作为一个独立站点(http://blog.didispace.com),相信只有那些跟我一样 ...

  6. Spring Boot 2&period;1&period;0 已发布,7 个重大更新!

    距离<重磅:Spring Boot 2.0 正式发布!>已经过去大半年了,而 Spring Boot 2.1.0 在 10 月底就发布了,我们来看下 Spring Boot 2.1.0 都 ...

  7. spring boot 自动更新静态文件和后台代码 -- 热部署

    在spring boot使用的过程中, 发现我修改了静态文件, 前台刷新后, 没有任何变化, 必须重新启动, 才能看到, 这简直不能让人接受. 那有什么方法来解决这个问题呢. Baidu之后, 得到了 ...

  8. Spring Boot 利用 nginx 实现生产环境的伪热更新

    当我们在服务器部署Java程序,特别是使用了 Spring Boot 生成单一 Jar 文件部署的时候,单一文件为我们开发单来的极大的便利性,保障程序的完整性.但同时对我们修改程序中的任何一处都带来重 ...

  9. spring boot项目开发中遇到问题,持续更新

    1.JPA中EntityManager不能执行建表语句,提示要加事务Error:javax.persistence.TransactionRequiredException: Executing an ...

随机推荐

  1. ADO&period;Net(五)——实战:对战游戏

    对战游戏 要求: 自建数据表(例如:数据表包含:代号,姓名,性别,血量,攻击力,防御力,命中,闪避,等级等字段) 需要通过程序向数据表添加人员 添加的时候,根据用户输入的名字,自动计算生成相应的血量. ...

  2. 在Linux中安装Tomcat

    带Linux的虚拟机中安装Tomcat 一.从官方网站上下载tomcat软件包.http://tomcat.apache.org/ apache-tomcat-7.0.33.tar.gz 二.下载到本 ...

  3. 使用nginx-http-concat优化网站响应

    前言: 我们在访问淘宝的时候,会看到代码中的js和css文件是通过一次请求或得的,我们知道浏览器一次请求只能并发访问数个资源,这样的处理错输在网络传输层面可以大大节省时间,这里使用的技术就是把css. ...

  4. Leetcode&num;129 Sum Root to Leaf Numbers

    原题地址 二叉树的遍历 代码: vector<int> path; int sumNumbers(TreeNode *root) { if (!root) ; ; path.push_ba ...

  5. XML的命名空间

    XML命名空间提供避免元素命名冲突的方法. 命名冲突:在XML中,元素名称是由开发者定义的,当两个不同的文档使用相同的元素名时,就会发生命名冲突. 这个XML文档携带着某个表格中的信息: <ta ...

  6. &lbrack;&period;net&rsqb; c&num; webservice

    采用的工具VS2010生成工程 1. 生成webservice工程:建 ASP.NET 空WEB 应用程序. 2. 在建好的ASP.NET 空WEB应用程序中新建项“web 服务”. 完成上述内容工程 ...

  7. 收集了一些容易出错的题,可能大家也不会注意到的基础知识(js)

    ---恢复内容开始--- 1.题中运用到函数表达式.构造函数.原型.优先级.this. 2.参数影响 3.对原型的运用 4.递归 5.基本类型与引用类型传递 6.优先级 7.自调用函数 ---恢复内容 ...

  8. Java集合框架知多少——干货!!!

    Java集合框架的组成 注意:四个接口的区别 ① Collection:存储无序的.不唯一的数据: ② List:存储有序的.不唯一的数据: ③ Set:存储无序的.唯一的数据: ④ Map:以键值对 ...

  9. mysql 主从配置,主-》windows&comma;从-》centos6&period;5

    1.虚拟机配置的主从关系.win7 ip地址192.168.52.102,虚拟机ip 192.168.184.128.docs进入主服务器(master)mysql目录下,添加用户,然后执行mysql ...

  10. layui:根据行内某个值,设定该行得背景色

    done:function () { $("table tr").each(function () { var s = $(this).children().eq(1).text( ...