• Spring-使用注解开发


    使用注解开发

    在Spring4之后, 要使用注解开发, 必须要保证AOP的包导入了(直接导入spring-mvc包含此jar包)

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

    1. bean

    @Component

    组件, 放在类上,说明这个类被Spring管理了, 就是bean!

    package com.wang.pojo;
    
    import org.springframework.stereotype.Component;
    
    //等价于       <bean id="user" class="com.wang.pojo.User"/>
    //@Component    组件, bean的名字默认为小写class
    @Component
    public class User {
        public String name = "wang sky";
    }
    

    2. 属性如何注入

    @value

    放在属性或者对应的Setter上

    public class User {
    
        //相当于    <bean id="user" class="com.wang.pojo.User">
        //        <property name="name" value="sky wang"/>
        //    </bean>
        @Value("sky wang")
        public String name;
    }
    

    3. 衍生的注解

    @Component 有几个衍生的注解. 在Web开发中, 会按照MVC三层架构分层

    • dao层 @Repository
    • service层 @Service
    • controller层 @Controller

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

    4. 自动装配的注解

    @Autowired 自动装配,byType

    配合@Qualified(value = "XXX") 可以实现byName的自动装配

    @Nullable 属性标记后, 表示该属性可以为null

    @Resource 自动装配, byName, 找不到Name会byType

    5. 作用域

    @Scope("singleton")

    @Scope("prototype")等

    与xml中配置的一致

    6. 总结

    xml与注解

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

    xml 与 注解的最佳实践

    • xml 用来管理bean
    • 注解只负责完成属性的注入
    • 我们在使用的过程中, 只需要注意一个问题: 必须让注解生效, 就需要开启注解的支持
    <?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
           https://www.springframework.org/schema/context/spring-context.xsd">
    
        <!--指定要扫描的包,这个包下的注解就会生效-->
        <context:component-scan base-package="com.wang"/>
        <context:annotation-config/>
    
    <!--    <bean id="user" class="com.wang.pojo.User">-->
    <!--        <property name="name" value="sky wang"/>-->
    <!--    </bean>-->
    
    </beans>
    
  • 相关阅读:
    ERROR: Cannot set priority of registrydns process 33740
    Hbase和Phoenix部署-单机版
    ambari安装hdp时,新建的ambari-hdp-1.repo中baseurl无值
    centos7.2升级openssh到8.0
    kafka一个broker挂掉无法写入
    对cdh搭建过程错误总结及解决方法
    streamsets
    [Spark]Task not serializable
    [Kafka]How to Clean Topic data
    Postgresql Master/Slaver
  • 原文地址:https://www.cnblogs.com/wang-sky/p/13607909.html
Copyright © 2020-2023  润新知