springboot入门

springboot设计理念

可运行、独立的、生产级别的基于spring的应用程序

设计目标

  • 为所有spring开发提供更快可通用的入门体验

  • 开箱即用,根据需求快速调整默认值

  • 提供大象项目通用的一系列非功能性功能

  • 绝对没有代码生成,不需要xml配置

springboot中通用约定

  1. 注解扫描的包目录basepackage为启动类main函数入口所在的包路径

  2. 配置未见约定是classpath目录下的application.yml或者application.properties

  3. web开发的静态文件放在classpath,访问的顺序是:/META-INFO/resources--->resources-->static-->public

  4. web开发中页面模板,约定放在classpath目录,/templates/目录下

 

系统配置自动装载机制

外部参数配置信息加载

Spring应用程序可以通过属性文件,yaml文件,环境变量和命令行参数等方式的外部化参数配置

  • 启动时命令行传参java -jar app.jar --name="test"

  • Springboot配置信息中的特殊值:SPRING_APPLICATION_JSON={"name","test"}

  • 如果是web应用,可以读取ServletConfig init参数

  • 如果是web应用,可以读取ServletContext init参数

  • JNDI属性来自java.comp/env

  • java系统属性(System.getProperties)

  • 操作系统环境变量

  • 配置文件application.properties,application.yml,application.{profile}.properties,application.{profile}.yml

  • @PropertySources注解导入的配置:@PropertySource(value={"person.properties"})

  • 程序入口通过SpringApplication.setDefaultProperties方法设定的参数配置

环境化配置

profile机制

  1. Spring配置文件提供的一种隔离应用程序配置的方法,使其仅在特定环境中试用

  2. 可通过profile指定bean的应用环境

  3. 可通过profile指定不同环境的配置参数值

如何指定profile

通过配置参数spring,profiles,active来指定应用启用的profiles。默认default

  1. 在环境变量中指定:JVM参数、命令行程序参数、application.properties

  2. 代码中指定:springApplication.setAddtionalProfiles("dev.test");

开发中使用

  1. Configuration类或者Bean定义方法上,都可以通过添加@Profie("dev")注解,实现指定环境下生效

  2. 配置文件中:<beans profile="dev"><bean...>...</bean></beans>

配置文件

存放位置

  1. 当前项目运行的盘符/config文件夹下面:file:./config/

  2. 当前项目运行的目录下面(命令执行所在目录):file:./

  3. classpath下面的config文件夹:classpath:./config

  4. classpath的根目录(平常使用的这种):classpath:/

上述配置文件按优先级排列,排在上面的位置会覆盖优先级较低的配置

格式

  • properties

    • 示例:spring.datebase.username=test

  • yaml

    • 大小写敏感

    • 使用空格缩进表示层级,同一层级的左侧对齐

    • map键值对通过":"分割

    • list列表元素通过"-"表示

参数使用

  • @Value("${my.name}")注解,将指定的参数配置注入到属性

  • 注入environment对象

 //伪代码,注入env对象
 @Autowired
 Environment environment;
 ​
 //使用示例
 environment.getProperty("name");    

starter快速集成机制

介绍

作用

启动器starter包含许多依赖项,这些依赖项是使项目快速启动和运行所需的依赖项

例如:通过配置spring-boot-starter-data-redis ,可以快捷的使用spring对redis进行数据访问

命名规范

官方开发的starter遵循类似的命名模式:spring-boot-starter-*

第三方starter命名应当遵循thirdpartyproject-spring-boot-starter

常用starter

  • spring-boot-starter-jdbc

  • spring-boot-starter-data-redis

  • spring-boot-starter-web

  • spring-boot-starter-actuator

自研starter步骤

  1. 建工程

  2. 引入spring-boot-start、spring-boot-autoconfigure、第三方jar

  3. 如需生成配置元信息、加入spring-boot-configuration-processor依赖

  4. 编写自动配置类

  5. 配置发现配置文件:META-INF/spring.factories

  6. 打包发布

 

使用actuator管理spring程序

介绍

  • Spring Boot Actuator提供http(或JMX)端点来实现应用程序的监视和管理、收集运行状况等功能

    引入spring-boot-starter-actuator可启动这些功能

  • 默认情况下,通过访问/actuator可以看到所有启动的端点,也可以通过配置修改这个路径地址

    例如修改为:management.endpoints.web.base-path = /manage

端点配置

允许添加自己的端点,可以配置端点是否对外开放或关闭

  1. 设置默认关闭所有端点(默认开放启用了"health"和"info"

    management.endpoints.enabled-by-default=false

  2. 启动指定的端点

    management.endpoint.info.enabled = true

    (启动哪个,黑体写哪个)

  3. 数据缓存

    端点自动缓存对不带任何参数的读取操作的响应。要配置端点缓存响应的时间量

    management.endpoint,<name>,cache.time-to-live = 10s

    <name>需要使用对应的端点名称来代替

Http端点配置

端点讲解-Health健康检查

访问/actuator/health查看程序中组件检查项的运行状况信息,在出现故障时能及时发现。

SpringBoot默认提供了对redis、rabbitMQ、DataSource、MongoDB组件的检查项

端点讲解-日志配置

  • springboot日志配置

    logging.level.root=WARN

    logging.level.org.springframework.web=DEBUG

    logging.level.org.hibernate=ERROR

  • 通过/acuator/loggers查看日志配置

  • 运行时修改配置

curl -X POST -H 'Content-Type:application/json' -i 'http://127.0.0.1:8081/manage/loggers/ROOT' --data '
    {"configuredLevel":"DEBUG"}
'

端点讲解-metrics

Metrics是生产应用中很重要的功能,简单可理解为对运行时具体功能的监控、Spring Boot中集成micrometer实现

自定义端点

可以理解为:"概念上类似SpringMVC的controller写法,却又是完全不同的一套API"

  • 端点定义:@EndPoint或@WebEndPoint或@JmxEndPoint

  • 端点操作:@ReadOperation、@WriteOperation、@DeleteOperation

  • 参数接收:web环境下添加@Selector

 @EndPoint(id = "myEndPoint")
 @Component
 public class MyEndPoint{
     
     String name = "default";
     
     @ReadOperation
     public String getName(){
         //Spring http端点的json格式
         return "{\"name\":\""+name+"\"}"
     }
 }

快速理解JMX机制

java management extensions 提供了一种监视和管理应用程序的标准机制

tomcat、kafka、druid都是用的JMX技术来实现对外暴露管理接口和监控信息

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它提供了一种简化的方法来配置和部署应用程序,使开发人员能够更快地开发和运行应用程序。 Spring Boot Actuator是Spring Boot的一个组件,它可以帮助我们监控和管理Spring Boot应用程序,包括健康检查、审计、统计和HTTP追踪等功能。要使用Spring Boot Actuator,只需引入相应的起步依赖,并在应用程序的入口点类上添加@SpringBootApplication注解即可。在该类中,使用@SpringBootApplication注解相当于同时添加了@Configuration、@EnableAutoConfiguration和@ComponentScan注解,它标识了当前应用程序是一个Spring Boot应用程序。要启动Spring Boot应用程序,只需在主启动类中编写main函数,通过调用SpringApplication.run(Application.class, args)方法来启动应用程序。在开发过程中,<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [SpringBoot入门](https://blog.csdn.net/weixin_45905210/article/details/121712027)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* [spring boot 入门](https://blog.csdn.net/zhshx19900318/article/details/129476812)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值