其他分享
首页 > 其他分享> > 使用注解开发

使用注解开发

作者:互联网

8、使用注解开发

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

使用注解需要导入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>

8.1 bean

需要在配置中加入< context:component-scan>标签。有了< context:component-scan>,另一个< context:annotation-config/>标签可以移除掉,因为已经被包含进去了。

<!--指定要扫描的包,这个包下面的注解才会生效
	别只扫一个com.xy.pojo包
	这里也可以用空格扫描多个包
--> 
<context:component-scan base-package="com.xy"/> 
<context:annotation-config/>

@Component注解

//@Component 注解
//等价于<bean id="user" classs"com.xy.pojo.User"/> 
@Component
public class User {  
     public String name ="xy";
}

8.2 属性注入 @value

@Component
public class User { 
    //相当于<property name="name" value="xy"/> 
    @value("xy") 
    public String name; 
    
    //也可以放在set方法上面
    //@value("xy")
    public void setName(String name) { 
        this.name = name; 
    }
}

8.3 衍生的注解

@Component有几个和它具有相同功能的衍生注解,会按照web开发中,mvc架构中分层。

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


8.4 自动装配注解

@Autowired(与@Qualifier搭配使用):默认是byType方式,如果匹配不上,就会byName

@Nullable:字段标记了这个注解,说明该字段可以为空

@Resource:默认是byName方式,如果匹配不上,就会byType


8.5 作用域@scope

//原型模式prototype,单例模式singleton
//scope("prototype")相当于<bean scope="prototype"></bean>
@Component 
@scope("prototype")
public class User { 
    
    //相当于<property name="name" value="xy"/> 
    @value("xy") 
    public String name; 
    
    //也可以放在set方法上面
    @value("xy")
    public void setName(String name) { 
        this.name = name; 
    }
}

关于作用域的知识,回顾 [Bean作用域](##6.4 Bean作用域)


8.6 小结

xml与注解:

最佳实践:

标签:name,Component,开发,使用,xy,注解,public,String
来源: https://www.cnblogs.com/xypersonal/p/16371878.html