Spring使用注解开发

文章目录


使用注解开发

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

使用注解需要导入contex的约束

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

    <context:annotation-config/>
</beans>

1、Bean的实现

1、配置扫描哪些包下的注解

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

2、在指定包下编写类,增加注解

@Component("user")
// 相当于配置文件中 <bean id="user" class="当前注解的类"/>
public class User {
   public String name = "ztb";
}

2、属性注入@value

使用注解注入属性

1、可以不用提供set方法,直接在属性名上添加@value(“值”)

@Component("user")
// 相当于配置文件中 <bean id="user" class="当前注解的类"/>
public class User {
   @Value("张三")
   // 相当于配置文件中 <property name="name" value="秦疆"/>
   public String name;
}

2、如果提供了set方法,在set方法上添加@value(“值”);

@Component("user")
public class User {

   public String name;

   @Value("张三")
   public void setName(String name) {
       this.name = name;
  }
}

3、衍生注解

@Component有几个衍生注解,会按照web开发中,mvc架构中分层。

  • dao (@Repository)
  • service(@Service)
  • controller(@Controller)
  • 这四个注解的功能是一样的,都是代表将某个类注册到spring中,装配Bean

4、自动装配配置

- @Autowired  :  自动装配通过类型。名字
  自动装配无法通过一个注解【@Autowired】完成的时候,我们可以使用@Qualifier(value = “xxx”)去配置
- @Nullable   :  字段标记了这个注解,说明该字段可以为空(null)
- @Resource   :  自动装配通过名字。类型

5、作用域

@scope

  • singleton:默认的,Spring会采用单例模式创建这个对象。关闭工厂 ,所有的对象都会销毁。
  • prototype:多例模式。关闭工厂 ,所有的对象不会销毁。内部的垃圾回收机制会回收
//原型模式prototype,单例模式singleton
//scope("prototype")相当于<bean scope="prototype"></bean>
@Component 
@scope("prototype")
public class User { 
    
    //相当于<property name="name" value="kuangshen"/> 
    @value("kuangshen") 
    public String name; 
    
    //也可以放在set方法上面
    @value("kuangshen")
    public void setName(String name) { 
        this.name = name; 
    }
}

6、小结

xml与注解:

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

最佳实践:

  • xml用来管理bean
  • 注解只用来完成属性的注入
  • 我们在使用的过程中,只需要注意一个问题:必须让注解生效,就需要要开启注解支持
 <!-- 指定要扫描的包,这个包下的注解就会生效-->
 <context:component-scan base-package="com.zhu"/> <context:annotation-config/>
上一篇:vue-06组件化实践


下一篇:Vue路由配置属性