zoukankan      html  css  js  c++  java
  • Spring——注解

    在Spring4之后,要使用注解开发,必须要保证aop的包的导入了

    使用注解需要导入context约束,增加注解的支持。

    <?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.xsd       http://www.springframework.org/schema/context       http://www.springframework.org/schema/context/spring-context.xsd">​    ​    <context:annotation-config/></beans>

    1、属性的注入

    package com.ly.pojo;
    
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.stereotype.Component;
    
    //等价于<bean id="user" class="com.ly.pojo.User"/>  在IOC容器中注册
    //component 组件
    @Component
    public class User {
        //相当于<property name="name" value="凌云"/>
        @Value("凌云")
        public String name ;
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    }

    2、衍生的注解

    @Component有几个衍生的注解,我们在web开发中,会按照mvc三层架构!

    • dao【@Repository】

    • service【@Service】

    • controller【@Controller】

      这四个注解功能都是一样的,都是代表将某个类注册到Spring中装配!

    3、自动装配

    @Autowired:自动装配通过类型,名字
        如果Autowired不能唯一自动的装配上属性,则需要Qualifier(value="")
    @Nullable  字段标记了这个注释,说明这个字段可以为null
    @Resource :自动装配通过名字类型

    4、作用域

    package com.ly.pojo;
    
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.context.annotation.Scope;
    import org.springframework.stereotype.Component;
    
    //等价于<bean id="user" class="com.ly.pojo.User"/>  在IOC容器中注册
    //component 组件
    @Component
    @Scope("singleton")
    public class User {
        //相当于<property name="name" value="凌云"/>
        @Value("凌云")
        public String name ;
    
        public void setName(String name) {
            this.name = name;
        }
    }

    5、小结

    xml与注解:

    • xml更加万能,适用于任何场合!维护简单方便

    • 注解不是自己的类使用不了,维护相对复杂!

    最佳实践:

    • xml用来管理bean

    • 注解只负责完成属性的注入;

    • 我们在使用的过程中,只需要注意一个问题:要让注解生效,就需要开启注解的支持。

     <!--指定要扫描的包,这个包下的注解就会生效-->
        <context:component-scan base-package="com.ly.pojo"/>
        <context:annotation-config/>



  • 相关阅读:
    进程间通信-管道,消息,共享内存,信号量,信号,scoket
    高并发架构相关概念
    在WSL2中 安装 .NET Core SDK 进行Linux 开发工作
    OKR专题
    logback是怎么知道java代码的行数的?
    IDEA plugins
    [LeetCode] 956. Tallest Billboard 最高的广告牌
    上周热点回顾(8.10-8.16)团队
    【故障公告】腾讯云短信服务故障造成无法发送手机短信团队
    HBase~hbase-shaded-client解决包冲突问题
  • 原文地址:https://www.cnblogs.com/moxihuishou/p/15163887.html
Copyright © 2011-2022 走看看