请问在写application时,能够使用spring的几种注入方式吗?
比如下面情况:
配置文件spring.xml如下:
[code="java"]
[/code]
DBHelper类采用设值注入方式:
[code="java"]
private Config config;
public void setConfig(Config config) {
this.config = config;
}
[/code]
我如何才能使DBHelper在运行时得到Config实例呢?
我使用[code="java"]ApplicationContext context = new FileSystemXmlApplicationContext("./config/spring.xml");[/code]
并不能使DBHelper得到Config实例。
[b]问题补充:[/b]
我知道Config config = context.getBean('config');这样能得到实例。
但是我的意思是想使用注入的方式自动把config实例注入到DBHelper类中,
而不是显式的去使用context.getBean("");
我的问题是标题所写的:[b]spring的几种注入方式能够在application(或者说非web应用)中使用吗[/b]
如果能使用的话,该怎么样使用才能正确注入呢?
你的确注入了啊。。在web应用中,你可以在web.xml中添加:
org.springframework.web.context.ContextLoaderListener
contextConfigLocation
/WEB-INF/applicationContext.xml
来让容器加载的时候创建spring对象
在servlet中可以用:
ApplicationContext ctx =
WebApplicationContextUtils.getWebApplicationContext( this.getServletConfig().getServletContext());
获得容器实例
然后就可以
DBHelper dbHelper=(DBHelper)context.getBean("DBHelper");
得到DBHelper对象,并且这个对象里有config对象
分享Spring中接口注入的三种方式
http://www.sql163.com/html/article/2009-9/200996105227.html
DBHelper db = context.getBean('DBHelper');这样不就得到DBHelper了嘛
Config config = context.getBean('config');这样不就得到Config 了嘛
DBHelper dbHelper=(DBHelper)context.getBean("DBHelper");
当然可以用在非web应用中
也一样的配置嘛
web和非web配置spring中bean之间的依赖关系是没什么变化的
非web中就如你写的