Java - Application.class

本文介绍了一个SpringBoot项目的配置示例,包括@SpringBootApplication注解的使用、时区设置、项目打包方式等。通过示例代码展示了如何扫描指定包下的组件,并自定义Servlet组件的扫描路径。
@SpringBootApplication
@MapperScan("com.project.mapper")
@ComponentScan(basePackages = {"com.project"})
@ServletComponentScan(basePackages = {"com.project.web"})
public class Application extends SpringBootServletInitializer {

    public static void main(String[] args) {
    	TimeZone.setDefault(TimeZone.getTimeZone("Asia/Shanghai"));
        SpringApplication.run(EgoValleyApplication.class, args);
    }

    /**
     * 打包springboot项目
     */
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(this.getClass());
    }

}
### Spring Boot 使用 `java -jar` 启动时携带参数的方法及示例 #### 一、基本启动命令 Spring Boot 应用程序可以通过打包为可执行的 JAR 文件来运行。以下是标准的启动命令: ```bash java -jar your-application.jar ``` 当需要传递参数时,可以在 `-jar` 参数之后附加所需的选项或配置项。 --- #### 二、常见参数类型及示例 1. **指定活动环境** - 可以通过 `--spring.profiles.active` 参数激活特定的配置文件。 - 示例: ```bash java -jar your-application.jar --spring.profiles.active=dev ``` 2. **修改服务器端口** - 默认情况下,Spring Boot 的嵌入式 Tomcat 运行在 8080 端口上。如果需要更改端口号,可以使用以下方式: ```bash java -jar your-application.jar --server.port=9090 ``` 3. **设置日志级别** - 如果需要调整某个包的日志输出级别,可以使用如下命令: ```bash java -jar your-application.jar --logging.level.org.springframework=DEBUG ``` 4. **传递自定义参数** - 用户还可以向应用程序传递自定义参数,并在代码中通过 `@Value` 注解读取这些参数。 - 示例命令: ```bash java -jar your-application.jar --custom.param=value1 ``` - 在代码中读取该参数: ```java @Value("${custom.param}") private String customParam; ``` 5. **启用远程调试** - 开发阶段可能需要连接到正在运行的应用程序进行调试,此时可以添加 JVM 调试参数: ```bash java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005 -jar your-application.jar ``` 6. **调整内存分配** - 根据硬件资源情况优化 Java 虚拟机的堆大小: ```bash java -Xms512m -Xmx1GB -jar your-application.jar ``` 7. **覆盖 application.properties 中的值** - 命令行参数会优先于 `application.properties` 或 `application.yml` 中的配置生效。例如: ```bash java -jar your-application.jar --my.property.override=new-value ``` --- #### 三、参数解析机制 Spring Boot 支持多种外部化配置来源,其中命令行参数具有较高的优先级[^1]。这意味着,即使某些键已经在 `application.properties` 文件中定义,它们仍然会被命令行中的同名参数所覆盖。 --- #### 四、完整示例 假设有一个简单的 Spring Boot 应用程序,其入口类如下所示: ```java package com.example.demo; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @SpringBootApplication public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } } @RestController class GreetingController { @Value("${app.greeting:Hello}") private String greetingMessage; @GetMapping("/greet") public String greet() { return greetingMessage + ", World!"; } } ``` 在此基础上,可以通过以下命令启动应用并传入参数: ```bash java -jar demo-app.jar --app.greeting="Hi" ``` 访问 `/greet` 接口时返回的内容将是 `"Hi, World!"`。 --- #### 五、注意事项 - 所有命令行参数均以前缀 `--` 开始。 - 复杂场景下(如分布式事务),可通过额外工具(如 Seata)配合参数实现更精细的控制[^4]。 - 若存在敏感信息(如数据库密码),应考虑将其存储在安全位置而非直接暴露于命令行中。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值