<%@ page language="java" contentType="text/html; charset=UTF-8" import="service.*" pageEncoding="UTF-8"%> <%@ page language="java" import="org.springframework.context.*"%> <%@ page language="java" import="org.springframework.context.support.ClassPathXmlApplicationContext"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>展示数据</title> </head> <body> <%ApplicationContext ac = new ClassPathXmlApplicationContext("spring/applicationContext-*.xml"); UserService userService = (UserService)ac.getBean("userService"); %> <%=userService.getUsers().size()%> </body> </html>
如上面jsp所示,我的bean是配置在多个applicationContext-xxx.xml文件中的,我一开始的时候
我是这样读取的,
<%ApplicationContext ac = new ClassPathXmlApplicationContext("spring/applicationContext-service.xml");因为UserService是在spring/applicationContext-service.xml中的
这样一来,读取的时候,就报错,说UserService创建不了,因为UserService的属性无法初始化。
后来我参照网上的做法,使用了
ApplicationContext ac = new ClassPathXmlApplicationContext("spring/applicationContext-*.xml");来读取,这样就能正确执行了。
我的问题是,对于bean定义在多个配置文件的spring,jsp读取spring的bean的时候需要像上面一样读取么?从所有的xml配置文件中读出上下文context。
还有其他更好的方法么?
你的UserSerive中是不是用到了别的配置文件的引用。如果是这样。那里就要加载全部。否则只能引用自己配置文件中的bean了。是的,用了别的文件中的引用。那肯定啊,你想想,你用了别的文件引用,就会报属性无法初始化。因为找不到了。但是,你加载所有的话,他就找到了。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。