基于注解的组件扫描详解
在使用组件扫描时,需要现在XML配置中指定扫描的路径 <context:component-scan back-package="yangjq.test"> 容器实例化会扫描yangjq.test包及其子包下的所有组件类。 只有当组件类定义前面有下面的注解标记时,这些组件类才会被扫描到Spring容器 命名 组件在扫描过程会生成一个默认的id值(小写开头的类名),这个也可以在注解标记中自定义id值,比如: //这个是默认的id,值为OracleUserDao @Repository public class OracleUserDao implements UserDao{ } //这个是自定义的id,值为loginService @Service("loginService") public class UserService{ } 组件的作用域 Spring管理的组件通常默认的作用域是”singleton”,如果需要其他的作用域,则可以用@Scope注解,只需要在注解中提供作用域的名称就可以。 @Scope("prototype") @Repository public class OracleUserDao implements UserDao{ } 初始化和销毁 @PostConstruct和@PreDestroy注解标记用于指定初始化和销毁的回调方法,比如: public class ExampleBean{ @PostConstruct public void init(){ //.......初始化 } @PreDestroy public void destroy(){ //........销毁 } } 对于具有依赖注入关系Bean的注解 它可以使用下面几个任意一个实现关系注入 - @Resource 通常用的@Resource比较多,就说个@Resource吧,其他的用的时候再搜索看下 public class UserSerivce{ //@Resource 这个用在字段定义 private UserDao userDao; @Resource //这个用在setter方法前面 public void setUserDao(UserDao dao){ this.UserDao=dao; } } 遇到多个匹配Bean时注入会发生错误,可以显式指定名称,比如@Resource(name=”exampleDao”). 总结 以上就是本文关于基于注解的组件扫描详解的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |