java 注解获取配置_在ServletContextListener 的实现类中(使用Spring @Value 注解的方式读取配置文件、或者注入Spring bean)...

在ServletContextListener 的实现类中 使用Spring @Value 注解的方式读取配置文件

我想向ServletContextListener中通过Spring @value 的方法读取 properties 配置文件信息,但是我开始的方法不行

public class MyListener implements ServletContextListener{

@Value("${username}")

private String username;

@Value("${password}")

private String password;

/* (non-Javadoc)

* @see javax.servlet.ServletContextListener#contextInitialized(javax.servlet.ServletContextEvent)

*/

@Override

public void contextInitialized(ServletContextEvent event) {

System.out.println("Initialising listener...");

System.out.println("username:" + username + "password:" + password);

}

@Override

public void contextDestroyed(ServletContextEvent event) {

}

}

web.xml:

MyListener

SpringConfig.xml:

classpath:my.properties

my.properties

username=zjl

password=123

输出:

Initialising listener...

username:null password: null

实现这一点的正确方法是什么?

在应用出加入

SpringBeanAutowiringSupport.processInjectionBasedOnCurrentContext(this);

如下:

public class MyListener implements ServletContextListener{

@Value("${username}")

private String username;

@Value("${password}")

private String password;

/* (non-Javadoc)

* @see javax.servlet.ServletContextListener#contextInitialized(javax.servlet.ServletContextEvent)

*/

@Override

public void contextInitialized(ServletContextEvent event) {

System.out.println("Initialising listener...");

// 加入下面的这行代码

SpringBeanAutowiringSupport.processInjectionBasedOnCurrentContext(this);

System.out.println("username:" + username + "password:" + password);

}

@Override

public void contextDestroyed(ServletContextEvent event) {

}

}

在ServletContextListener 的实现类中注入Spring bean 也是同样的操作

public class MyServletListener implements ServletContextListener, HttpSessionAttributeListener, HttpSessionListener {

@Autowired

private SomeService someService;

@Autowired

private AnotherService anotherService;

public void contextInitialized(ServletContextEvent sce) {

SpringBeanAutowiringSupport.processInjectionBasedOnCurrentContext(this);

}

...

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值