已备案网站域名网,网络营销策划书5000字,wordpress免费模板小而美,淘宝数据分析工具在上一个博客中#xff0c;我们使用由InfluxDB支持的千分尺设置了反应式应用程序。 在本教程中#xff0c;我们将使用传统的带JDBC阻塞式Servlet的Spring Stack。 我选择的数据库是postgresql。 我将使用与先前博客文章相同的脚本。 因此#xff0c;我们将拥有初始化数据库… 在上一个博客中我们使用由InfluxDB支持的千分尺设置了反应式应用程序。 在本教程中我们将使用传统的带JDBC阻塞式Servlet的Spring Stack。 我选择的数据库是postgresql。 我将使用与先前博客文章相同的脚本。 因此我们将拥有初始化数据库的脚本 #!/bin/bash set -e psql -v ON_ERROR_STOP1 --username $POSTGRES_USER --dbname $POSTGRES_DB -EOSQL create schema spring_data_jpa_example; create table spring_data_jpa_example.employee( id SERIAL PRIMARY KEY , firstname TEXT NOT NULL , lastname TEXT NOT NULL , email TEXT not null , age INT NOT NULL , salary real , unique (email) ); insert into spring_data_jpa_example.employee (firstname,lastname,email,age,salary) values ( John , Doe 1 , john1doe.com ,18,1234.23); insert into spring_data_jpa_example.employee (firstname,lastname,email,age,salary) values ( John , Doe 2 , john2doe.com ,19,2234.23); insert into spring_data_jpa_example.employee (firstname,lastname,email,age,salary) values ( John , Doe 3 , john3doe.com ,20,3234.23); insert into spring_data_jpa_example.employee (firstname,lastname,email,age,salary) values ( John , Doe 4 , john4doe.com ,21,4234.23); insert into spring_data_jpa_example.employee (firstname,lastname,email,age,salary) values ( John , Doe 5 , john5doe.com ,22,5234.23); EOSQL 我们将拥有一个包含InfluxDBPostgres和Grafana的docker compose文件。 version: 3.5 services: influxdb: image: influxdb restart: always ports: - 8086 : 8086 grafana: image: grafana / grafana restart: always ports: - 3000 : 3000 postgres: image: postgres restart: always environment: POSTGRES_USER: db - user POSTGRES_PASSWORD: your - password POSTGRES_DB: postgres ports: - 5432 : 5432 volumes: - $PWD / init - db - script.sh: / docker - entrypoint - initdb.d / init - db - script.sh 现在是时候从我们的maven依赖关系开始构建我们的spring应用程序了。 ? xml version 1.0 encoding UTF-8 ? project xmlns http://maven.apache.org/POM/4.0.0 xmlns:xsi http://www.w3.org/2001/XMLSchema-instance xsi:schemaLocation http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd modelVersion 4.0.0/ modelVersion parent groupId org.springframework.boot/ groupId artifactId spring-boot-starter-parent/ artifactId version 2.2.4.RELEASE/ version / parent groupId com.gkatzioura/ groupId artifactId EmployeeApi/ artifactId version 1.0-SNAPSHOT/ version build defaultGoal spring-boot:run/ defaultGoal plugins plugin groupId org.apache.maven.plugins/ groupId artifactId maven-compiler-plugin/ artifactId configuration source 8/ source target 8/ target / configuration / plugin plugin groupId org.springframework.boot/ groupId artifactId spring-boot-maven-plugin/ artifactId / plugin / plugins / build dependencies dependency groupId org.springframework.boot/ groupId artifactId spring-boot-starter-web/ artifactId / dependency dependency groupId org.springframework.boot/ groupId artifactId spring-boot-starter-data-jpa/ artifactId / dependency dependency groupId org.springframework.boot/ groupId artifactId spring-boot-starter-actuator/ artifactId / dependency dependency groupId org.postgresql/ groupId artifactId postgresql/ artifactId version 42.2.8/ version / dependency dependency groupId io.micrometer/ groupId artifactId micrometer-core/ artifactId version 1.3.2/ version / dependency dependency groupId io.micrometer/ groupId artifactId micrometer-registry-influx/ artifactId version 1.3.2/ version / dependency dependency groupId org.projectlombok/ groupId artifactId lombok/ artifactId version 1.18.12/ version scope provided/ scope / dependency / dependencies / project 由于这是JDBC支持的依赖关系因此我们将创建实体和存储库。 package com.gkatzioura.employee.model; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.Table; import lombok.Data; Data Entity Table (name employee , schema spring_data_jpa_example ) public class Employee { Id Column (name id ) GeneratedValue (strategy GenerationType.IDENTITY) private Long id; Column (name firstname ) private String firstName; Column (name lastname ) private String lastname; Column (name email ) private String email; Column (name age ) private Integer age; Column (name salary ) private Integer salary; } 然后让我们添加存储库 package com.gkatzioura.employee.repository; import com.gkatzioura.employee.model.Employee; import org.springframework.data.jpa.repository.JpaRepository; public interface EmployeeRepository extends JpaRepositoryEmployee,Long { } 和控制器 package com.gkatzioura.employee.controller; import java.util.List; import com.gkatzioura.employee.model.Employee; import com.gkatzioura.employee.repository.EmployeeRepository; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; RestController public class EmployeeController { private final EmployeeRepository employeeRepository; public EmployeeController(EmployeeRepository employeeRepository) { this .employeeRepository employeeRepository; } RequestMapping ( /employee ) public ListEmployee getEmployees() { return employeeRepository.findAll(); } } 最后但并非最不重要的Application类 package com.gkatzioura.employee; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application. class , args); } } 以及配置 spring: datasource: platform: postgres driverClassName: org.postgresql.Driver username: db - user password: your - password url: jdbc:postgresql: / / 127.0 . 0.1 : 5432 / postgres management: metrics: export: influx: enabled: true db: employeeapi uri: http: / / 127.0 . 0.1 : 8086 endpoints: web: expose: * 试试看 curl http: //localhost :8080 /employee 经过一些请求后我们可以找到保留的条目。 docker exec -it influxdb- local influx SHOW DATABASES; name: databases name ---- _internal employeeapi use employeeapi Using database employeeapi SHOW MEASUREMENTS name: measurements name ---- hikaricp_connections hikaricp_connections_acquire hikaricp_connections_active hikaricp_connections_creation hikaricp_connections_idle hikaricp_connections_max hikaricp_connections_min hikaricp_connections_pending hikaricp_connections_timeout hikaricp_connections_usage http_server_requests jdbc_connections_active jdbc_connections_idle jdbc_connections_max jdbc_connections_min jvm_buffer_count jvm_buffer_memory_used jvm_buffer_total_capacity jvm_classes_loaded jvm_classes_unloaded jvm_gc_live_data_size jvm_gc_max_data_size jvm_gc_memory_allocated jvm_gc_memory_promoted jvm_gc_pause jvm_memory_committed jvm_memory_max jvm_memory_used jvm_threads_daemon jvm_threads_live jvm_threads_peak jvm_threads_states logback_events process_cpu_usage process_files_max process_files_open process_start_time process_uptime system_cpu_count system_cpu_usage system_load_average_1m tomcat_sessions_active_current tomcat_sessions_active_max tomcat_sessions_alive_max tomcat_sessions_created tomcat_sessions_expired tomcat_sessions_rejected 如您所见指标与上一个示例有些不同。 我们有jdbc连接度量标准tomcat度量标准和与我们的应用程序相关的所有度量标准。 您可以在github上找到源代码。 翻译自: https://www.javacodegeeks.com/2020/03/spring-boot-and-micrometer-with-inlfuxdb-part-3-servlets-and-jdbc.html