获取ApplicationContext

来源:互联网 发布:算法 c语言实现 pdf 编辑:程序博客网 时间:2024/06/10 11:51
在之前一直使用的springmvc+spring中,比如在启动的servlet中使用、在filter中,部分场景下可能无法直接通过注入的方式获取bean,此时需要我们通过实现ApplicationContextAware接口来获取ApplicationContext对象,然后通过applicationContext.getBean(name)方式获取bean,那么在springboot中呢,通过下面的代码发现,简答了很多,直接注入即可。

1、首先修改之前案例中的控制器类:
package com.shf.springboot.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.shf.SpringBoot1.ServerConfig;

@RestController
public class HelloWorldController2 {
@Autowired
ServerConfig serverConfig;
@Autowired
ServerConfig2 serverConfig2;
@Autowired
ApplicationContext applicationContext;
@RequestMapping("/helloworld")
public String helloWorld() {
System.out.println("server.properties服务器端口:"+serverConfig.getPort());
System.out.println("application.properties服务器端口:"+serverConfig2.getPort());
System.out.println("通过applicationContext获取的bean实例:"+applicationContext.getBean("helloService1"));
return "Hello World!";
}
}

通过@Autowired注入ApplicationContext 对象,然后通过applicationContext.getBean("helloService1")获取bean实例。

2、下面启动服务,访问/helloworld
正常打印出预测中的信息。
以上可以发现在哎springboot中已经为我们处理好ApplicationContext的bean注入。



0 0
原创粉丝点击