有关@PostConstruct的一些具体使用心得

本文涉及的产品
云原生内存数据库 Tair,内存型 2GB
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Redis 版,经济版 1GB 1个月
简介: 有关@PostConstruct的一些具体使用心得
有关@PostConstruct的使用:

首先这个注解是由Java提供的,它用来修饰一个非静态的void方法。它会在服务器加载Servlet的时候运行,并且只运行一次

我们项目中一定会用到的就是环境隔离以及Redis

下面就从这两个方面进行分析:

1、环境隔离:

假如你项目中有个发送短信的接口,需要进行环境的隔离,可以在配置中进行配置,然后在使用的时候进行

@Value("${spring.profiles.active}")
    private String environment;

以上方式可以获取到,但是不够优雅。

可以按照以下方式使用:

@Component
public class EnvironmentConstant {
    public static String env;
    @Value("${spring.profiles.active}")
    public String environment;
    @PostConstruct
    public void initialize() {
        System.out.println("初始化环境...");
        env = this.environment;
    }
}

然后就可以在需要使用的地方进行EnvironmentConstant.env的方式进行获取当前运行的环境了。

2、Redis使用

如果我们在使用redis的时候都是通过

@Autowired
    private RedisTemplate<Object, Object> redisTemplate;

的方式进行使用的话,那也难免是不够优雅的。

可以使用如下方式进行处理

@Component
public class RedisUtil {
    private static RedisTemplate<Object, Object> redisTemplates;
    @Autowired
    private RedisTemplate<Object, Object> redisTemplate;
    @PostConstruct
    public void initialize() {
        redisTemplates = this.redisTemplate;
    }
    /**
     * 添加元素
     */
    public static void set(Object key, Object value) {
        if (key == null || value == null) {
            return;
        }
        redisTemplates.opsForValue().set(key, value);
    }
    /**
     * 移除元素
     */
    public static void remove(Object key) {
        remove....
    }
}

在使用的时候直接RedisUtil.redisTemplates就可以获取到redis的实例。

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore &nbsp; &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
2月前
|
数据采集 前端开发 Java
@ControllerAdvice:你可以没用过,但是不能不了解
`@ControllerAdvice` 是 Spring MVC 中用于定义全局行为的注解,如异常处理、数据绑定和预处理。它从 `@Component` 派生,确保被扫描并纳入容器。`@ExceptionHandler` 用于全局异常处理,提供统一的错误响应。例如,当处理不当的异常时,它能返回友好的错误信息。`@InitBinder` 在数据绑定前对参数进行处理,如格式转换。`@ModelAttribute` 可以用于全局绑定模型属性,如登录用户信息。Spring MVC 通过 `DispatcherServlet` 和 `HandlerAdapter` 在请求处理流程中应用这些全局配置。
27 3
@ControllerAdvice:你可以没用过,但是不能不了解
|
3月前
|
Java Spring 容器
@PostConstruct注解学习,最详细的分享教程
@PostConstruct注解学习,最详细的分享教程
|
3月前
|
Java
SpringAop切面编程(一看就会用)
SpringAop切面编程(一看就会用)
20 0
|
3月前
|
NoSQL Java Redis
有关@PostConstruct的一些具体使用心得
有关@PostConstruct的一些具体使用心得
37 1
|
9月前
|
JSON 安全 Java
SpringMVC之自定义注解(这期博客带你领略自定义注解的魅力)
SpringMVC之自定义注解(这期博客带你领略自定义注解的魅力)
53 0
SpringMVC之自定义注解(这期博客带你领略自定义注解的魅力)
|
9月前
|
Java Spring 容器
Spring源码:Bean生命周期(终章)
本系列前面讲解了Spring的bean定义、bean实例化、bean初始化等生命周期阶段。这些步骤使我们能够了解bean从创建到准备好使用所经历的过程。但是,除了这些步骤,bean的销毁也是非常重要的一步。在本系列的最后,我们将深入探讨bean的销毁过程,包括在什么情况下会发生销毁、销毁的顺序以及如何在bean销毁之前执行一些清理任务等。通过学习bean的销毁过程,我们将更全面地了解Spring的bean生命周期。在Spring中,有多种方式可以销毁bean。其中一种方式是在应用程序关闭时显式地调用`applicationContext.close()`方法来关闭容器。这个方法将会销毁所有还没
|
Java 数据库 Spring
Spring框架在Bean中的管理(第十一课)
Spring框架在Bean中的管理(第十一课)
200 0
|
消息中间件 JavaScript 小程序
项目终于用上了插入式注解,真香!
项目终于用上了插入式注解,真香!
项目终于用上了插入式注解,真香!
Java继承全攻略
Java继承全攻略
110 0
最适合小白的java接口教程
控制台输入1,则登录客户信息。这个登录信息的代码,目前全部写在Application.java里面了,这样会带来一个问题,就是程序不好维护。随着业务逻辑越来越复杂,Application.java 就会越来越难懂。所以,要把这部分业务拆分出去。