• Rhythmk 一步一步学 JAVA (14) Spring-3 @Autowired,@Qualifier @Required @Resource @Component,@Service,@Controller,@Repository @PostConstruct,@PreDestroy


    1、@Autowired 注解:
    首先在使用时候需要引入配置:

    <!-- 该 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个作用区域




  • 相关阅读:
    IIS日志分析
    Linux 管理软件
    lodop打印收费小票
    文件上传,服务端压缩文件方法,重点是png与gif图片的压缩,保证了透明度与动画
    设置表格隔行变色,以及鼠标悬浮变色效果
    地址下拉框,需要js级联js
    下拉框多级联动辅助js,优化您的下拉框
    给下拉框加上可输入查询特性,包括中文与拼音首字母
    判断浏览器客户端是不是移动客户端
    url重定向或者重写
  • 原文地址:https://www.cnblogs.com/rhythmK/p/3412549.html
Copyright © 2020-2023  润新知