spring中通过ApplicationContext getBean获取注入对象的方法实例

2025-05-29 0 68

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>

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对快网idc的支持。如果你想了解更多相关内容请查看下面相关链接

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 spring中通过ApplicationContext getBean获取注入对象的方法实例 https://www.kuaiidc.com/109014.html

相关文章

发表评论
暂无评论