SpringBoot项目——配置时间格式

本文介绍了如何在SpringBoot项目中进行时间格式的全局配置,包括在`application.properties`文件中设置日期时间格式、时区,以及在实体类中利用`@JsonFormat`注解进行属性配置。通过具体实例展示了User实体类、UserController控制类的代码,并提供了配置文件的内容及运行结果。

一、全局配置

application.properties中加入:

spring.jackson.date-format=yyyy-MM-dd HH:mm:ss 
spring.jackson.time-zone=GMT+8 
spring.jackson.serialization.write-dates-as-timestamps=false  

第一行设置格式:yyyy-MM-dd HH:mm:ss
第二行设置时区
第三行表示不返回时间戳,如果为true返回时间戳

二、实体类中的属性配置

在实体类中使用注解@JsonFormat

@JsonFormat(pattern = "yyyyMMdd HH:mm:ss",timezone = "GMT+8")
private Date createTime;
具体实例
1、实体类User.java
package com.gui.restful;

import com.fasterxml.jackson.annotation.JsonFormat;

import java.util.Date;

public class User {
    private int id;

    @JsonFormat(pattern = "yyyyMMdd HH:mm:ss",timezone = "GMT+8")
    private Date createTime;

    public User(int id,Date createTime){
        this.id=id;
        this.createTime=createTime;
    }
    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
}

2、控制类UserController.java
package com.gui.restful;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;

@RestController
@RequestMapping("/users")
public class UserController {

    @GetMapping
    public List<User> getAll(){
        List<User> list=new ArrayList<>();
        Calendar calendar=Calendar.getInstance();
        calendar.set(2020,Calendar.NOVEMBER,4,11,12,3);
        User user = new User(1,calendar.getTime());
        list.add(user);
        return list;
    }
}

3、配置文件application.properties:
server.port=8090
4、运行结果

在这里插入图片描述

### Spring Boot Redis 配置教程及示例 #### 一、引入依赖 为了在 Spring Boot 项目中集成 Redis,首先需要在 `pom.xml` 文件中添加必要的 Maven 依赖项。以下是常用的依赖配置: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <!-- 如果使用 lettuce 连接池 --> <dependency> <groupId>io.lettuce.core</groupId> <artifactId>lettuce-core</artifactId> </dependency> ``` 这些依赖会自动导入所需的库文件并完成基础设置[^1]。 --- #### 二、基本配置项目的 `application.properties` 或 `application.yml` 文件中定义 Redis 的连接属性。以下是一个典型的 YAML 配置示例: ```yaml spring: redis: host: localhost # Redis服务器地址 port: 6379 # Redis端口号,默认为6379 password: # 密码(如果设置了密码) timeout: 5000ms # 超时时间 lettuce: pool: max-active: 8 # 最大活跃连接数 max-idle: 8 # 最大空闲连接数 min-idle: 0 # 最小空闲连接数 ``` 此部分用于指定 Redis 实例的基本信息以及连接池的相关参数[^2]。 --- #### 三、启用缓存功能 要在 Spring Boot 应用程序中利用 Redis 提供的分布式缓存能力,则需通过注解方式开启全局缓存支持。具体实现如下所示: ```java @SpringBootApplication @EnableCaching // 启用缓存机制 public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } } ``` 上述代码片段展示了如何在一个标准的 Spring Boot 启动类上激活缓存特性。 --- #### 四、高级场景——主从模式与哨兵模式的支持 对于生产环境而言,仅依靠单机版 Redis 可能无法满足高可用需求。因此可以考虑采用 Redis 主从复制或者 Sentinel 哨兵架构来增强系统的健壮性和扩展性。 ##### (1)主从模式的手动配置 由于 Spring Boot 并未提供针对 Redis Master-Slave 自动化的解决方案,所以开发者必须自行调整客户端行为逻辑以适配多节点部署方案。下面给出了一种基于 LettuceConnectionFactories 构建自定义工厂实例的方法: ```java @Configuration public class RedisConfig { @Bean public RedisConnectionFactory redisConnectionFactory() { RedisStandaloneConfiguration config = new RedisStandaloneConfiguration(); config.setHostName("localhost"); config.setPort(6379); LettuceClientConfiguration clientConfig = LettucePoolingClientConfiguration.builder().build(); return new LettuceConnectionFactory(config, clientConfig); } @Bean public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory){ RedisTemplate<String, Object> template = new RedisTemplate<>(); template.setKeySerializer(new StringRedisSerializer()); template.setValueSerializer(new GenericJackson2JsonRedisSerializer()); template.setConnectionFactory(factory); return template; } } ``` 此处演示了如何定制化一个适用于复杂网络拓扑结构下的持久层组件接口[^3]。 ##### (2)哨兵模式的具体实践 当面对更复杂的集群管理挑战时,可借助 Redis Sentinel 来监控多个 Redis Server 的状态变化情况,并动态切换至健康的主节点继续工作负载分配任务。下面是关于该主题的一个简单例子说明文档内容摘要: ```java @Configuration public class RedisSentinelConfig { @Bean public RedisSentinelConfiguration sentinelConfig(){ RedisSentinelConfiguration config = new RedisSentinelConfiguration() .master("mymaster") // 设置 master 名称 .sentinel("127.0.0.1", 26379); // 添加第一个哨兵地址 config.sentinel("127.0.0.1", 26380); // 添加第二个哨兵地址 (如果有更多的话) return config; } @Bean public RedisConnectionFactory connectionFactory(RedisSentinelConfiguration sentinelConf){ return new LettuceConnectionFactory(sentinelConf); } @Bean public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory){ final RedisTemplate<String, Object> template = new RedisTemplate<>(); template.setKeySerializer(new StringRedisSerializer()); template.setValueSerializer(new JdkSerializationRedisSerializer()); template.setHashValueSerializer(new JdkSerializationRedisSerializer()); template.setDefaultSerializer(new JdkSerializationRedisSerializer()); template.setConnectionFactory(factory); return template; } } ``` 这段脚本解释了怎样构建一套完整的 Redis Sentinel 支持体系,从而提高整个应用程序的服务质量水平[^4]。 --- #### 五、总结 以上就是围绕 Spring Boot 和 Redis 结合使用的全面指南,涵盖了从简单的入门级操作到深入探讨企业级应用场景等多个层面的知识要点。希望可以帮助读者更好地理解和掌握这一关键技术组合的实际运用方法论。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值