Rhythmk 一步一步学 JAVA (14) Spring-3 @Autowired,@Qualifier @Required @Resource @Component,@Service,@Controller,@Repository @PostConstruct,@PreDestroy
2013-11-07 15:16
411 查看
1、@Autowired 注解:
首先在使用时候需要引入配置:
在Spring MVC 中 由于配置了“ <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>”
故不使用引入上面自动注入也可实现指定注入功能。
@Autowired 可以标注在属性,以及set方法上,以及构造函数上.进行标注,然后自动完成注入。
2、@Qualifier 注解:
如果配置了多个类型为 User 的 Bean, 那么我们在
会出现错误,这个时候我们就需要对注入的对象指定读取Bean的名称,则所以 @Autowired 和 @Qualifier 结合使用时,自动注入的策略就从 byType 转变成 byName 了。
@Autowired 可以对成员变量、方法以及构造函数进行注释,而 @Qualifier 的标注对象是成员变量、方法入参、构造函数入参。正是由于注释对象的不同,所以 Spring 不将 @Autowired 和 @Qualifier 统一成一个注释类。
3、@Required注解:
@Required注解检查 但他只检查属性是否已经设置而不会测试属性是否非空
4、@Resource 写在属性或者是setter方法上,按照名称注入 可以配置name="...",
如果不配置则提取 setter方法名,该bean必须存在。
@Resource(name="user")
private User user;
5、@Component,@Service,@Controller,@Repository 注解:
Spring 2.5 中除了提供 @Component 注释外,还定义了几个拥有特殊语义的注释,它们分别是:@Repository、@Service 和 @Controller。在目前的 Spring 版本中,这 3 个注释和 @Component 是等效的,但是从注释类的命名上,很容易看出这 3 个注释分别和持久层、业务层和控制层(Web 层)相对应。虽然目前这 3 个注释和 @Component 相比没有什么新意,但 Spring 将在以后的版本中为它们添加特殊的功能。所以,如果 Web 应用程序采用了经典的三层分层结构的话,最好在持久层、业务层和控制层分别采用 @Repository、@Service 和 @Controller 对分层中的类进行注释,而用 @Component 对那些比较中立的类进行注释。
6、@PostConstruct 注解,标识Bean在初始化的时候执行,
@PreDestroy 注解,表示在Bean在对象销毁的时候执行。
7、@Scope 注解 设置作用域:
prototype,singleton 注意spring2.0后 又增加了request ,session和global session 4个作用区域
首先在使用时候需要引入配置:
<!-- 该 BeanPostProcessor 将自动起作用,对标注 @Autowired 的 Bean 进行自动注入 --> <bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor"/>
在Spring MVC 中 由于配置了“ <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>”
故不使用引入上面自动注入也可实现指定注入功能。
@Autowired 可以标注在属性,以及set方法上,以及构造函数上.进行标注,然后自动完成注入。
2、@Qualifier 注解:
如果配置了多个类型为 User 的 Bean, 那么我们在
@Autowired private User setUser(User user){ //.... }
会出现错误,这个时候我们就需要对注入的对象指定读取Bean的名称,则所以 @Autowired 和 @Qualifier 结合使用时,自动注入的策略就从 byType 转变成 byName 了。
@Autowired private User setUser(@Qualifier("user1") User user){ //.... } public class Recommender { @Autowired @Qualifier("main") private MovieCatalog log; }
@Autowired 可以对成员变量、方法以及构造函数进行注释,而 @Qualifier 的标注对象是成员变量、方法入参、构造函数入参。正是由于注释对象的不同,所以 Spring 不将 @Autowired 和 @Qualifier 统一成一个注释类。
3、@Required注解:
@Required注解检查 但他只检查属性是否已经设置而不会测试属性是否非空
4、@Resource 写在属性或者是setter方法上,按照名称注入 可以配置name="...",
如果不配置则提取 setter方法名,该bean必须存在。
@Resource(name="user")
private User user;
5、@Component,@Service,@Controller,@Repository 注解:
Spring 2.5 中除了提供 @Component 注释外,还定义了几个拥有特殊语义的注释,它们分别是:@Repository、@Service 和 @Controller。在目前的 Spring 版本中,这 3 个注释和 @Component 是等效的,但是从注释类的命名上,很容易看出这 3 个注释分别和持久层、业务层和控制层(Web 层)相对应。虽然目前这 3 个注释和 @Component 相比没有什么新意,但 Spring 将在以后的版本中为它们添加特殊的功能。所以,如果 Web 应用程序采用了经典的三层分层结构的话,最好在持久层、业务层和控制层分别采用 @Repository、@Service 和 @Controller 对分层中的类进行注释,而用 @Component 对那些比较中立的类进行注释。
6、@PostConstruct 注解,标识Bean在初始化的时候执行,
@PreDestroy 注解,表示在Bean在对象销毁的时候执行。
@PostConstruct public void init() { } @PreDestroy public void destory() { }
7、@Scope 注解 设置作用域:
prototype,singleton 注意spring2.0后 又增加了request ,session和global session 4个作用区域
相关文章推荐
- 一步一步学 JAVA (14) Spring-3 @Autowired,@Qualifier @Required @Resource @Component,@Service,@Controller,@
- @Autowired,@Qualifier @Required @Resource @Component,@Service,@Controller,@Repository @PostConstruct
- Spring注解@Component、@Repository、@Service、@Controller @Resource、@Autowired、@Qualifier、@scope
- spring 常用注解关系(@Component,@Controller,@Service,@Repository,@Autowired,@Resource),@Qualifier
- 终极讲解,看了立马懂 --》Spring注解@Component、@Repository、@Service、@Controller @Resource、@Autowired、@Qualifier 解析
- Spring注解@Component、@Repository、@Service、@Controller @Resource、@Autowired、@Qualifier 解析
- Spring @Autowired、@Resource、@Required、@Component、@Repository、@Service、@Controller注解的用法和作用
- Spring注解@Component、@Repository、@Service、@Controller @Resource、@Autowired、@Qualifier 解析
- Spring注解@Component、@Repository、@Service、@Controller @Resource、@Autowired、@Qualifier、@scope
- Spring注解@Component、@Repository、@Service、@Controller @Resource、@Autowired、@Qualifier 解析
- Spring注解@Component、@Repository、@Service、@Controller @Resource、@Autowired、@Qualifier 解析[转]
- spring部分注解@Repository,@Service,@Controller,@Component,@scope,@Resource,@Autowired
- Spring注解@Component、@Repository、@Service、@Controller @Resource、@Autowired、@Qualifier 解析
- Spring注解@Component、@Repository、@Service、@Controller @Resource、@Autowired、@Qualifier 解析
- Java框架spring 学习笔记(九):Spring的bean管理(@Required、@Component、@Autowired、@Resource注解)
- Spring2.5中annotation配置中@Override、@Component、 @Controller、 @Service、 @Repository、@Autowired的解析
- spring,@autowired,@Resource,@Qualifier, @Component、@Repository、@Service、@Controller
- Spring注解:@Repository、@Service、@Controller、@Autowired
- Spring注解:@Repository、@Service、@Controller、@Autowired
- SpringMVC经典必看——使用 Spring2.5注释详解(@Autowired、@Resource 、@PostConstruct、PreDestroy 和 @Component)