java應用運行在docker,并且其他組件也在docker

docker啟動redis容器

# create redis
docker run -d --name redis-container -p 6379:6379 redis:latest

創建java 應用

dockerfile

FROM  openjdk:17##Pre-create related directories
RUN mkdir -p /data/etax/ms-app
WORKDIR /data/etax/ms-appEXPOSE 10133
COPY ./target/fe-msv-ntp-ms3-1.0.0-SNAPSHOT.jar /data/etax/ms-app/app.jar
ENTRYPOINT ["java","-jar","app.jar"]

構建命令

# docker build
docker build -t test-docker:v3 ./# app
docker run -d --name test-docker-app -p 10133:10133 test-docker:v3

SpringBoot 項目搭建

啟動類

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class AppApplication {public static void main(String[] args) {SpringApplication.run(AppApplication.class, args);}
}

pom.xml

<?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"><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>3.1.0</version></parent><modelVersion>4.0.0</modelVersion><artifactId>fe-msv-ntp-ms3</artifactId><version>1.0.0-SNAPSHOT</version><properties><java.version>17</java.version><maven.compiler.source>${java.version}</maven.compiler.source><maven.compiler.target>${java.version}</maven.compiler.target><start-class>ird.ntp.fe.msv.AppApplication</start-class><maven-compiler-plugin.version>3.10.1</maven-compiler-plugin.version><maven-spring-boot-plugin.version>3.0.4</maven-spring-boot-plugin.version><maven-surefire-plugin.version>3.0.0-M5</maven-surefire-plugin.version><maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version></properties><dependencies><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency></dependencies><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-surefire-plugin</artifactId><version>${maven-surefire-plugin.version}</version></plugin><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>${maven-spring-boot-plugin.version}</version><configuration><mainClass>org.example.AppApplication</mainClass></configuration><executions><execution><goals><goal>repackage</goal></goals></execution></executions></plugin></plugins><resources><resource><!--   指定配置文件的位置  --><directory>src/main/resources</directory><includes><!--   讀取resources下的所有文件,include表示指定文件內的,相對的還有excludes ,排除其下的文件 --><include>**/*</include></includes><!-- 開啟替換標簽,比如我們的'@env'就是通過這個替換的         --><filtering>true</filtering></resource></resources></build></project>

yaml

spring:application:name: fe-msv-ntp-ms3-app
# Redis連接配置redis:host: 10.130.6.126port: 6379
#    password:#  profiles:
#    active: local
server:port: 10133

其他測試類

import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;@Configuration
public class RedisConfig {@Value("${spring.redis.host}")String host;@Value("${spring.redis.port}")String port;@Beanpublic RedisConnectionFactory redisConnectionFactory() {// 創建 Redis 連接工廠System.out.println("創建 Redis 連接工廠");LettuceConnectionFactory factory = new LettuceConnectionFactory();factory.setHostName(host);factory.setPort(Integer.parseInt(port));return factory;}@Beanpublic RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory connectionFactory) {// 創建 RedisTemplate 對象RedisTemplate<String, Object> template = new RedisTemplate<>();template.setConnectionFactory(connectionFactory);return template;}}import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
@RequestMapping("/test")
public class TestController {@AutowiredRedisTemplate<String, Object> redisTemplate;@GetMapping("/success")public String success() {return "success";}@GetMapping("/setValue")public void setValue(String key, String value) {redisTemplate.opsForValue().set(key, value);System.out.println("key=" + key + "value=" + value);}@GetMapping("/getValue")public String getValue(String key) {return (String) redisTemplate.opsForValue().get(key);}}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/43090.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/43090.shtml
英文地址,請注明出處:http://en.pswp.cn/news/43090.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

SQL Server Express 自動備份方案

文章目錄 SQL Server Express 自動備份方案前言方案原理SQL Server Express 自動備份1.創建存儲過程2.設定計劃任務3.結果檢查sqlcmd 參數說明SQL Server Express 自動備份方案 前言 對于許多小型企業和個人開發者來說,SQL Server Express是一個經濟實惠且強大的數據庫解決方…

Spring Framework中的Bean生命周期

目錄 一.Bean生命周期的簡介 1.基本概念 2.Spring生命周期的幾大階段 3.注意點及小結 4.生活案例 5.Spring容器管理JavaBean的初始化過程 二. Bean的單例選擇與多例選擇 1.單例選擇與多例選擇的優缺點 1.1單例模式的優點&#xff1a; 1.2單例模式的缺點&#xff1a; 1…

JDK 8 升級 JDK 17 全流程教學指南

JDK 8 升級 JDK 17 首先已有項目升級是會經歷一個較長的調試和自測過程來保證允許和兼容沒有問題。先說幾個重要的點 遇到問題別放棄仔細閱讀報錯&#xff0c;精確到每個單詞每一行&#xff0c;不是自己項目的代碼也要點進去看看源碼到底是為啥報錯明確你項目引入的包&#x…

第三屆“贛政杯”網絡安全大賽 | 賽寧筑牢安全應急防線

??為持續強化江西省黨政機關網絡安全風險防范意識&#xff0c;提高信息化崗位從業人員基礎技能&#xff0c;提升應對網絡安全風險處置能力。由江西省委網信辦、江西省發展改革委主辦&#xff0c;江西省大數據中心、國家計算機網絡與信息安全管理中心江西分中心承辦&#xff0…

Qt掃盲-QTableView理論總結

QTableView理論總結 一、概述二、導航三、視覺外觀四、坐標系統五、示例代碼1. 性別代理2. 學生信息模型3. 對應視圖 一、概述 QTableView實現了一個tableview 來顯示model 中的元素。這個類用于提供之前由QTable類提供的標準表&#xff0c;但這個是使用Qt的model/view架構提供…

MySQL 存儲過程

create procedure 存儲過程名 &#xff08;in | out | INPUT 參數名 參數類型&#xff0c;。。。&#xff09; 【characteristics 。。。】begin存儲過程體end存儲過程的參數類型 IN 、OUT、INPUT 都可以在一個存儲過程帶多個 沒有參數&#xff08;無參數無返回&#xff09;僅…

ProGuard + SpringBoot3 + JDK17

1、pom依賴 <?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.…

android平臺的語音聊天助手源碼

目錄 1 android平臺的語音聊天助手源碼 1.1 Setting 1.1.1 onChildClick 1.1.2 if (groupPosition == 0) {// 語音識別設置 android平臺的語音聊天助手源碼 Setting onChildClick

神經網絡基礎-神經網絡補充概念-11-向量化邏輯回歸

概念 通過使用 NumPy 數組來進行矩陣運算&#xff0c;將循環操作向量化。 向量化的好處在于它可以同時處理多個樣本&#xff0c;從而加速計算過程。在實際應用中&#xff0c;尤其是處理大規模數據集時&#xff0c;向量化可以顯著提高代碼的效率。 代碼實現-以邏輯回歸為例 i…

邊緣網絡的作用及管理工具

自從引入軟件即服務 &#xff08;SaaS&#xff09; 以來&#xff0c;它一直引領著全球按需軟件部署創新的競賽&#xff0c;它提供的靈活性以及其云計算架構帶來的易于集成使其成為交付業務應用程序的標準。 在 SaaS 模型中&#xff0c;最佳用戶體驗的三重奏涉及無縫設置、低延…

JMeter 特殊組件-邏輯控制器與BeanShell PreProcessor 使用示例

文章目錄 前言JMeter 特殊組件-邏輯控制器與BeanShell PreProcessor 使用示例1. 邏輯控制器使用1.1. While Controller 使用示例1.2. 如果&#xff08;If&#xff09;控制器 使用示例 2. BeanShell PreProcessor 使用示例 前言 如果您覺得有用的話&#xff0c;記得給博主點個贊…

Java課題筆記~ SpringBoot簡介

1. 入門案例 問題導入 SpringMVC的HelloWord程序大家還記得嗎&#xff1f; SpringBoot是由Pivotal團隊提供的全新框架&#xff0c;其設計目的是用來簡化Spring應用的初始搭建以及開發過程 原生開發SpringMVC程序過程 1.1 入門案例開發步驟 ①&#xff1a;創建新模塊&#…

設計模式-過濾器模式(使用案例)

過濾器模式&#xff08;Filter Pattern&#xff09;或標準模式&#xff08;Criteria Pattern&#xff09;是一種設計模式&#xff0c;這種模式允許開發人員使用不同的標準來過濾一組對象&#xff0c;通過邏輯運算以解耦的方式把它們連接起來。這種類型的設計模式屬于結構型模式…

服務器安裝centos7踩坑

1、制作啟動工具 下載iso https://developer.aliyun.com/mirror/?spma2c6h.25603864.0.0.20387abbo2RFbn http://mirrors.aliyun.com/centos/7.9.2009/isos/x86_64/?spma2c6h.25603864.0.0.1995f5ad4AhJaW下載 UltraISO https://cn.ultraiso.net/插入u盤啟動 到了如圖所示頁面…

nginx php-fpm安裝配置

nginx php-fpm安裝配置 nginx本身不能處理PHP&#xff0c;它只是個web服務器&#xff0c;當接收到請求后&#xff0c;如果是php請求&#xff0c;則發給php解釋器處理&#xff0c;并把結果返回給客戶端。 nginx一般是把請求發fastcgi管理進程處理&#xff0c;fascgi管理進程選…

架構演進及常用架構

1架構演進及常用架構 1.1單體分層架構 1.2 多應用微服務架構 1.3 分布式集群部署 部署 CDN 節點&#xff1a; 用戶訪問量的增加意味著用戶地域的分散請求&#xff0c;如果所有請求都直接發送中心服務器的話&#xff0c;距離越遠&#xff0c;響應速度越差&#xff0c;這時就需…

【編織時空四:探究順序表與鏈表的數據之旅】

本章重點 鏈表的分類 帶頭雙向循環鏈表接口實現 順序表和鏈表的區別 緩存利用率參考存儲體系結構 以及 局部原理性。 一、鏈表的分類 實際中鏈表的結構非常多樣&#xff0c;以下情況組合起來就有8種鏈表結構&#xff1a; 1. 單向或者雙向 2. 帶頭或者不帶頭 3. 循環或者非…

yolov5封裝進ros系統

一&#xff0c;要具備ROS環境 ROS環境搭建可以參考我之前的文章 ROS參考文章1 ROS參考文章2 ? 建立ROS工作空間 ROS系統由自己的編譯空間規則。 cd 你自己想要的文件夾&#xff08;我一般是home目錄&#xff09; mkdir -p (你自己的文件夾名字&#xff0c;比如我是yolov5…

C++的stack和queue+優先隊列

文章目錄 什么是容器適配器底層邏輯為什么選擇deque作為stack和queue的底層默認容器優先隊列優先隊列的模擬實現stack和queue的模擬實現 什么是容器適配器 適配器是一種設計模式(設計模式是一套被反復使用的、多數人知曉的、經過分類編目的、代碼設計經驗的總 結)&#xff0c;…

Greenplum多級分區表添加分區報錯ERROR: no partitions specified at depth 2

一般來說&#xff0c;我們二級分區表都會使用模版&#xff0c;如果沒有使用模版特性&#xff0c;那么就會報ERROR: no partitions specified at depth 2類似的錯誤。因為沒有模版&#xff0c;必須要顯式指定分區。 當然我們在建表的時候&#xff0c;如果沒有指定&#xff0c;那…