spring java 方式配置JedisPool Bean
来自一个开源项目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的更多相关文章
- Java方式配置Spring MVC
概述 使用Java方式配置Spring MVC,以及回顾一下Spring MVC的各种用法. Spring MVC简述 关于Spring MVC的介绍网上有很多,这里就不再赘述了,只是要说一下,Spr ...
- Java方式配置Spring
概述 本文主要讲的是如何使用Java Bean来配置Spring,而不是用xml来配置Spring. 本文主要是代码,需要注意的都在注释里面. 代码打包下载地址(注:项目使用Maven构建) Java ...
- spring 注解方式配置Bean
Spring能够从classpath下自动扫描,侦测和实例化具有特定注解的组件特定组件包括: @Component:基本注解,标示了一个受Spring管理的Bean组件 @Respository:标识 ...
- spring aop方式配置事务中的三个概念 pointcut advice advisor
AOP的3个关键概念 因为AOP的概念难于理解,所以在前面首先对Java动态代理机制进行了一下讲解,从而使读者能够循序渐进地来理解AOP的思想. 学习AOP,关键在于理解AOP的思想,能够使用AOP. ...
- Spring 通过XML配置装配Bean
使用XML装配Bean需要定义对于的XML,需要引入对应的XML模式(XSD)文件,这些文件会定义配置Spring Bean的一些元素,简单的配置如下: <?xml version=" ...
- spring注解方式配置以及spring4的泛型注入 (4)
目录 一.@Controller 注解控制层(action) 二.@Service 注解服务层 三.@Repository 持久层 四.spring4的泛型注入测试 1 创建两个实体User和Role ...
- Spring注解方式配置Redis
@Configuration public class RedisConfiguraion { @Bean public JedisConnectionFactory redisConnectionF ...
- spring java config配置搭建工程资料收集(网文)
https://blog.csdn.net/poorcoder_/article/details/70231779 https://github.com/lovelyCoder/springsecur ...
- Spring入门学习笔记(2)——基于Java的配置
目录 基于Java的配置 @Configuration & @Bean Annotations Example 注入Bean依赖 @Import注解 Lifecycle Callbacks(声 ...
随机推荐
- centos7 安装rlwrap
https://blog.csdn.net/zhjmozhi/article/details/78347216
- JS框架的实现
众多流行的JS库都不同程度的污染了原生JS,最典型的如Prototype ,Mootools .JQuery则完全例外,一个匿名函数执行后便诞生了集所有API为一身的强大 $ .虽然如此,JQuery ...
- 前端读者 | 从一行代码里面学点JavaScript
本文来自 @张小俊128:链接:http://www.html-js.com/article/A-day-to-learn-from-a-line-of-code-inside-the-JavaScr ...
- vue模糊搜索&select取值
之前vue1.0的过滤器真的很好使,但是作者为了不让搬运工变得太菜.硬是砍去了过滤器,为此,我还哭了好一阵,终于,一点一点的弄明白了过滤器是怎么回事后,也学明白了vue里的属性监听器computed以 ...
- python socket 超时设置 errno10054
python socket.error: [Errno 10054] 远程主机强迫关闭了一个现有的连接.问题解决方案: 前几天使用python读取网页.因为对一个网站大量的使用urlopen操作,所以 ...
- SSM整合所需jar包
MySql驱动包 mysql-connector-java-5.1.7-bin.jar MyBatis的核心包和依赖包 mybatis-3.2.7.jar(核心包)asm-3.3.1.jar(依赖包) ...
- PAT L3-005. 垃圾箱分布
最短路. 枚举垃圾箱放哪里,然后算最短路. #include<map> #include<set> #include<ctime> #include<cmat ...
- Java浮点类型的格式化
概述 基于Java,介绍将浮点类型小数进行格式化的方案. 正文 在Java中,用于格式化小数的类是java.text.DecimalFormat,比如你可以这样使用: double data = 33 ...
- 安卓android破解方法
韩梦飞沙 yue31313 韩亚飞 han_meng_fei_sha 313134555@qq.com 如何给smali文件中的unicode字符串添加中文注释 如何注释掉smali文件中包含关键字 ...
- 【二分】Subsequence
[POJ3061]Subsequence Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 15908 Accepted: ...