用springcontextutil实现applicationcontextaware
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
package util;
import java.util.locale;
import org.springframework.beans.beansexception;
import org.springframework.context.applicationcontext;
import org.springframework.context.applicationcontextaware;
public class springcontextutil
implements applicationcontextaware
{
private static applicationcontext context;
@override
public void setapplicationcontext(applicationcontext contex)
throws beansexception
{
system.out.println( "--------------------contex---------" +contex);
springcontextutil.context = contex;
}
public static applicationcontext getapplicationcontext() {
return context;
}
public static object getbean(string beanname) {
return context.getbean(beanname);
}
public static string getmessage(string key) {
return context.getmessage(key, null , locale.getdefault());
}
}
|
工具类
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
package redis;
import redis.clients.jedis.jedispool;
import util.springcontextutil;
public class redisutil {
private static jedispool jedispool;
static {
jedispool = (jedispool)springcontextutil.getbean( "jedispool" );
}
public static jedispool getjedispool(){
if (jedispool == null ){
jedispool = (jedispool)springcontextutil.getbean( "jedispool" );
}
return jedispool;
}
public void flusdb(){
jedispool.getresource().flushdb();
}
public static string set(string key,string value){
return jedispool.getresource().set(key, value);
}
public static string get(string key){
return jedispool.getresource().get(key);
}
public static long del(string key){
return jedispool.getresource().del(key);
}
}
|
在spring的配置文件中配置这个类,spring容器会在加载完spring容器后把上下文对象调用这个对象中的setapplicationcontext方法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
<!-- 1 自动扫描 将标注spring注解的类自动转化bean-->
<context:component-scan base- package = "com.first,com.util" />
<!-- 2 加载数据资源属性文件 -->
<bean id= "propertyconfigurer" class = "org.springframework.beans.factory.config.propertyplaceholderconfigurer" >
<property name= "locations" >
<list>
<value>classpath:jdbc.properties</value>
<value>classpath:redis.properties</value>
</list>
</property>
</bean>
<bean id= "springcontextutil" class = "util.springcontextutil" ></bean>
< import resource= "redis-config.xml" />
在web项目中的web.xml中配置加载spring容器的listener
<!-- 初始化spring容器,让spring容器随web应用的启动而自动启动 -->
<listener>
<listener- class >org.springframework.web.context.contextloaderlistener</listener- class >
</listener>
|
spring配置文件注入bean类
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
<bean id= "jedispoolconfig" class = "redis.clients.jedis.jedispoolconfig" >
<property name= "maxidle" value= "300" /> <!-- 最大能够保持idel状态的对象数 -->
<property name= "testonborrow" value= "true" /> <!-- 当调用borrow object方法时,是否进行有效性检查 -->
<property name= "maxactive" value= "200" />
<property name= "minidle" value= "10" />
<property name= "maxwait" value= "300" />
<property name= "testonreturn" value= "true" />
<property name= "testwhileidle" value= "true" />
</bean>
<bean id= "jedispool" class = "redis.clients.jedis.jedispool" >
<constructor-arg name= "poolconfig" ref= "jedispoolconfig" />
<constructor-arg name= "host" value= "${redis_addr}" />
<constructor-arg name= "port" value= "${redis_port}" type= "int" />
<constructor-arg name= "timeout" value= "${redis_timeout}" type= "int" />
<constructor-arg name= "password" value= "#{'${redis_password}'!=''?'${redis_password}':null}" />
<constructor-arg name= "database" value= "${redis_db_index}" type= "int" />
</bean>
|
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对服务器之家的支持。如果你想了解更多相关内容请查看下面相关链接