Spring自动扫描和管理Bean
在使用beans.xml文件配置容器管理的bean时,即使使用了注解方式来对bean属性进行装配的情况下,如果容器需要管理的bean太多,也会造成beans.xml文件的臃肿,所以spring提供了自动扫描及管理bean的方法。
?
要使用自动扫描功能,需要在配置文件中加入以下代码:
?
?经过上述配置后,在spring容器实例化的时候,容器会自动扫描“com.risetek”包下的所有类,我们只要在需要被容器管理的类上加上一个注解,容器就会将该类纳入容器进行管理了,而表示该类需要被容器管理的注解有以下几种:
?? @Component :表示该类是一个通用的Bean
?? @Service :表示该类是一个服务层的Bean
???@Controller :表示该类是一个控制层的Bean
?? @Repository :表示该类是一个数据访问层的Bean
以上四种形式的注解都将会告诉spring容器,该类需要被容器管理,目前版本的spring对四种注解类型并没有做特殊的处理,四种注解的使用效果都是一样
?
下面以@Componet为例,如何使用注解标识需要被管理的类:
??? PersonDaoImpl.java
?
- ?

- ?

- @Component??@Scope("prototype") ??public?class?PersonServiceBean?implements?PersonService?{ ????????@Resource??????private?PersonDao?personDao; ????????public?PersonServiceBean(){ ??????????System.out.println("PersonServiceBean...."); ??????} ?????? ??????//此方法会在构造方法执行之后执行 ??????@PostConstruct??????public?void?init()?{ ??????????System.out.println("init..."); ??????} ?????? ??????//此方法会在对象销毁之前执行 ??????@PreDestroy??????public?void?destory(){ ??????????System.out.println("destory..."); ??????} ??}??
