【Spring】学习笔记006--Spring注解开发

  Spring 4.x之后,如果需要使用注解进行开发,需要先导入aop包

   然后加入context约束

   接着打开注解和注解扫描(domain为博主的实体类包名)

    <!--开启注解-->
    <context:annotation-config/>
    <!--开启注解扫描包,将会自动扫描这个包下的注解-->
    <context:component-scan base-package="com.aircl.domain"/>

1.bean

  使用注解注册bean需要使用到@Component,它相当于我们之前的

<bean id="userBean" class="com.aircl.domain.User"/>

  具体如下

//@Component 相当于<bean id="userBean" class="com.aircl.domain.User"/>
@Component(value = "userBean")
public class User implements Serializable {
    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return "User{" +
                "name='" + name + '\'' +
                '}';
    }
}

2.属性如何注入

  如果我们需要为基本属性设置默认值,可以使用@Value

//@Component 相当于<bean id="userBean" class="com.aircl.domain.User"/>
@Component(value = "userBean")
public class User implements Serializable {
    @Value("aircl")
    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return "User{" +
                "name='" + name + '\'' +
                '}';
    }
}

  而对于复杂属性来说,xml是更好的方式,注入方法参考之前的博客:https://www.cnblogs.com/AirCL/p/14359269.html

3.衍生的注解

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

  • dao [@Repository]
  • service [@Service]
  • controller [@Controller]

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

4.自动装配置

  自动装配可参考前一个博客:https://www.cnblogs.com/AirCL/p/14372563.html

5.作用域

  配置作用域可以使用@Scope标签,如下

//@Component 相当于<bean id="userBean" class="com.aircl.domain.User"/>
@Component(value = "userBean")
@Scope("prototype")
public class User implements Serializable {
    @Value("aircl")
    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return "User{" +
                "name='" + name + '\'' +
                '}';
    }
}

6.小结

  xml与注解:

  • xml更加万能,适用于任何场合,维护简单方便
  • 注解不是自己类使用不了,维护相对复杂

  xml与注解最佳使用方式:

  • xml用来管理bean
  • 注解只负责完成属性的注入,我们在使用的过程中,只需要注意一个问题:让注解生效,就需要开启注解的支持
    <!--开启注解-->
    <context:annotation-config/>
    <!--开启注解扫描包,将会自动扫描这个包下的注解-->
    <context:component-scan base-package="com.aircl.domain"/>
posted @ 2021-02-04 17:15  AirCL  阅读(82)  评论(0)    收藏  举报