来自一个开源项目https://git.oschina.net/geek_qi/ace-cache

package com.ace.cache.config;

import com.ace.cache.utils.PropertiesLoaderUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.env.Environment; import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig; import javax.annotation.PostConstruct; @Configuration
public class RedisConfig {
@Autowired
private Environment env;
private JedisPool pool;
private String maxActive;
private String maxIdle;
private String maxWait;
private String host;
private String password;
private String timeout;
private String database;
private String port;
private String enable;
private String sysName; @PostConstruct
public void init(){
PropertiesLoaderUtils prop = new PropertiesLoaderUtils("application.properties");
host = prop.getProperty("redis.host");
if(StringUtils.isBlank(host)){
host = env.getProperty("redis.host");
maxActive = env.getProperty("redis.pool.maxActive");
maxIdle = env.getProperty("redis.pool.maxIdle");
maxWait = env.getProperty("redis.pool.maxWait");
password = env.getProperty("redis.password");
timeout = env.getProperty("redis.timeout");
database = env.getProperty("redis.database");
port = env.getProperty("redis.port");
sysName = env.getProperty("redis.sysName");
enable = env.getProperty("redis.enable");
} else{
maxActive = prop.getProperty("redis.pool.maxActive");
maxIdle = prop.getProperty("redis.pool.maxIdle");
maxWait = prop.getProperty("redis.pool.maxWait");
password = prop.getProperty("redis.password");
timeout = prop.getProperty("redis.timeout");
database = prop.getProperty("redis.database");
port = prop.getProperty("redis.port");
sysName = prop.getProperty("redis.sysName");
enable = prop.getProperty("redis.enable");
}
} @Bean
public JedisPoolConfig constructJedisPoolConfig() {
JedisPoolConfig config = new JedisPoolConfig();
// 控制一个pool可分配多少个jedis实例,通过pool.getResource()来获取;
// 如果赋值为-1,则表示不限制;如果pool已经分配了maxActive个jedis实例,则此时pool的状态为exhausted(耗尽)。
config.setMaxTotal(Integer.parseInt(maxActive));
// 控制一个pool最多有多少个状态为idle(空闲的)的jedis实例。
config.setMaxIdle(Integer.parseInt(maxIdle));
// 表示当borrow(引入)一个jedis实例时,最大的等待时间,如果超过等待时间,则直接抛出JedisConnectionException;
config.setMaxWaitMillis(Integer.parseInt(maxWait));
config.setTestOnBorrow(true); return config;
} @Bean(name = "pool")
public JedisPool constructJedisPool() {
String ip = this.host;
int port = Integer.parseInt(this.port);
String password = this.password;
int timeout = Integer.parseInt(this.timeout);
int database = Integer.parseInt(this.database);
if (null == pool) {
if (StringUtils.isBlank(password)) {
pool = new JedisPool(constructJedisPoolConfig(), ip, port, timeout);
} else {
pool = new JedisPool(constructJedisPoolConfig(), ip, port, timeout, password, database);
}
}
return pool;
} public String getMaxActive() {
return maxActive;
} public void setMaxActive(String maxActive) {
this.maxActive = maxActive;
} public String getMaxIdle() {
return maxIdle;
} public void setMaxIdle(String maxIdle) {
this.maxIdle = maxIdle;
} public String getMaxWait() {
return maxWait;
} public void setMaxWait(String maxWait) {
this.maxWait = maxWait;
} public String getHost() {
return host;
} public void setHost(String host) {
this.host = host;
} public String getPassword() {
return password;
} public void setPassword(String password) {
this.password = password;
} public String getTimeout() {
return timeout;
} public void setTimeout(String timeout) {
this.timeout = timeout;
} public String getDatabase() {
return database;
} public void setDatabase(String database) {
this.database = database;
} public String getSysName() {
return sysName;
} public void setSysName(String sysName) {
this.sysName = sysName;
} public String getEnable() {
return enable;
} public void setEnable(String enable) {
this.enable = enable;
} public String getPort() {
return port;
} public void setPort(String port) {
this.port = port;
}
}

spring java 方式配置JedisPool Bean的更多相关文章

  1. Java方式配置Spring MVC

    概述 使用Java方式配置Spring MVC,以及回顾一下Spring MVC的各种用法. Spring MVC简述 关于Spring MVC的介绍网上有很多,这里就不再赘述了,只是要说一下,Spr ...

  2. Java方式配置Spring

    概述 本文主要讲的是如何使用Java Bean来配置Spring,而不是用xml来配置Spring. 本文主要是代码,需要注意的都在注释里面. 代码打包下载地址(注:项目使用Maven构建) Java ...

  3. spring 注解方式配置Bean

    Spring能够从classpath下自动扫描,侦测和实例化具有特定注解的组件特定组件包括: @Component:基本注解,标示了一个受Spring管理的Bean组件 @Respository:标识 ...

  4. spring aop方式配置事务中的三个概念 pointcut advice advisor

    AOP的3个关键概念 因为AOP的概念难于理解,所以在前面首先对Java动态代理机制进行了一下讲解,从而使读者能够循序渐进地来理解AOP的思想. 学习AOP,关键在于理解AOP的思想,能够使用AOP. ...

  5. Spring 通过XML配置装配Bean

    使用XML装配Bean需要定义对于的XML,需要引入对应的XML模式(XSD)文件,这些文件会定义配置Spring Bean的一些元素,简单的配置如下: <?xml version=" ...

  6. spring注解方式配置以及spring4的泛型注入 (4)

    目录 一.@Controller 注解控制层(action) 二.@Service 注解服务层 三.@Repository 持久层 四.spring4的泛型注入测试 1 创建两个实体User和Role ...

  7. Spring注解方式配置Redis

    @Configuration public class RedisConfiguraion { @Bean public JedisConnectionFactory redisConnectionF ...

  8. spring java config配置搭建工程资料收集(网文)

    https://blog.csdn.net/poorcoder_/article/details/70231779 https://github.com/lovelyCoder/springsecur ...

  9. Spring入门学习笔记(2)——基于Java的配置

    目录 基于Java的配置 @Configuration & @Bean Annotations Example 注入Bean依赖 @Import注解 Lifecycle Callbacks(声 ...

随机推荐

  1. Go语言有缓冲和无缓冲通道实现样例

    感觉可以,但不好用. 应该有封装程序更高的包包吧. package main import ( "math/rand" "fmt" "time&quo ...

  2. 前端读者 | 前端开发者调试面板vConsole

    来着微信团队开源的一个调试工具,[GitHub地址]https://github.com/Tencent/vConsole 一个轻量.可拓展.针对手机网页的前端开发者调试面板. 特性 查看 conso ...

  3. 事务时间如何去掉wasted time

    事务时间如何去掉wasted time   事务时间 一个事务的时间是指持续时间,事务会完全记录下从事务开始到事务结束之间的时间差,那么事务的时间能真实地反映业务操作的时间吗?不能,就好像人用手按秒表 ...

  4. 【招聘需求】前端开发/PHP工程师【往全栈发展】

    1.熟悉html.css,了解javascript2.熟悉任何一种服务端编程语言(php.python.java.asp.jsp.c.c++.c#,go等等)3.热爱工作,接受加班者优先 我们是公司内 ...

  5. 转:x64与x86的改变

    http://tieba.baidu.com/p/1250470248 x64与x86的改变 硬件要求就是64位的CPU.操作系统也必须是64位的,如果在64位的CPU上安装了32位的操作系统,就算编 ...

  6. Line Reflection -- LeetCode

    Given n points on a 2D plane, find if there is such a line parallel to y-axis that reflect the given ...

  7. BZOJ 2157 旅游(树链剖分+线段树)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=2157 [题目大意] 支持修改边,链上查询最大值最小值总和,以及链上求相反数 [题解] ...

  8. [BZOJ3576]江南乐

    挺好的题 我们算出每个数的sg值后异或起来即可 对于$n$,我们要求$sg_n$ 朴素的想法是枚举把$n$个石子分成$m$堆,有$m-n\%m$堆大小为$\left\lfloor\frac nm\ri ...

  9. 【FFT(母函数)+容斥】BZOJ3771-Triple

    [题目大意] 给出 n个物品,价值为别为Xi且各不相同,现在可以取1个.2个或3个,问每种价值和有几种情况? *顺序不同算一种 [思路] 显然是个母函数,A表示每种物品取一个的情况,B表示每种物品取二 ...

  10. bootstrap学习(全局CSS样式)(一)

    布局容器 bootstrap需要为页面内容和栅格系统包裹一个.container容器.我们提供了两个作词用处的类.注意,由于padding等属性的原因,这两种容器类不能互相嵌套. .container ...