搜索

java自定义异常处理类

在一个团队里面,一个公司里面总是统一规则让大家遵守,自定义异常处理类也是一种统一风格的体现,使用统一的异常编码,统一的消息格式。

版本控制管理工具

在使用计算机的过程中,我们经常会出现一个文件可能需要修改多次的情况,有效管理版本的软件应用而生。今天推荐一些开发中常用的一些相关版本的服务。

Java发送邮件

邮件在工作中必不可少,很多系统都会用到邮件,企业内部发布通知,研发人员系统告警等都需要使用邮件。下面简单来了解一下使用java开放发邮件功能。

Java使用redis缓存数据

redis的好处就不用多说了,存储速度快,操作简单,缓存一些配置信息,业务加锁等场景都可以胜任,很不错的选择。

不愿多说废话,直接上码。

1、依然使用spring cloud,引用maven依赖:

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>

 

2、配置redis,可以自己写配置类,也可以直接使用配置文件进行配置参数:

spring:
  redis:
    port: 6379
    host: 127.0.0.1
    database: 0
    timeout: 6000ms

 

3、封装自己的工具类:

package com.vlihub.common.helper;

import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.PropertyAccessor;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.vlihub.common.exception.VlihubException;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Bean;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.concurrent.TimeUnit;

/**
 * 创建人:  537974(韦立)
 * 创建时间: 2020-12-31 18:24
 */
@Service
@Component
@Slf4j
public class RedisHelper {
    @Resource
    private RedisTemplate<String, Object> redisTemplate;

    public <T> T getValue(Class<T> tClass, String key) {
        try {
            if (redisTemplate == null) {
                log.info("redis配置异常");
            }
            log.info("redis:" + redisTemplate.getConnectionFactory().toString());
            Object value = redisTemplate.opsForValue().get(key);
            return tClass.cast(value);
        } catch (Exception e) {
            throw new VlihubException(e);
        }
    }

    public void setValue(String key, Object value) {
        try {
            redisTemplate.opsForValue().set(key, value);
        } catch (Exception e) {
            throw new VlihubException(e);
        }
    }

    public void setValue(String key, Object value, Long timeOut, TimeUnit timeUnit) {
        try {
            redisTemplate.opsForValue().set(key, value, timeOut, timeUnit);
        } catch (Exception e) {
            throw new VlihubException(e);
        }
    }

    public void deleteObj(String key) {
        try {
            redisTemplate.delete(key);
        } catch (Exception e) {
            throw new VlihubException(e);
        }
    }

    @Bean("redisTemplate")
    public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
        RedisTemplate<Object, Object> redisTemplate = new RedisTemplate<>();
        redisTemplate.setConnectionFactory(redisConnectionFactory);

        // 使用Jackson2JsonRedisSerialize 替换默认序列化
        Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);

        ObjectMapper objectMapper = new ObjectMapper();
        objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
        objectMapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);

        jackson2JsonRedisSerializer.setObjectMapper(objectMapper);

        // 设置value的序列化规则和 key的序列化规则
        redisTemplate.setValueSerializer(jackson2JsonRedisSerializer);
        redisTemplate.setKeySerializer(new StringRedisSerializer());
        redisTemplate.afterPropertiesSet();
        return redisTemplate;
    }
}

4、使用示例:

    @Resource
    private RedisHelper redisHelper;

// 设置
redisHelper.setValue(RedisKey.ARTICLE_LIST_HOT, hotResult);

// 获取
List<ArticleCard> list = redisHelper.getValue(List.class, RedisKey.ARTICLE_LIST_HOT);

 

根据自己的需求扩展自己的工具类,至此就可以开心的开车了tongue-out

评论

诛心之论

vli

6 小时前

期待开发此功能

hub

2021-01-08 11:11:00

无奈之举

2021-01-08 11:12:00

好好吧

luv

2021-01-09 11:12:00

留 言