spring中读取xml配置文件、获取bean
BeanFactory允许InputStream作为构造函数的参数,也可以org.springframework.core.io.Resource接口。
查找类不是Spring的工作,而是Java虚拟机的工作。Java虚拟机会遍历所有classpath以及classpath下的jar文件。另外他会按照一定的顺序查找,找到第一个就会停止查找。
spring 怎么获取web.xml中的context Spring配置文件在类路径下面 在Spring的java应用程序中,一般我们的Spring的配置文件都是放在放在类路径下面(也即编译后会进入到classes目录下)。
首先,在spring的配置文件中要有如下的配置。
通用的方法来了,神器啊,前的 2两种方法并不通用,可以抛弃了。
Java中如何获取Spring中配置的bean
Spring 文件中将bean注入到想要获得该bean的类中。
ac.getBean(beanId);说明:这种方式适用于采用Spring框架的独立应用程序,需要程序通过配置文件手工初始化Spring的情况。
写一个类,实现BeanFactoryAware接口,把该接口配置到spring中,然后把getbean方法写成静态的,就可以动态获取了。
通用的方法来了,神器啊,前的 2两种方法并不通用,可以抛弃了。
}return ApplicationContextHolder.AC;}}获取所有spring自动装配的bean://获取spring装配的bean个数GetApplicationContext.getInstance().getBeanDefinitionNames().length;//逐个打印出spring自动装配的bean。
如何调用spring配置文件手动注入的bean
1、一般需要在static方法里调用注入进来的service,因为是静态方法,所以必须声明该service也必须是static的,这时候你会发现注入不进来,会报null指针,这个时候需要使用 @PostConstruct来解决。
2、Spring 文件中将bean注入到想要获得该bean的类中。
3、比较直观但是不大优雅的做法是重写init()方法,在里面使用AutowireCapableBeanFactory来手工告诉Spring:我这个Servlet是需要这样的一个Bean的。
4、方法六:通过Spring提供的ContextLoader WebApplicationContext wac = ContextLoader.getCurrentWebApplicationContext();wac.getBean(beanID);最后提供一种不依赖于servlet,不须要注入的方式。可是须要注意一点,在server启动时。
5、注意:a.有无参构造器 b.有set方法 -- !-- bean id = rest class = autowire.Restaurant autowire = byName/ -- !-- byType:查找与属性类型一致的bean,然后调用set方法,完成注入。