spring 2.5 自动扫描bean的问题

我是幸福的小虫 2009-05-14 12:03:15
1.applicationContext.xml:
在applicationContext.xml配置了<context:component-scan base-package="aa" />
2.AA.java内容:
package aa;
import java.io.PrintStream;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class AA{
public static void main(String[] args){
BB bs = (BB)new ClassPathXmlApplicationContext(new String[] { "applicationContext.xml"}).getBean("bb");
System.out.println("@@@" + bs.a);
}
}
3.BB.java内容:
package aa;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;
@Component("bb")
@Scope("prototype")
public class BB{
String a = "ssssssssss";
}
4.将其打成jar包运行报错:
Exception in thread "main" org.springframework.beans.factory.NoSuchBeanDefinitio
nException: No bean named 'bb' is defined
at org.springframework.beans.factory.support.DefaultListableBeanFactory.
getBeanDefinition(DefaultListableBeanFactory.java:387)
at org.springframework.beans.factory.support.AbstractBeanFactory.getMerg
edLocalBeanDefinition(AbstractBeanFactory.java:968)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBe
an(AbstractBeanFactory.java:246)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean
(AbstractBeanFactory.java:185)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean
(AbstractBeanFactory.java:164)
at org.springframework.context.support.AbstractApplicationContext.getBea
n(AbstractApplicationContext.java:881)
at aa.AA.main(AA.java:11)
5.在eclipse中运行一切正常,但打成jar后就报错了,将applicationContext.xml中加上<bean id="bb" class="aa.BB" />
打成jar后运行就正常了
请问各位大侠们是不是打成jar后spring的自动扫描bean的功能就失效了还是我哪里配置错误了????谢谢各位大哥的指点!!
...全文
129 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
spring2.5学习PPT 传智博客 01_全面阐释Spring及其各项功能 02_搭建与测试Spring的开发环境 03_编码剖析Spring管理Bean的原理 04_Spring的三种实例化Bean的方式 05_配置Spring管理的bean的作用域 06_Spring管理的Bean的生命周期 07_编码剖析Spring依赖注入的原理 08_编码剖析Spring装配基本属性的原理 09_Spring如何装配各种集合类型的属性 10_使用构造器装配属性 11_用@Resource注解完成属性装配 12_编码剖析@Resource注解的实现原理 13.@Autowire注解与自动装配 14.让Spring自动扫描和管理Bean 15.使用JDK中的Proxy技术实现AOP功能 16.使用CGLIB实现AOP功能与AOP概念解释 17.使用Spring的注解方式实现AOP入门 18.使用Spring的注解方式实现AOP的细节 19.使用Spring配置文件实现AOP 20.aspectj的切入点语法定义细节 21.搭建和配置Spring与jdbc整合的环境 22.Spring集成的jdbc编码和事务管理 23.使用Spring注解方式管理事务与传播行为详解 24.使用Spring配置文件实现事务管理 25.搭建和配置Spring与Hibernate整合的环境 26.Spring集成的Hibernate编码与测试 27.Struts与Spring集成方案1(Struts集成Spring) 28.Struts与Spring集成方案2(Spring集成Struts) 29.为Spring集成的Hibernate配置二级缓存 30.Spring提供的CharacterEncoding和OpenSessionInView功能 31.使用Spring集成JPA 32.Struts+Spring+JPA集成 33.使用Spring集成Struts2 34.所有源码
第一部分 Spring framework 概述..5 第1 章 Spring Framework 介绍..6 1.1 依赖注入和控制反转.6 1.2 模块6 1.2.1 核心容器.7 1.2.2 数据访问/ 整合..7 1.2.3 Web ..8 1.2.4 AOP 和设备组件.8 1.2.5 测试.8 1.3 使用方案8 1.3.1 依赖管理和命名规约.. 12 1.3.1.1 Spring 依赖和基于Spring 13 1.3.1.2 Maven 依赖管理. 14 1.3.1.3 Ivy 依赖管理 15 1.3.2 日志. 16 1.3.2.1 不使用Commons Logging .. 17 1.3.2.2 使用SLF4J 17 1.3.2.3 使用Log4J .. 19 第二部分 Spring 3 的新特性.. 21 第2 章 Spring 3.0 的新特性和增强 21 2.1 Java 5.. 21 2.2 改进的文档. 21 2.3 新的文章和教程. 21 2.4 新的模块组织方式和构建系统.. 22 2.5 新特性概述. 22 2.5.1 为Java 5 更新的核心API .. 23 2.5.2 Spring 表达式语言 23 2.5.3 控制反转(IoC)容器. 24 2.5.3.1 基于Java 的bean 元数据.. 24 2.5.3.2 使用组件定义bean 的元数据 25 2.5.4 通用的类型转换系统和字段格式化系统 25 2.5.5 数据层.. 25 2.5.6 Web 层 25 2.5.6.1 全面的REST 支持. 26 2.5.6.2 @MVC 的增加 26 2.5.7 声明式的模型验证. 26 2.5.8 先期对Java EE 6 的支持. 26 2.5.9 嵌入式数据库的支持.. 26 第3 章 Spring 3.1 的新特性和增强 27 3.1 新特性概述. 27 第三部分 核心技术 28 ----------------------- Page 3----------------------- 第4 章 IoC 容器.. 29 4.1 Spring IoC 容器和bean 的介绍 29 4.2 容器概述 29 4.2.1 配置元数据.. 30 4.2.2 实例化容器.. 31 4.2.2.1 处理基于XML 的配置元数据. 32 4.2.3 使用容器. 33 4.3 Bean 概述 34 4.3.1 命名bean .. 34 4.3.1.1 在bean 定义外面起别名 35 4.3.2 实例化bean . 36 4.3.2.1 使用构造方法实例化 36 4.3.2.2 使用静态工厂方法来实例化.. 36 4.3.2.3 使用实例工厂方法来实例化.. 37 4.4 依赖 38 4.4.1 依赖注入. 38 4.4.1.1 基于构造方法的依赖注入 39 4.4.1.2 基于setter 方法的依赖注入 41 4.4.1.3 解决依赖过程.. 42 4.4.1.4 依赖注入示例.. 43 4.4.2 深入依赖和配置.. 45 4.4.2.1 直接值(原生类型,String,等). 45 4.4.2.2 引用其它bean (协作者).. 47 4.4.2.3 内部bean 48 4.4.2.4 集合.. 48 4.4.2.5 null 和空字符串 51 4.4.2.6 使用p-命名空间的XML 快捷方式 52 4.4.2.7 使用c-命名空间的XML 快捷方式. 53 4.4.2.8 复合属性名称.. 54 4.4.3 使用depends-on 54 4.4.4 延迟初始化bean . 55 4.4.5 自动装配协作者.. 55 4.4.5.1 自动装配的限制和缺点.. 56 4.4.5.2 从自动装配中排除bean. 57 4.4.6 方法注入. 57 4.4.6.1 查找方法注入.. 58 4.4.6.2 任意方法的替代 59 4.5 Bean 的范围. 60 4.5.1 单例范围. 61 4.5.2 原型范围. 62 4.5.3 单例bean 和原型bean 依赖. 63 4.5.4 请求,会话和全局会话范围. 63 4.5.4.1 初始化Web 配置.. 63 4.5.4.2 请求范围.. 64 ----------------------- Page 4----------------------- 4.5.4.3 会话范围.. 64 4.5.4.4 全局会话范围.. 65 4.5.4.5 各种范围的bean 作为依赖. 65 4.5.5 自定义范围.. 67 4.5.5.1 创建自定义范围 67 4.5.5.2 使用自定义范围 68 4.6 自定义bean 的性质. 69 4.6.1 生命周期回调. 69 4.6.1.1 初始化回调 70 4.6.1.2 销毁回调.. 70 4.6.1.3 默认的初始化和销毁方法 71 4.6.1.4 组合生命周期机制.. 72 4.6.1.5 启动和关闭回调 73 4.6.1.6 在非Web 应用中,优雅地关闭Spring IoC 容器 74 4.6.2 ApplicationContextAware 和BeanNameAware . 75 4.6.3 其它Aware 接口 75 4.7 Bean 定义的继承. 77 4.8 容器扩展点. 78 4.8.1 使用BeanPostProcessor 来自定义bean 78 4.8.1.1 示例:BeanPostProcessor 风格的Hello World.. 79 4.8.1.2 示例:RequiredAnnotationBeanPostProcessor 81 4.8.2 使用BeanFactoryPostProcessor 自定义配置元数据. 81 4.8.2.1 示例:PropertyPlaceholderConfigurer. 82 4.8.2.2 示例:PropertyOverrideConfigurer 83 4.8.3 使用FactoryBean 来自定义实例化逻辑. 84 4.9 基于注解的容器配置. 85 4.9.1 @Required.. 86 4.9.2 @Autowired和@Inject.. 86 4.9.3 使用限定符来微调基于注解的自动装配 89 4.9.4 CustomAutowireConfigurer. 94 4.9.5 @Resource.. 95 4.9.6 @PostConstruct和@PreDestroy . 96 4.10 类路径扫描和管理的组件.. 96 4.10.1 @Component和更多典型注解 97 4.10.2 自动检测类和bean 的注册. 97 4.10.3 使用过滤器来自定义扫描 98 4.10.4 使用组件定义bean 的元数据.. 99 4.10.5 命名自动检测组件 100 4.10.6 为自动检测组件提供范围. 101 4.10.7 使用注解提供限定符元数据. 102

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧