java中properties类中关于store(arg0,arg1)用法的讲解

本文介绍如何使用Java的Properties类来加载、修改并保存配置文件。通过实例演示了如何读取配置文件、添加新的键值对,并将更改后的内容重新保存到文件中,包括如何添加注释。

store 用来给properties添加新的键值对。
API中这样写道:
    
voidstore(OutputStream out, String comments)
Writes this property list (key and element pairs) in this Properties table to the output stream in a format suitable for loading into a Properties table using the load(InputStream) method.
voidstore(Writer writer, String comments)
Writes this property list (key and element pairs) in this Properties table to the output character stream in a format suitable for using the load(Reader) method.
第一个参数为 OutputStream/Writer 用来指向加载的配置文件,第二个参数为 String 用来给配置文件添加注释。

 public static void main(String[] args) throws Exception{
  Properties p1=new Properties();
//先写一个匿名FileReader用来加载配置文件123.txt
  p1.load(new FileReader(new File("C:\\123.txt")));
 //给123.txt中添加新的内容 name2=Jack
  p1.setProperty("name2", "Jack");
 
//设置FileWriter时不要给第二个参数true,负责会在原有内容的基础上重写原内容和新内容。
  FileWriter fw=new FileWriter(new File("C:\\123.txt"));
//这里的第二个参数是用来写注释的。在Proterties中的注释是"#"
  p1.store(fw, "the follow is the third try");
 }

123.txt中
以前只有一行是:

    name=Tom

运行后的结果:

#the follow is the third try
#Thu May 17 09:05:22 CST 2018
name=Tom
name2=Jack
可以看到红色字体正是注释的内容。还有,properties的后缀不只是.properties,像本文的.txt文本后缀的文件同样可用
<think>我们正在讨论如何打包和部署Java Spring Boot应用程序。根据之前的引用,我们知道Spring Boot提供了许多便利,包括端口配置。但用户现在关心的是打包和部署。 打包和部署Spring Boot应用程序通常有两种方式: 1. 打包成可执行的JAR文件(包含嵌入式服务器,如Tomcat) 2. 打包成WAR文件(部署到外部应用服务器,如Tomcat) 下面我将分别介绍这两种方式。 ### 打包成可执行的JAR文件 这是Spring Boot推荐的方式,因为内置了Tomcat、Jetty或Undertow服务器,使得应用程序可以独立运行。 步骤: 1. 在项目的构建配置文件(如Maven的`pom.xml`或Gradle的`build.gradle`)中,确保使用了Spring Boot提供的构建插件。 2. 使用构建工具打包。 3. 运行生成的JAR文件。 以Maven项目为例: 首先,在`pom.xml`中确保有Spring Boot Maven插件: ```xml <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> ``` 然后,在项目根目录下运行Maven打包命令: ```bash mvn clean package ``` 打包完成后,会在`target`目录下生成一个可执行的JAR文件(通常命名为`your-project-name-version.jar`)。运行该JAR文件: ```bash java -jar target/your-project-name-version.jar ``` 这样,应用程序就会启动,并监听默认的8080端口(除非你配置了其他端口)[^1]。 ### 打包成WAR文件 如果你需要将应用程序部署到外部的Servlet容器(如Tomcat),则需要打包成WAR文件。 步骤: 1. 修改构建方式为WAR。 2. 修改主,使其继承`SpringBootServletInitializer`并重写`configure`方法。 3. 打包并部署到外部服务器。 修改`pom.xml`,将打包方式改为`war`: ```xml <packaging>war</packaging> ``` 然后,在主应用程序中(通常是带有`@SpringBootApplication`注解的): ```java @SpringBootApplication public class Application extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(Application.class); } public static void main(String[] args) { SpringApplication.run(Application.class, args); } } ``` 然后同样使用Maven打包: ```bash mvn clean package ``` 生成的WAR文件位于`target`目录下,将其复制到外部Tomcat的`webapps`目录中,然后启动Tomcat服务器即可。 ### 部署到云平台 除了传统的部署方式,Spring Boot应用程序也可以轻松部署到云平台(如Cloud Foundry、Heroku、AWS等)。这些平台通常支持直接部署可执行的JAR文件,或者通过容器化(如Docker)进行部署。 例如,使用Docker部署: 1. 创建一个Dockerfile,内容如下: ```Dockerfile FROM openjdk:8-jdk-alpine VOLUME /tmp ARG JAR_FILE=target/*.jar COPY ${JAR_FILE} app.jar ENTRYPOINT ["java","-jar","/app.jar"] ``` 2. 构建Docker镜像: ```bash docker build -t your-image-name . ``` 3. 运行容器: ```bash docker run -p 8080:8080 your-image-name ``` 以上是打包和部署Spring Boot应用程序的常见方法。 §§相关问题§§ 1. 如何配置Spring Boot应用程序的端口号? 2. 如何为Spring Boot应用程序添加HTTPS支持? 3. 在部署到外部Tomcat时,如何解决静态资源访问问题? 4. 如何使用Docker Compose部署Spring Boot应用程序与数据库? 5. Spring Boot应用程序如何实现零停机部署?</think>### 打包和部署 Java Spring Boot 应用程序 #### 一、打包方式 1. **可执行 JAR 文件(推荐)** Spring Boot 默认使用嵌入式服务器(Tomcat/Jetty),可直接打包为独立可执行 JAR: ```bash mvn clean package # Maven 项目 ./gradlew build # Gradle 项目 ``` 生成位置:`target/*.jar`(Maven)或 `build/libs/*.jar`(Gradle) 2. **WAR 文件(传统部署)** 需修改 `pom.xml`: ```xml <packaging>war</packaging> <!-- 修改打包格式 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> <!-- 声明外部Tomcat提供 --> </dependency> ``` 主需继承 `SpringBootServletInitializer`: ```java @SpringBootApplication public class Application extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { return builder.sources(Application.class); } } ``` #### 二、部署方式 1. **独立运行 JAR** ```bash java -jar your-app.jar # 默认端口8080[^1] java -jar your-app.jar --server.port=9090 # 自定义端口 ``` 2. **外部服务器部署(WAR)** 将 WAR 文件复制到 Tomcat 的 `webapps/` 目录,启动 Tomcat 即可自动解压部署。 3. **容器化部署(Docker)** Dockerfile 示例: ```Dockerfile FROM eclipse-temurin:17-jdk-alpine VOLUME /tmp COPY target/*.jar app.jar ENTRYPOINT ["java","-jar","/app.jar"] ``` 构建与运行: ```bash docker build -t spring-app . docker run -p 8080:8080 spring-app ``` 4. **云平台部署** - **AWS**: 使用 Elastic Beanstalk 上传 JAR - **Heroku**: `git push heroku main` - **Kubernetes**: 通过 Helm Chart 部署 #### 三、关键配置 1. **端口修改** 在 `application.properties` 中配置: ```properties server.port=8443 # HTTP 端口 server.ssl.enabled=true # 启用 HTTPS server.ssl.key-store=classpath:keystore.p12 ``` 2. **生产环境配置** ```properties spring.profiles.active=prod management.endpoints.web.exposure.include=health,info ``` #### 四、部署流程示例 ```mermaid graph LR A[代码开发] --> B[打包:mvn package] B --> C{部署方式} C --> D[JAR独立运行] C --> E[外部Tomcat] C --> F[Docker容器] D --> G[生产服务器] E --> H[应用服务器集群] F --> I[Kubernetes] ``` > **注意**:部署前务必测试 `java -jar` 的本地运行,确保打包无误。生产环境建议使用 **PM2** 或 **systemd** 守护进程管理。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值