九 自动扫描和管理bean
前面的例子我们都是使用XML的bean定义来配置组件。在一个稍大的项目中,通常会有上百个组件,如果这些这组件采用xml的bean定义来配置,显然会增加配置文件的体积,查找及维护起来也不太方便。spring2.5为我们引入了组件自动扫描机制,他可以在类路径底下寻找标注了@Component、@Service、@Controller、@Repository注解的类,并把这些类纳入进spring容器中管理。它的作用和在xml文件中使用bean节点配置组件是一样的。要使用自动扫描机制,我们需要打开以下配置信息:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd">
<context:component-scan base-package="cn.itcast"/>
</beans>
其中base-package为需要扫描的包(含子包)。
@Service用于标注业务层组件、 @Controller用于标注控制层组件(如struts中的action)、@Repository用于标注数据访问组件,即DAO组件。而@Component泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。
<context:component-scan base-package="cn.test"></context:component-scan>
其中base-package为需要扫描的包(含子包)
@Service用于标注业务层组件,@Controller用于标注控制层组件(如struts中的action),@Repository用于标注数据访问组件,即DAO组件,而@Component泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。
bean的默认名称是类名,然后把第一个字母改为小写。可以通过@Service("xxx")修改bean名称。
这种bean默认是单例的,如果想改变,可以使用@Service(“aaaaa”) @Scope(“prototype”)来改变。
还可以通过@PostConstruct @PreDestroy设置初始化和销毁的函数
view plaincopy to clipboardprint?
01.@PostConstruct
02. public void init(){
03. System.out.println("初始化");
04. }
05.
06.
07.
08.@PreDestroy
09. public void destory(){
10. System.out.println("开闭资源");
11. }
完整的配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd">
<context:component-scan base-package="cn.itcast"/>
</beans>
<context:annotation-config/>这个注解为什么没有配置在里面呢
这个配置只是做依赖注入的注释的配置 用了<context:component-scan base-package="cn.itcast"/>这个配置后
会自动把依赖注入的配置在spring内部给配置上
end 完毕!
分享到:
相关推荐
在Spring框架中,自动扫描和管理Bean是一种便捷的方式,它允许开发者无需显式地在配置文件中声明每个Bean,而是让Spring容器自动发现并管理应用中的组件。这一特性极大地简化了Spring应用的配置,提高了开发效率。...
在Spring框架中,自动扫描和管理Bean是一种便捷的方式,它允许开发者无需显式配置每个Bean,而是通过指定包路径来让Spring自动发现和管理Bean。本文将深入探讨这个主题,帮助你更好地理解和应用这一功能。 首先,让...
在Spring框架中,自动扫描(Auto-Component Discovery)是一个便捷的功能,它允许开发者无需显式配置每个Bean,而是通过指定包名让Spring自动发现并管理Bean。然而,当Bean定义在独立的jar包中,有时Spring可能无法...
总的来说,Spring 2.5的自动扫描和自动注入功能极大地简化了Java应用的依赖管理和配置,让代码更加整洁,降低了耦合度,提升了可维护性。通过实践这样的例子,你可以更好地理解和掌握这些概念,并将其应用到自己的...
在Spring框架中,管理Bean的方式主要有三种:XML配置、注解配置和Java配置。下面将详细介绍这三种方式以及Spring的自动注入机制。 1. **基于XML的Bean定义**: 在XML配置中,我们通常在`applicationContext.xml`...
自动扫描(Auto-Component Discovery)是一种便捷的方式,它允许开发者无需显式配置每个bean,就能将类路径下(classpath)的特定包及其子包中的组件(即带有特定注解的类)纳入Spring容器进行管理。这一特性大大...
4. **执行生成**:运行像`WindowsFormsApplication1.exe`这样的生成工具,提供配置文件和数据库连接信息,工具会自动扫描数据库表,根据配置和模板生成对应的Java Bean类。 5. **代码整合**:最后,将生成的Java源...
通过对这些示例的分析,我们可以深入理解Spring 2.5中的自动扫描classpath是如何工作的,以及它如何与AOP、数据源管理、依赖注入、bean作用域等核心概念相结合,构建出高效灵活的Java应用。通过阅读源码和实践这些...
这个压缩包文件“spring管理bean应用实例代码”显然包含了关于如何在Spring中配置和使用Bean的示例代码。接下来,我们将深入探讨Spring管理Bean的相关知识点。 1. **Spring Bean的定义** Spring中的Bean是指由...
Spring 框架为开发者提供了自动扫描注入机制,使得组件的管理变得更加简洁高效。在 Spring 2.5 中,引入了组件自动扫描机制,该机制可以在类路径下寻找标注了 @Component、@Service、@Controller、@Repository 注解...
在Spring框架中,"No bean named 'xxx' available"是一个常见的错误信息,它表示...在本例中,通过创建合适的包结构和配置bean扫描,我们可以避免这个错误并使Spring能够管理我们的Student、University和Address bean。
组件扫描是Spring的一项功能,它会自动发现应用上下文中定义的Bean。通过在类上使用`@Component`、`@Service`、`@Repository`或`@Controller`等注解,我们可以告诉Spring这些类是需要管理的组件。这些注解表明了类在...
本文将详细介绍如何将Spring和MyBatis进行整合,并采用Mapper代理自动扫描的方式实现,同时还会提及到JUnit测试。 首先,我们需要在项目中引入Spring和MyBatis的相关依赖。通常,我们会使用Maven或Gradle作为构建...
- 用于配置和管理Bean的声明周期。 - 它允许开发者在类中定义Bean以及Bean之间的依赖关系。 - 可以配合其他注解如`@ComponentScan`一起使用,实现自动扫描和装配Bean。 3. **示例**: ```java @Configuration ...
通过在类或方法上使用如`@Component`、`@Service`、`@Repository`和`@Controller`等注解,Spring可以自动扫描并管理这些类。同时,使用`@Autowired`注解可以实现自动依赖注入,Spring会根据类型或者属性名称找到合适...
它是Spring中最基本的Bean容器,负责创建、配置和管理Bean。`BeanFactory`提供了一个延迟初始化Bean的能力,这意味着Bean只在真正被请求时才会被实例化,这有助于提高应用的启动速度。例如,当使用`XmlBeanFactory`...
改变自动扫描的包【从零开始学Spring Boot】”涉及到的是Spring Boot框架中的组件扫描机制。在Spring Boot中,自动配置是其核心特性之一,它能够根据项目依赖来自动配置相应的Bean。默认情况下,Spring Boot会扫描...
现在,我们已经理解了XML配置和注解在实现依赖注入和自动扫描类中的作用。通过这些机制,我们可以轻松地管理类之间的关系,使代码更易于测试和维护。在实际项目中,通常结合使用XML和注解,以充分利用两者的优势。...
Spring通过DI管理bean,使得对象之间的依赖关系由Spring负责建立和维护,而非对象自身。这增强了代码的可测试性和可维护性。在非Spring环境中的类(普通类)想要调用Spring bean,我们需要利用Spring提供的API或工具...