2026/3/20 16:32:49
网站建设
项目流程
正规网站建设公司,接收新网站如何做诊断,游戏网站建设与策划,wordpress 多的模板SpringBoot项目部署
在如今的互联网背景下前后端分离开发已经成为互联网的主流趋势#xff0c;SpringBoot构建web项目已经非常快速了#xff0c;只需要将其打成一个jar包#xff0c;然后通过java -jar jar包的名称就可以启动。
jar包 、
首先我们需要导入springBoot的mav…SpringBoot项目部署在如今的互联网背景下前后端分离开发已经成为互联网的主流趋势SpringBoot构建web项目已经非常快速了只需要将其打成一个jar包然后通过java -jar jar包的名称就可以启动。jar包、首先我们需要导入springBoot的maven依赖build plugins plugin groupIdorg.springframework.boot/groupId artifactIdspring-boot-maven-plugin/artifactId /plugin /plugins /buildpackage完成后会出现一个jar包我们可以将jar包上传到Linux服务器上面以jar运行此处本地验证打包成功java -jar zdy-spring-boot-start-1.0-SNAPSHOT.jarwar包首先我们需要修改pom.xml配置文件packagingjar/packaging //修改为 packagingwar/packaging然后在pom.xml文件中添加依赖!--添加servlet-api的依赖,用来打war包 -- dependency groupIdjavax.servlet/groupId artifactIdjavax.servlet-api/artifactId scopeprovided/scope /dependency还需要排除springboot内置的tomcat干扰!--最终打成war包排除内置的tomcat-- dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-web/artifactId exclusions exclusion groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-tomcat/artifactId /exclusion /exclusions /dependency /dependencies然后我们需要改造启动类如果是war包发布需要增加SpringBootServletInitializer子类并重写其configure方法或者将main函数所在的类继承SpringBootSerletInitializer并重写configure方法。当时打包为war时上传tomact服务器访问项目始终报错404就是忽略了这个。SpringBootApplication public class MainApplication extends SpringBootServletInitializer { public static void main(String[] args) { SpringApplication.run(MainApplication.class, args); } Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { return builder.sources(MainApplication.class); } }war包和jar方式对比SpringBoot 项目 jar 与 war 打包方式对比启动与部署方式jar 包操作简单通过java -jar xx.jar直接启动使用最广泛war 包需部署到 Tomcat 的 webapps 目录随 Tomcat 启动而启动。资源打包差异jar 包不会包含src/main/webapp下的内容若路径错误会出现 404war 包会将src/main/webapp下的内容打包进去。适用场景选 jar 包提供 rest 服务的项目命令行运行便捷选 war 包含大量 css、js、html 且需频繁改动的项目可直接替换静态资源无需重新打包上传效率更高。多环境部署在项目运行中包括多环境如线上环境prod开发环境dev测试缓存test在不同的环境需要不同的配置从而在不同的场景下去跑我们的程序例如prod和dev环境下需要连接不同的数据库配置不同的日志输出SpringBoot对此提供了支持一方面是Profile注解另一方面还有多资源配置文件。ProfileProfile注解的作用是指定类和方法在特定的Profile环境生效任何Compoent或Configuration注解的类都可以使用Profile注解在使用DI来依赖注入的时候能够根据Profile标明的环境将注入符合当前环境的相应的bean。使用要求Component或者Configuration注解的类可以使用profileProfile中需要指定一个字符串约定生效的环境。Profile的使用位置修饰类修饰方法修饰注解Profile激活在实际使用中注解中标识了prodtestqa等多个环境运行时使用哪个profile有spring.profiles.active控制可以使用配置文件或命令行方式创建。配置文件激活spring: profiles: active: dev命令行方式激活java -jar spring-boot-config-0.1-SNAPSHOT.jar --spring.profiles.activedev多Proflie的资源文件一般为4个配置文件application.properties 公共配置application-dev.properties 开发环境配置application-test.properties 测试环境配置application-prod.properties 生产环境配置不同的properties配置文件也可以是在application.properties文件中来激活profilespring.profiles.active test。SpringBoot监控Auturator其是spring boot的一个附加功能可以帮助我们在应用程序生成环境是监控和管理应用程序可以使用HTTP的各种请求来监管审计收集应用的情况。HTTP 方法路径描述GET/auditevents显示应用暴露的审计事件如认证进入、订单失效GET/beans描述应用程序上下文里全部的 Bean 及它们的关系GET/conditions对应 1.0 的 /autoconfig提供自动配置生效的条件情况记录哪些条件通过 / 没通过GET/configprops描述配置属性包含默认值如何注入 BeanGET/env获取全部环境属性GET/env/{name}根据名称获取特定的环境属性值GET/flyway提供 Flyway 数据库迁移信息GET/liquibase显示 Liquibase 数据库迁移的详细信息GET/health报告应用程序的健康指标由 HealthIndicator 实现类提供GET/heapdumpdump 一份应用的 JVM 堆信息GET/httptrace显示 HTTP 踪迹最近 100 个 HTTP request/responseGET/info获取应用程序的定制信息由 info 打头的属性提供GET/logfile返回 log 文件内容需配置 logging.file 或 logging.pathGET/loggers显示和修改配置的 loggersGET/metrics报告各种应用程序度量信息如内存用量、HTTP 请求计数GET/metrics/{name}报告指定名称的应用程序度量值GET/scheduledtasks展示应用中的定时任务信息GET/sessions若使用 Spring Session展示应用中的 HTTP sessions 信息POST/shutdown关闭应用程序需配置 endpoints.shutdown.enabledtrueGET/mappings描述全部的 URI 路径及它们和控制器包含 Actuator 端点的映射关系GET/threaddump获取线程活动的快照体验Actuator使用Actuator功能与springBoot使用其他功能一样简单只需要加入xml依赖dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-actuator/artifactId /dependency为了保证监控接口的安全性需要添加spring-boot-start-secuity依赖访问应用监控端点是都需要输入验证信息。也可以选择不加不进行安全管理。编写配置文件配置详情Actuator 基础配置Spring Boot 2.x默认开放端点仅/actuator/health、/actuator/info为安全考虑。端点暴露配置开放所有端点management.endpoints.web.exposure.include*开放部分端点management.endpoints.web.exposure.includebeans,trace自定义监控路径management.endpoints.web.base-path/manage配置后访问地址变为/manage/*。常用端点功能说明1. health作用检查应用运行状态高频监控点可返回数据库连接、磁盘空间等异常原因。默认开放访问http://localhost:8000/actuator/health返回示例{ status: UP, components: { db: { status: UP, details: { database: MySQL, result: 1, validationQuery: /* ping */ SELECT 1 } }, diskSpace: { status: UP, details: { total: 429496729600, free: 295998197760, threshold: 10485760 } }, ping: { status: UP }, redis: { status: UP, details: { version: 7.0.15 } } } }内置健康指标DataSourceHealthIndicator数据库、DiskSpaceHealthIndicator磁盘等可关闭指定指标management.health.redis.enabledfalse2. info作用返回自定义配置的信息以info开头的配置。配置示例info.app.namespring-boot-actuator info.app.version1.0.0访问http://localhost:8000/actuator/info返回示例{ app: { name: SpringCacheDemo, version: 1, test: test } }3. beans作用展示应用中所有 Bean 的信息别名、类型、作用域、依赖等。访问http://localhost:8000/actuator/beans返回示例包含 Bean 名称、类型如TomcatEmbeddedServletContainerFactory等。4. conditions作用查看自动配置的生效 / 未生效条件排查配置问题。访问http://localhost:8000/actuator/conditions返回positiveMatches生效配置、negativeMatches未生效配置及原因。5. heapdump作用生成 GZip 压缩的 JVM 堆转储文件。访问http://localhost:8000/actuator/heapdump可通过 JDK 工具如 VisualVM分析内存泄漏。6. mappings作用描述所有 URI 路径与控制器的映射关系。访问http://localhost:8000/actuator/mappings返回示例包含接口路径如/hello对应的控制器方法。7. threaddump作用生成线程活动快照用于排查线程问题线程名、状态、堆栈等。访问http://localhost:8000/actuator/threaddump返回线程的状态如WAITING、堆栈信息等。8. shutdown作用关闭应用需手动开启。开启配置management.endpoint.shutdown.enabledtrue访问仅支持 POSTcurl -X POST http://localhost:8000/actuator/shutdown返回示例{message: Shutting down, bye...}Spring Boot AdminSpring Boot Admin 是一个针对spring-boot的actuator接口进行UI美化封装的监控工具他可以 返回在列表中浏览所有被监控spring-boot项目的基本信息比如Spring容器管理的所有的bean、 详细的Health信息、内存信息、JVM信息、垃圾回收信息、各种配置信息比如数据源、缓存列表 和命中率等Threads 线程管理Environment 管理等。服务端配置xml文件dependency groupIdde.codecentric/groupId artifactIdspring-boot-admin-starter-server/artifactId version2.7.10/version /dependency需要在启动类上添加注解EnableAdminServer客户端添加maven依赖dependency groupIdde.codecentric/groupId artifactIdspring-boot-admin-starter-client/artifactId version2.1.0/version /dependency配置yml文件server: port: 8080 # 自定义配置信息用于“/actuator/info”读取 info: name: 老王 age: 100 phone: 110 # 通过下面的配置启用所有的监控端点默认情况下这些端点是禁用的 management: endpoints: web: exposure: include: * endpoint: health: show-details: always # 将Client作为服务注册到Server通过Server来监听项目的运行情况 spring: boot: admin: client: url: http://localhost:8081 # #application实例名 # application: # name: spring-boot-admin-client