开发者社区> 问答> 正文

jsp如何读取多个配置文件的Spring中配置的bean??报错

<%@ 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。

还有其他更好的方法么?


展开
收起
爱吃鱼的程序员 2020-06-22 17:39:19 623 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    你的UserSerive中是不是用到了别的配置文件的引用。如果是这样。那里就要加载全部。否则只能引用自己配置文件中的bean了。是的,用了别的文件中的引用。那肯定啊,你想想,你用了别的文件引用,就会报属性无法初始化。因为找不到了。但是,你加载所有的话,他就找到了。

    2020-06-22 17:39:37
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
云栖社区特邀专家徐雷Java Spring Boot开发实战系列课程(第20讲):经典面试题与阿里等名企内部招聘求职面试技巧 立即下载
微服务架构模式与原理Spring Cloud开发实战 立即下载
阿里特邀专家徐雷Java Spring Boot开发实战系列课程(第18讲):制作Java Docker镜像与推送到DockerHub和阿里云Docker仓库 立即下载